Harley %!s(int64=6) %!d(string=hai) anos
achega
82e64ca5b9
Modificáronse 100 ficheiros con 30772 adicións e 0 borrados
  1. 12 0
      .babelrc
  2. 9 0
      .editorconfig
  3. 14 0
      .gitignore
  4. 10 0
      .postcssrc.js
  5. 1 0
      .svn/entries
  6. 1 0
      .svn/format
  7. BIN=BIN
      .svn/pristine/01/01a1a53c1f7bf9a409c0f3a8cbf35a0358245e86.svn-base
  8. 54 0
      .svn/pristine/01/01f7e5f30ae2d8f1264473cac842f7c017a40fe5.svn-base
  9. BIN=BIN
      .svn/pristine/02/02c8bd478104e5a4ae1417e2b3086eebb7cae792.svn-base
  10. 781 0
      .svn/pristine/05/055041c3dc7823eccf2d6c7d5309fb51eb0c8229.svn-base
  11. BIN=BIN
      .svn/pristine/08/0868d35dd2646fa865cccdd30c36f6cba6a27c85.svn-base
  12. 328 0
      .svn/pristine/0c/0c032d4f56bc70640196e95e70aecbd3d18acab9.svn-base
  13. BIN=BIN
      .svn/pristine/0c/0c13220dde7768b01974316222a57f0be2d087cb.svn-base
  14. BIN=BIN
      .svn/pristine/0e/0e88e43262535f9df415c2db2c9d30fb3c1bb50f.svn-base
  15. 117 0
      .svn/pristine/10/10ca72a6798f129bc45fd5932f717e0862b779de.svn-base
  16. 75 0
      .svn/pristine/13/13a216d0c544cbbbe3f245c026487a88fcb9e942.svn-base
  17. 630 0
      .svn/pristine/14/140aec3888e7e10ac5ff58b6b82bd857777b0696.svn-base
  18. 0 0
      .svn/pristine/14/148623a78e392fc5614d3b29a2713e3054bcc26c.svn-base
  19. 535 0
      .svn/pristine/15/15aa69b9476a30a4d7f5ef40e75d672e8d043990.svn-base
  20. 363 0
      .svn/pristine/15/15d65e2bf5eace96c0599ce3f9d1e24a6102f937.svn-base
  21. 10501 0
      .svn/pristine/16/16bf2b618c535ec2c5b528610d0f60641c0ba0aa.svn-base
  22. 0 0
      .svn/pristine/17/178addcbae0671f951efb318d375426bcb435b03.svn-base
  23. BIN=BIN
      .svn/pristine/1a/1a6ace377133f14a2b2cd7c48f10369a6bc54b2e.svn-base
  24. BIN=BIN
      .svn/pristine/1e/1e5e08b2a6d68acde063bbe7ee75aba1835a9bc5.svn-base
  25. 946 0
      .svn/pristine/1f/1f9df7f86ed59fa486120c6e04124ee7e30319fc.svn-base
  26. 0 0
      .svn/pristine/21/21eac2679471d058b1440c5e486df00423e090d3.svn-base
  27. 54 0
      .svn/pristine/23/23665af6f1b5aabbcff80f6f9bc5e29490a0d3e7.svn-base
  28. 0 0
      .svn/pristine/23/23c50241d8d139d47e5772878958b4fcfd06fd9b.svn-base
  29. 413 0
      .svn/pristine/24/24f8b152cbf88951eb1710292418401be8225fbb.svn-base
  30. 959 0
      .svn/pristine/25/251bd18e1d7458874509e4bb1b022f5eaf880a90.svn-base
  31. BIN=BIN
      .svn/pristine/25/25ec199ddc903fc9f1fcf6c440d3aa6c38eba008.svn-base
  32. BIN=BIN
      .svn/pristine/26/26c258e33b1ab1a160703fbc3aed6dd5946eb33b.svn-base
  33. BIN=BIN
      .svn/pristine/29/29773ba816457eab251845337f3a41ad644f9b76.svn-base
  34. 44 0
      .svn/pristine/2c/2c242611645aa05ca084651152512d12103cb7db.svn-base
  35. 605 0
      .svn/pristine/30/30030f0f8dbd4fda0f6c5b8cb3efb4b04cf6487d.svn-base
  36. 0 0
      .svn/pristine/30/303d5ef569a17453517caf38a0777849caf6bed1.svn-base
  37. BIN=BIN
      .svn/pristine/32/324e679f64ea7da448747a5948b896aa20d31c5d.svn-base
  38. 127 0
      .svn/pristine/33/3352707edf4286a5ee1d640a1545e93ff6b2083e.svn-base
  39. 291 0
      .svn/pristine/33/33a8a25bfb996bb1bf1b71f8efe54435238ed23b.svn-base
  40. BIN=BIN
      .svn/pristine/38/38b4cffea1e46c8da4d52ec4c1d90832f178e2ea.svn-base
  41. 0 0
      .svn/pristine/39/39990220065179d7080692a029ab463966a8cdd4.svn-base
  42. 265 0
      .svn/pristine/39/39ba4f56275dbd585143d0ed742a7ddfc8a36ed8.svn-base
  43. 2 0
      .svn/pristine/3a/3acbd34b7f96eb50c26420cc6a386ac9eb5f23fb.svn-base
  44. 102 0
      .svn/pristine/3b/3b0253604f52862fdf432ca7293e96ea38979e23.svn-base
  45. 434 0
      .svn/pristine/3b/3b0dd2135172ac065999490b646d47d8ed53cb31.svn-base
  46. BIN=BIN
      .svn/pristine/3c/3cb372497da5d4beeb695c8cb69145b808e958dd.svn-base
  47. 133 0
      .svn/pristine/3f/3f9bd06dd3add179305e94e548af2b7d13287e73.svn-base
  48. 237 0
      .svn/pristine/42/425148b44cc619ab35b9147dc91c4ceb011b44dd.svn-base
  49. 4 0
      .svn/pristine/42/42da40ce6f9e32fee2ff71498a322efc03ad1cb2.svn-base
  50. 7 0
      .svn/pristine/44/449b29e898778138d3fb28978b3038fdb5cd0a30.svn-base
  51. 340 0
      .svn/pristine/47/473e6855c787c76f9933a056f15428b221aca832.svn-base
  52. 97 0
      .svn/pristine/47/474bb9724f24fe200bc370a74a4acadc8dc9dbcf.svn-base
  53. 799 0
      .svn/pristine/48/4803fc58f867ebe93f93f2c8ffd71d2cb1f964b9.svn-base
  54. 0 0
      .svn/pristine/49/49269101d6a8027959d523c621a7ced85368ab59.svn-base
  55. 0 0
      .svn/pristine/49/49c7cd5bb4fa4bd4276c5d4561b2b6ab7365d5a9.svn-base
  56. 180 0
      .svn/pristine/49/49eed9e589f98acba5286c716e24c67b28956896.svn-base
  57. BIN=BIN
      .svn/pristine/4d/4db5c36eee06ddf356b5fd8836b829e3b2348573.svn-base
  58. 422 0
      .svn/pristine/4e/4e9ee560418b8fd2e8bc84f76fb5895c269860c7.svn-base
  59. 0 0
      .svn/pristine/4f/4fee2a135aa23b2ae771e69dddaafbb757cc8a81.svn-base
  60. 370 0
      .svn/pristine/50/50415648361d3ba4761d44b119fb32492add528a.svn-base
  61. BIN=BIN
      .svn/pristine/50/50bb7482b90b6f6f9319b595cd075b106daa27d3.svn-base
  62. 461 0
      .svn/pristine/51/5147c6950a2ef71bb362d65b297f170266508405.svn-base
  63. 329 0
      .svn/pristine/53/534d92360353795c35bf4ba95c551c090f605668.svn-base
  64. 713 0
      .svn/pristine/53/53e8ae3c753d4030f182a4b23c2ccb176b1e86b8.svn-base
  65. 145 0
      .svn/pristine/56/56fbdb705764b6dfafcd8ddf5336eb3152afff87.svn-base
  66. BIN=BIN
      .svn/pristine/57/5776c25b9df33b8d1452b4aa444f73c1ec7c0e90.svn-base
  67. 533 0
      .svn/pristine/58/58c329ac1dbc67cc95aaf8b64e6e94af610cf7be.svn-base
  68. BIN=BIN
      .svn/pristine/59/5906265575e26f42b1eb7e694a9249805c83c5ef.svn-base
  69. 259 0
      .svn/pristine/5c/5cb256fc22683455190b0a0b22895ffa489caa5a.svn-base
  70. 339 0
      .svn/pristine/5d/5dc04b3c473dd29be358e602bb7ff81fa2d0931d.svn-base
  71. 0 0
      .svn/pristine/5e/5e545bc6089b5a25f662cc948c335c7f039bf73c.svn-base
  72. 628 0
      .svn/pristine/5e/5edcbe6d15e491ae5992cc9888fb5a32801f9cab.svn-base
  73. 739 0
      .svn/pristine/5f/5f046a6255c9541b3e8606768fb8e10058af7cc6.svn-base
  74. 68 0
      .svn/pristine/60/60271bbe343220c35b43ec9b92c0220afe9af41d.svn-base
  75. BIN=BIN
      .svn/pristine/60/60649015c00d857951ec4957dcc3a2965c22a77d.svn-base
  76. 674 0
      .svn/pristine/61/613d4d9999228137b4c48b1eebda32b74fcab2b5.svn-base
  77. BIN=BIN
      .svn/pristine/61/618438dd494e8c90073e2274815157ca91371e06.svn-base
  78. 635 0
      .svn/pristine/61/61d89094111e07848ac52d21e20759d01311789c.svn-base
  79. 0 0
      .svn/pristine/65/65d0dc72f232fbafe5f36fd277714e6e97933bc8.svn-base
  80. 21 0
      .svn/pristine/65/65d7ef17fbfc12ea204603982b25e5db355a96cd.svn-base
  81. 1339 0
      .svn/pristine/66/6632c1682b14c57dd17bcf8916b3996b4bb1d68d.svn-base
  82. BIN=BIN
      .svn/pristine/66/668b4756951b5fb0f446bc77f6bcaf469d01b458.svn-base
  83. BIN=BIN
      .svn/pristine/67/67f06dc9cae0256be351b1dd4d5e6c29dae76dcb.svn-base
  84. BIN=BIN
      .svn/pristine/6b/6b4f1eea0e8e6ec7b3059a353e6c2c21f8a14d3b.svn-base
  85. 282 0
      .svn/pristine/6c/6c7c27c7be2ad1f5fced012402dfeb270ad7c048.svn-base
  86. BIN=BIN
      .svn/pristine/6e/6e7c48cb3df0af8ec0a6e65718d631826e86fe46.svn-base
  87. 314 0
      .svn/pristine/6f/6f06b552a233c07e3819445465bd649392fe3ef6.svn-base
  88. 329 0
      .svn/pristine/71/71ebbfbd01997020c1ab9d9a2846a9fa5428ee89.svn-base
  89. 682 0
      .svn/pristine/75/7564bddc50eab76525fef676ab909aa85241df05.svn-base
  90. 374 0
      .svn/pristine/78/78a3157e707073f8bb3dcd4e6eefa0c7d2aa5567.svn-base
  91. BIN=BIN
      .svn/pristine/78/78c2088f46d81ac964cbb1383bf1d41e310130eb.svn-base
  92. 317 0
      .svn/pristine/7c/7c5debfec5e6317b34237194d5060361019faf88.svn-base
  93. BIN=BIN
      .svn/pristine/7e/7ecc90ce4bcb42658ab9da256e82bc7476bf0bd2.svn-base
  94. 801 0
      .svn/pristine/7f/7f4760119e8a4e79841e891bd4ddec28f13b37d4.svn-base
  95. 3 0
      .svn/pristine/7f/7f7d74492e716cd9da03971ee4318dbfea46631c.svn-base
  96. BIN=BIN
      .svn/pristine/80/806c10147e95431f62ae322c5ce1879445fec16a.svn-base
  97. 368 0
      .svn/pristine/80/809348d8ac04dd02e7dacbcd0eaa96b99b6855ce.svn-base
  98. BIN=BIN
      .svn/pristine/81/8111a2354cb196102493367a326bd85f02491fab.svn-base
  99. 116 0
      .svn/pristine/83/8313a9243a57739d06b871fc4c99ccfd655a1311.svn-base
  100. 41 0
      .svn/pristine/84/84109f3cc3e430b9525b7d2fa04bda5abcf4428d.svn-base

+ 12 - 0
.babelrc

@@ -0,0 +1,12 @@
+{
+  "presets": [
+    ["env", {
+      "modules": false,
+      "targets": {
+        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
+      }
+    }],
+    "stage-2"
+  ],
+  "plugins": ["transform-vue-jsx", "transform-runtime"]
+}

+ 9 - 0
.editorconfig

@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true

+ 14 - 0
.gitignore

@@ -0,0 +1,14 @@
+.DS_Store
+node_modules/
+/dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln

+ 10 - 0
.postcssrc.js

@@ -0,0 +1,10 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+  "plugins": {
+    "postcss-import": {},
+    "postcss-url": {},
+    // to edit target browsers: use "browserslist" field in package.json
+    "autoprefixer": {}
+  }
+}

+ 1 - 0
.svn/entries

@@ -0,0 +1 @@
+12

+ 1 - 0
.svn/format

@@ -0,0 +1 @@
+12

BIN=BIN
.svn/pristine/01/01a1a53c1f7bf9a409c0f3a8cbf35a0358245e86.svn-base


+ 54 - 0
.svn/pristine/01/01f7e5f30ae2d8f1264473cac842f7c017a40fe5.svn-base

@@ -0,0 +1,54 @@
+<template>
+    <div class="loading">
+        <div class="load">
+        <img src="./../assets/st-imges/loading.svg" alt="">
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data(){
+        return{
+            // lodShow:false
+        }
+    },
+    // computed:{
+    //     getLodShow(){
+    //         return this.$store.getters.getLoading;
+    //     }
+    // },
+    // watch:{
+    //     getLodShow(val){
+    //         console.log('val',val)
+    //         this.lodShow = val;
+    //     }
+    // }
+}
+</script>
+<style scoped>
+.loading{
+    z-index: 1500;
+    background-color: #000000;
+    opacity: 0.8;
+    height: 100%;
+
+}
+.load{
+    width: 1rem;
+    height:1rem;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%,-50%)
+}
+.loading .load img {
+    width: 0.8rem;
+    height: 0.8rem;
+    animation: lod 2s infinite linear;
+}
+@keyframes lod {
+  100% {
+    transform: rotate(360deg);
+  }
+}
+</style>

BIN=BIN
.svn/pristine/02/02c8bd478104e5a4ae1417e2b3086eebb7cae792.svn-base


+ 781 - 0
.svn/pristine/05/055041c3dc7823eccf2d6c7d5309fb51eb0c8229.svn-base

@@ -0,0 +1,781 @@
+<template>
+  <div>
+    <div>
+      <!-- 搜索框 -->
+      <div class="serch row item-center allAlignment" v-show = 'noShow'>
+        <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+          <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+        </div>
+        <div class="row item-center">
+          <div class="row item-center">
+            <input
+              class="fz14"
+              type="text"
+              placeholder="请输入联赛和球队名称"
+              v-model="serchTxt"
+              onkeyup="this.value=this.value.replace(/\s+/g,'')"
+              color="#AAA"
+            >
+            <div class="row center serch-img pointer hover" @click="Serch()">
+              <img src="@/assets/st-imges/serch.png" alt>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+            <div class="row center redraw pointer hover br05" @click="red()">
+              <img src="@/assets/st-imges/redraw.png" alt>
+            </div>
+          </div>
+        </div>
+      </div>
+
+
+       <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StMorningPlate')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+      <!-- 列表 -->
+      <div v-for="(item,index) in data" :key="item.id">
+        <!-- 联赛 -->
+        <div class="header pdg20 row item-center">{{item.leagueName}}</div>
+        <!-- 表格 -->
+        <div class="list" v-for="(e,i) in item.matchData" :key="e.id">
+          <div class="list-header row item-center pdg20">
+            <div class="list-header-time row allAlignment">
+              <div class="row item-center">
+                <span>{{e.match_date}}</span>
+                <span style="color:rgb(247, 102, 73);margin-left:.1rem;">{{e.match_time}}</span>
+              </div>
+              <div
+                class="list-header-time-num triangle row center"
+                @click="getTournamentPlay(e.match_id)"
+              >{{e.tag}} ></div>
+            </div>
+            <div class="list-header-title row">
+              <div class="row item-center pdg20 average" style="min-height:.5rem">
+                <span>让盘</span>
+                <span>让局</span>
+              </div>
+              <div class="row center" style="min-height:.5rem;">局-大/小盘</div>
+            </div>
+          </div>
+
+          <div class="list-body pdg20" style="position: relative;border-bottom:.01rem solid #ccc;">
+            <div class="row" style="width:100%;">
+              <div class="list-body-name row">
+                <!-- <div class="row center" style="width:18%;color: rgb(68, 100, 36);">
+                  <span>第n盘</span>
+                </div> -->
+                <div style="width:100%;">
+                  <p style="width:100%">{{e.home_team}}</p>
+                  <p style="width:100%">{{e.guest_team}}</p>
+                </div>
+              </div>
+              <div class="list-body-center row" style="position: relative;">
+                <div
+                  class="row item-center"
+                  style="border-right:.01rem solid #ccc;position: relative;"
+                >
+                  <div class="row" v-for="(itemList,idx) in e.oddsData" :key="itemList.id">
+                    <div>
+                      <!-- 让盘 -->
+                      <div>
+                        <div v-if="itemList.odds_code.startsWith('ld')">
+                          <!-- 让盘主队 -->
+                          <div
+                            class="row item-center theball rightAlignment"
+                            style="min-height:.4rem;"
+                            v-if="itemList.odds_code == 'ldh'"
+                          >
+                            <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                            <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'让盘')"  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                          </div>
+                          <!-- 让盘客队 -->
+                          <div
+                            class="row item-center theball guest rightAlignment"
+                            style="min-height:.4rem;"
+                            v-if="itemList.odds_code == 'ldg'"
+                          >
+                            <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                            <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'让盘')"  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                          </div>
+                        </div>
+                      </div>
+                      <!-- 让局 -->
+                      <div v-if="itemList.odds_code.startsWith('lb')">
+                        <!-- 让局主队 -->
+                        <div
+                          class="row item-center size rightAlignment"
+                          style="min-height:.4rem;"
+                          v-if="itemList.odds_code == 'lbh'"
+                        >
+                          <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                          <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'让局')"  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                        <!-- 让局客队 -->
+                        <div
+                          class="row item-center size guest rightAlignment"
+                          style="min-height:.4rem;"
+                          v-if="itemList.odds_code == 'lbg'"
+                        >
+                          <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                          <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'让局')"  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div class="row item-center average" style="position: relative;">
+                  <!--局-大小盘  -->
+                  <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id">
+                    <div class="pdg20">
+                      <div class="row" v-if="itemList.odds_code.startsWith('tn')">
+                        <div
+                          class="row item-center ballbig rightAlignment"
+                          v-if="itemList.odds_code == 'tnb'"
+                        >
+                          <div style="margin-right:.1rem;">大</div>
+                          <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'大小')"  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                      </div>
+                      <div class="row" v-if="itemList.odds_code.startsWith('tn')">
+                        <div
+                          class="row item-center ballsmall rightAlignment"
+                          v-if="itemList.odds_code == 'tns'"
+                        >
+                          <div style="margin-right:.1rem;">小</div>
+                          <div class="btn"  @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'大小')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+
+            <div @click="promptInfo()" class="right-img">
+              <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+              <br>
+              <img src="@/assets/st-imges/TheScore.png">
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>      
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "tennisThePlateTheBureau",
+  components:{
+    noData
+  },   
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode, //传入接口的值
+      data: [], //数据
+      noData : false,
+      limit : '',
+      passLimit:'',
+      timers:true,//轮询开关
+      dataList:[],
+      noShow : true,
+       lg_id:'',//联赛
+    };
+  },
+  methods: {
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    // 跳转组件
+    getTournamentPlay(match_id) {
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10010);
+    },
+    getAJAX(lg_id,search) {
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.$store.getters.getActivity,
+          p_code: this.$store.getters.getPaly_code,
+          game_code: this.$store.getters.getBallCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,
+          lg_id,                                        //需要拷贝
+          search
+        })
+        .then(res => {
+
+          if (res.data.status == 1 && res.data.data.length > 0) {
+             this.noData = false;
+            // //数据匹配判断是否上一次有数据
+            // if(this.dataList.length){
+            //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+            // }
+            this.data = res.data.data[0];
+            // console.log(this.data,'res')
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            let betting = '';
+            if(this.$store.getters.getActivity == 'StStringScene'){
+              betting = this.$store.getters.getPassBetting;
+            }else{
+              betting = this.$store.getters.getBetting;
+            }            
+            this.dataGroup(this.data,betting)
+            this.$store.dispatch("GETLOADING", false);
+          }else{
+            this.noData = true;
+          }
+          this.noShow = true;
+          this.$store.dispatch("GETLOADING", false);
+        });
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },    
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      // console.log('limit',this.limit)
+      // console.log(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName)
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let acty =  this.$store.getters.getActivity;
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting; 
+        if(betting == null){
+            betting = [];
+          }                 
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+            _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }            
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+
+      if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })
+      }
+    },       
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+         this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);     //需要拷贝
+        this.getAJAX('',this.serchTxt)                 //需要拷贝
+      
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+       if(this.serchTxt != ""){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = '';
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+      // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str){
+      this.dateClick = str;
+      this.data = '';
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+   created(){
+    this.fun_date();
+  },
+  mounted() {
+     //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+                        //需要拷贝
+
+
+    this.$store.dispatch("GETLOADING", true);
+    this.$store.dispatch("SET_BETTING",[]);    
+    this.getAJAX(this.lg_id);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAJAX(_this.lg_id,_this.serchTxt);
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy(){
+    this.timers = false;
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    //获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    },    
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);//设置默认值
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },  
+    getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },    
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+  }  
+};
+</script>
+
+<style scoped>
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.header {
+  width: 100%;
+  min-height: 0.4rem;
+  background: #ccc;
+  font-size: 0.16rem;
+  color: #333;
+}
+.list {
+  width: 100%;
+}
+.list-header {
+  min-height: 0.5rem;
+  background: #e5e5e5;
+  font-size: 0.14rem;
+}
+.list-header-time {
+  width: 26%;
+}
+.list-header-time-num {
+  width: 0.6rem;
+  min-height: 0.5rem;
+  background: #bbb;
+  color: #fff;
+  cursor: pointer;
+}
+.list-header-time-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 40%;
+  bottom: -0.05rem;
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.list-header-title {
+  width: 70%;
+  min-height: 0.5rem;
+}
+.list-header-title > div {
+  width: 50%;
+  height: 100%;
+  color: #aaa;
+}
+.list-body {
+  font-size: 0.14rem;
+  min-height: 0.8rem;
+  background: #fcfcfc;
+}
+.list-body:hover {
+  background: #fff5e9;
+}
+.list-body-name {
+  width: 26%;
+  line-height: 0.4rem;
+}
+.list-body-center {
+  width: 70%;
+}
+.list-body-center > div {
+  width: 50%;
+  min-height: 0.5rem;
+}
+.list-body-center > div > div {
+  width: 100%;
+  height: 100%;
+}
+.list-body-center > div > div span {
+  line-height: 0.4rem;
+  text-align: right;
+  color: #f76649;
+}
+.btn {
+  width: 0.48rem !important;
+  height: 0.3rem;
+  text-align: center;
+  line-height: 0.3rem;
+  background: #fcfcfc;
+  border-radius: 0.05rem;
+  border: 0.01rem solid #eee;
+  cursor: pointer;
+}
+.btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.list-header-title p {
+  width: 0.82rem;
+  text-align: center;
+  min-height: 0.5rem;
+  line-height: 0.5rem;
+}
+.theball {
+  position: absolute;
+  left: 10%;
+  top: 2%;
+  width: 1rem;
+}
+.size {
+  position: absolute;
+  left: 52%;
+  top: 2%;
+  width: 1rem;
+}
+.guest {
+  top: 50%;
+}
+.ballbig {
+  position: absolute;
+  left: 30%;
+  top: 10%;
+  width: 1rem;
+}
+.ballsmall {
+  position: absolute;
+  left: 30%;
+  top: 56%;
+  width: 1rem;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  top: 0.1rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+
+
+
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

BIN=BIN
.svn/pristine/08/0868d35dd2646fa865cccdd30c36f6cba6a27c85.svn-base


+ 328 - 0
.svn/pristine/0c/0c032d4f56bc70640196e95e70aecbd3d18acab9.svn-base

@@ -0,0 +1,328 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div v-if="obj.a ">
+        <div class="tit">
+          <span>冠军</span>
+        </div>
+        <div class="playCode row">
+          <div class="row item-center allAlignment" style="border-right:.01rem solid #e4e4e4">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'kemp_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center allAlignment">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'kemp_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div v-if="obj.b ">
+        <div class="tit">
+          <span>第一盘冠军</span>
+        </div>
+        <div class="playCode row">
+          <div class="row item-center allAlignment" style="border-right:.01rem solid #e4e4e4">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'one_kemp_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'第一盘冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center allAlignment">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'one_kemp_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'第一盘冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div v-if="obj.c ">
+        <div class="tit">
+          <span>第二盘冠军</span>
+        </div>
+        <div class="playCode row">
+          <div class="row item-center" style="border-right:.01rem solid #e4e4e4">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'two_kemp_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'第二盘冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'two_kemp_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'第二盘冠军')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "kemp",
+      data: [], //数据源
+      array: [], //测试
+      isData: "", //
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "", //
+      match_id: "",
+      lg_id:'',
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="kemp" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        e.lg_id = this.lg_id;
+        if (e.odds_code.startsWith("kemp")) {
+          obj.a = true;
+        } else if (e.odds_code.startsWith("one")) {
+          obj.b = true;
+        }else if (e.odds_code.startsWith("two")) {
+          obj.c = true;
+        }
+      });
+      this.obj = obj;
+    },
+
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(this.data,this.title,id,index,betting,teamName,playName,name,this.match_id,ballId,this.limit,function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      //console.log(val,'567')
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.isData = true;
+          //console.log(this.data,'123');
+          this.playGrouping(this.data);
+        }
+      });
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+  min-height: 0.4rem;
+}
+.playCode > div {
+  width: 50%;
+  font-size: 0.14rem;
+  padding: 0 .1rem;
+}
+.odds {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+
+.odds:hover,
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.condation {
+  color: #f76649;
+  font-weight: bold;
+  margin-right: .1rem;
+}
+.guest .odds span {
+  line-height: 0.44rem;
+}
+</style>

BIN=BIN
.svn/pristine/0c/0c13220dde7768b01974316222a57f0be2d087cb.svn-base


BIN=BIN
.svn/pristine/0e/0e88e43262535f9df415c2db2c9d30fb3c1bb50f.svn-base


+ 117 - 0
.svn/pristine/10/10ca72a6798f129bc45fd5932f717e0862b779de.svn-base

@@ -0,0 +1,117 @@
+<template>
+  <div>
+    <div class="concede">
+      <div class="tit">
+        <span>进球:大 / 小</span>
+      </div>
+      <div class="playCode">
+        <div class="big flex">
+          <div class="teamName">大</div>
+          <div class="oddsBox flex">
+            <div class="odds">
+              <span class="condation">0.5</span>
+              <span class="magnification">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="condation">0.5</span>
+              <span class="magnification">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="condation">0.5</span>
+              <span class="magnification">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="condation">0.5</span>
+              <span class="magnification">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="condation">0.5</span>
+              <span class="magnification">0.86</span>
+            </div>
+          </div>
+        </div>
+        <div class="small flex">
+          <div class="teamName">小</div>
+          <div class="oddsBox flex">
+            <div class="odds">
+              <span class="power">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="power">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="power">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="power">0.86</span>
+            </div>
+            <div class="odds">
+              <span class="power">0.86</span>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {};
+</script>
+<style scoped>
+.tit {
+  background: #373737;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #b4b4b4;
+}
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  /* flex-direction: row;
+  flex-wrap: wrap; */
+}
+.playCode {
+  background: #fff;
+}
+.big,
+.small {
+  padding: 0 0.1rem;
+  height: 0.7rem;
+  line-height: 0.7rem;
+  color: rgb(0, 0, 0);
+}
+.odds {
+  width: 0.52rem;
+  height: 0.44rem;
+  line-height: 0.22rem;
+  border: 1px solid #e4e4e4;
+  background: #fff;
+  cursor: pointer;
+  text-align: center;
+  font-weight: 700;
+  margin: 0 0.06rem;
+}
+.odds span {
+  display: block;
+}
+.odds:hover,
+.odds:hover span {
+  background: orange;
+  color: #fff;
+  border-color: orange;
+}
+.condation {
+  color: #bd4700;
+  font-weight: bold;
+}
+.magnification {
+  color: #000;
+  font-weight: bold;
+}
+.small .odds span {
+  line-height: 0.44rem;
+}
+</style>

+ 75 - 0
.svn/pristine/13/13a216d0c544cbbbe3f245c026487a88fcb9e942.svn-base

@@ -0,0 +1,75 @@
+<template>
+  <div>
+    <div class="date row item-center pdg20">
+      <div class="row datebox scroll">
+        <p v-for="(item,index) in date" :key="index">{{item.title}}</p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      date: [{ id: "today", title: "今日" }]
+    };
+  },
+  methods: {
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(
+        date.getFullYear(),
+        date.getMonth() + 1,
+        0
+      ).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+
+        let str = "";
+        let week = date.getDay() + i;
+        if (week == 7) {
+          str = "周日";
+        } else if (week == 1) {
+          str = "周一";
+        } else if (week == 2) {
+          str = "周二";
+        } else if (week == 3) {
+          str = "周三";
+        } else if (week == 4) {
+          str = "周四";
+        } else if (week == 5) {
+          str = "周五";
+        } else if (week == 6) {
+          str = "周六";
+        }
+        // if (i == 1) {
+        //   this.date.push({ id: "morning", title: "早盘" });
+        // }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title = str + month + "月" + day + "日";
+        this.date.push(time);
+      }
+      // console.log(this.date);
+    }
+  },
+  created() {
+    this.fun_date();
+  }
+};
+</script>
+
+<style scoped>
+</style>

+ 630 - 0
.svn/pristine/14/140aec3888e7e10ac5ff58b6b82bd857777b0696.svn-base

@@ -0,0 +1,630 @@
+<template>
+  <div>
+      <div class="serch row item-center allAlignment" v-if="noShow">
+        <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+          <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+        </div>
+        <div class="row item-center">
+          <div class="row item-center">
+            <input
+              class="fz14"
+              type="text"
+              placeholder="请输入联赛和球队名称"
+              v-model="serchTxt"
+              onkeyup="this.value=this.value.replace(/\s+/g,'')"
+              color="#AAA"
+            >
+            <div class="row center serch-img pointer hover" @click="Serch()">
+              <img src="@/assets/st-imges/serch.png" alt>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+            <div class="row center redraw pointer hover br05" @click="red()">
+              <img src="@/assets/st-imges/redraw.png" alt>
+            </div>
+          </div>
+        </div>
+      </div>
+
+       <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+
+    <div class="singleAndDouble" v-for="(item,index) in data" :key="index">
+      <div class="singleAndDouble-header pdg20 row">
+        <div style="width:26%;height:100%;font-size:.16rem;" class="row item-center">{{item.leagueName}}</div>
+        <div style="width:35%;height:100%" class="singleAndDouble-header-title">
+          <div class="row center">全场</div>
+          <div class="row item-center allAlignment" style="padding:0 .75rem;color:#999">
+            <p>单</p>
+            <p>双</p>
+          </div>
+        </div>
+        <div style="width:35%;height:100%" class="singleAndDouble-header-title">
+          <div class="row center">上半场</div>
+          <div class="row item-center allAlignment" style="padding:0 .75rem;color:#999">
+            <p>单</p>
+            <p>双</p>
+          </div>
+        </div>
+      </div>
+      <div
+        class="singleAndDouble-body row pdg20"
+        style="border-bottom:.01rem solid #ddd"
+        v-for="(items,i) in item.matchData"
+        :key="i"
+      >
+        <div style="width:25%;" class="row item-center">
+          <div
+            style="width:.8rem;text-align:center;height:100%;margin-right:.2rem;flex-wrap: wrap;padding:.05rem 0;"
+            class="row center"
+          >
+            <p style="width:100%;">{{items.match_date}}</p>
+            <p style="font-size:.12rem;color:#F76649;width:100%">{{items.match_time}}</p>
+            <p style="width:100%;">
+              <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
+            </p>
+          </div>
+          <div>
+            <p>{{items.home_team}}</p>
+            <p style="margin-top:.1rem;">{{items.guest_team}}</p>
+          </div>
+        </div>
+          <!-- 全场 -->
+          <div style="width:35%;padding:0 .25rem;border-right:.01rem solid #ddd;position: relative;" class="row item-center allAlignment">
+            <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" style="">
+                <div v-if="itemList.odds_code == 'tss' || itemList.odds_code == 'tsd'" :class="itemList.odds_code == 'tss'?'list-left':'list-right'">
+                  <p class="singleAndDouble-list-btn" v-if="itemList.odds_code == 'tss' " :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','进球:单/双')">{{itemList.odds?itemList.odds:'-'}}</p>
+                  <p class="singleAndDouble-list-btn" v-if="itemList.odds_code == 'tsd' " :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','进球:单/双')">{{itemList.odds?itemList.odds:'-'}}</p> 
+                </div>
+            </div>
+          </div>
+          <!-- 半场 -->
+          <div style="width:35%;padding:0 .25rem;position: relative;" class="row item-center allAlignment">
+            <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" style="">
+              <div v-if="itemList.odds_code == 'tss_h' || itemList.odds_code == 'tsd_h' " :class="itemList.odds_code == 'tss_h'?'list-left':'list-right'">
+                <p class="singleAndDouble-list-btn" v-if="itemList.odds_code == 'tss_h' " :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','进球:单/双-上半场')">{{itemList.odds?itemList.odds:'-'}}</p>
+                <p class="singleAndDouble-list-btn" v-if="itemList.odds_code == 'tsd_h' " :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}" @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','进球:单/双-上半场')">{{itemList.odds?itemList.odds:'-'}}</p> 
+              </div>
+            </div>
+          </div>
+
+          <div @click="promptInfo()" class="right-img">
+            <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+            <br>
+            <img src="@/assets/st-imges/TheScore.png">
+          </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>      
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "singleAndDouble",
+  components:{
+    noData
+  },      
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      data: [],
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity, 
+      // ballCode: this.$store.getters.getBallCode,
+      timers:true,
+      noData : false, // 暂无数据显示
+      limit : '',
+      passLimit:'',
+      dataList:[],
+      noShow : true,
+      lg_id:'',//联赛 
+    };
+  },
+  mounted() {
+    //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+    this.$store.dispatch("GETLOADING", true);    
+    this.getAJAX(this.lg_id);
+    this.$store.dispatch("SET_BETTING",[]);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAJAX(_this.lg_id,_this.serchTxt)
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy(){
+    this.timers = false
+  },
+  methods:{
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+  getAJAX(lg_id,search){
+    if(this.$store.getters.getActivity == 'StStringScene'){
+      this.$store.dispatch("SET_BETTINGTYPE", 2);
+    }else{
+      this.$store.dispatch("SET_BETTINGTYPE", 1);
+    }
+      this.$http.get(this.$ports.home.gameList,{
+        type:this.$store.getters.getActivity,
+        p_code : this.$store.getters.getPaly_code,
+        game_code : this.$store.getters.getBallCode,
+        match_date:this.dateClick == 'all'? '': this.dateClick, 
+        lg_id,                                       
+        search
+      }).then(res =>{    
+        if(res.data.status == 1 && res.data.data.length > 0){
+          this.noData = false;
+          // if(this.dataList.length){
+          //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+          // }
+          this.data = res.data.data[0];
+          // console.log(this.data,'res')
+          //临时储存数据
+          this.dataList = res.data.data[0];  
+          let betting = '';
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            betting = this.$store.getters.getPassBetting;
+          }else{
+            betting = this.$store.getters.getBetting;  
+          }              
+            this.dataGroup(this.data,betting)
+          this.$store.dispatch("GETLOADING", false);   
+        }else{
+          this.noData = true;
+        }
+        this.noShow = true;
+        this.$store.dispatch("GETLOADING", false);     
+      }
+      )
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },    
+    // 修改样式
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;     
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      let acty =  this.$store.getters.getActivity;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }          
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+          _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }            
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+      if(this.limit < 10){      
+        this.data[idx].matchData.forEach((val,i) =>{
+
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })            
+      }
+    },
+      //搜索按钮被点击
+    Serch() {
+      //判断搜索框内是否有值,没有值中断函数
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]); //需要拷贝
+        this.getAJAX('',this.serchTxt)
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+       if(this.serchTxt != ""){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";  
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = []
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+    // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str){
+      this.dateClick = str;
+      this.data = []
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+  created(){
+    this.fun_date();
+  },
+  computed:{
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    }           
+  },
+  watch:{
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }       
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },          
+  }
+};
+</script>
+<style scoped>
+.list-left {
+  position: absolute;
+  left: 0.7rem;
+  bottom: 25%;
+}
+.list-right {
+  position: absolute;
+  left: 2rem;
+  bottom: 25%;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.singleAndDouble-header {
+  height: 0.5rem;
+  background: #e5e5e5;
+}
+.singleAndDouble-header-title div {
+  height: 0.25rem;
+}
+.singleAndDouble-body {
+  position: relative;
+  background: #fff;
+}
+.singleAndDouble-body:hover{
+  background: #fff5e9;
+}
+.singleAndDouble-list-btn {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.singleAndDouble-list-btn:hover{
+  background: #ddd;
+  color: #f76649;
+  
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: -2%;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+* {
+  font-size: 0.14rem;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+.col{
+  border-radius: 2px;
+  background: #F76649;
+  color: #fff;
+}
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/14/148623a78e392fc5614d3b29a2713e3054bcc26c.svn-base


+ 535 - 0
.svn/pristine/15/15aa69b9476a30a4d7f5ef40e75d672e8d043990.svn-base

@@ -0,0 +1,535 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div v-if="obj.a ">
+        <div class="tit">
+          <span>{{ballType == 'lq' ? '让分':'让球'}}</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,ballType == 'lq' ? '让分':'让球')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,ballType == 'lq' ? '让分':'让球')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.b ">
+        <div class="tit">
+          <span>让球-上半场</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_h'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-上半场')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_h'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-上半场')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.c">
+        <div class="tit">
+          <span>让分-第一节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_1'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第一节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_1'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第一节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.d ">
+        <div class="tit">
+          <span>让分-第二节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_2'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第二节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_2'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第二节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.e">
+        <div class="tit">
+          <span>让分-第三节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_3'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第三节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_3'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第三节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.f ">
+        <div class="tit">
+          <span>让分-第四节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_4'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第四节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_4'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第四节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.g ">
+        <div class="tit">
+          <span>让球-前五局</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'coh_5'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-前五局')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'cog_5'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-前五局')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "CO",
+      data: [], //数据源
+      isData: "", //是否有数据
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "", //
+      match_id: "", //赛事id
+      limit: "", //投注数量
+      lg_id: "",
+      ballType:'',//球类类别
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+        // console.log(e);
+        if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="CO" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+
+        e.lg_id = this.lg_id;
+        if (e.odds_code == "coh" || e.odds_code == "cog") {
+          obj.a = true;
+        } else if (e.odds_code.endsWith("_h")) {
+          obj.b = true;
+        } else if (e.odds_code.endsWith("_1")) {
+          obj.c = true;
+        } else if (e.odds_code.endsWith("_2")) {
+          obj.d = true;
+        } else if (e.odds_code.endsWith("_3")) {
+          obj.e = true;
+        } else if (e.odds_code.endsWith("_4")) {
+          obj.f = true;
+        } else if (e.odds_code.endsWith("_5")) {
+          obj.g = true;
+        }
+      });
+      this.obj = obj;
+     // console.log(this.obj)
+    },
+
+    /*-------------------------------------------*/
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        if (this.limit < 10) {
+          this.$set(this.data[index], "isTrue", true);
+        }
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    //获取玩法数据
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    //玩法数据处理和监听
+    getGameRatio(val) {
+      this.lg_id = val.lg_id;
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          //console.log(this.data,'wo')
+          this.ballType = this.$store.getters.getBallCode;
+          this.isData = true;
+          this.playGrouping(this.data);
+        }
+      });
+
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            let id = this.$store.getters.getDeleteType;
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+  min-height: 0.8rem;
+  padding: 0 .1rem;
+}
+.playCode > div {
+  min-height: 0.4rem;
+  font-size: 0.14rem;
+}
+.obbsBox {
+  width: 1.3rem;
+}
+.teamName {
+  width: 1.5rem;
+}
+.odds {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+
+.odds:hover,
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.condation {
+  color: #f4755b;
+  font-weight: bold;
+  margin-right: 0.1rem;
+}
+
+.guest .odds span {
+  line-height: 0.44rem;
+}
+</style>

+ 363 - 0
.svn/pristine/15/15d65e2bf5eace96c0599ce3f9d1e24a6102f937.svn-base

@@ -0,0 +1,363 @@
+<template>
+  <div>
+    <div class="abstract">
+      <div class="abstract-title pdg20">单式注单</div>
+      <div class="abstract-date pdg20 row item-center">
+        <div class="row item-center">
+          <p style="color:#666;">开始日期</p>
+          <input type="date" :max="newTime" v-model="startTime">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">结束日期</p>
+          <input type="date" :max="newTime" v-model="endTime" :min="startTime">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">注单状态</p>
+          <select v-model="status" class="select_class">
+            <option value=0 style="height: 0.4rem">全部</option>
+            <option value=1>未结算</option>
+            <option value=2>已结算</option>
+            <option value=-1>无效</option>
+          </select>
+        </div>
+        <button @click="ajaxclick()">查询</button>
+      </div>
+      <div class="abstract-options row allAlignment">
+        <div class="row">
+          <div class="row center" @click="options(3)" :class="optionsActive==3?'active':''">过去30天</div>
+          <div class="row center" @click="options(2)" :class="optionsActive==2?'active':''">昨日</div>
+          <div class="row center" @click="options(1)" :class="optionsActive==1?'active':''">今日</div>
+        </div>
+      </div>
+      <div class="abstract-box scroll">
+        <yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item>
+              <yd-list-other slot="other">
+                <div
+                  v-for="(item,index) in list"
+                  :key="index"
+                  style="border-left:.01rem solid #ccc;border-top:.01rem solid #ccc;border-right:.01rem solid #ccc;"
+                >
+                  <div class="title row item-center allAlignment">
+                    <p style="width:12%">编号</p>
+                    <p style="width:12%">类别</p>
+                    <p style="width:20%">订单详情</p>
+                    <p style="width:12%">投注类别</p>
+                    <p style="width:12%">比赛</p>
+                    <p style="width:10%">赛果</p>
+                    <p style="width:12%">投注额/可赢额</p>
+                    <p style="width:10%">赢 / 输</p>
+                  </div>
+                  <ul class="list row">
+                    <li style="width:12%">{{index+1}}</li>
+                    <li style="width:12%">{{$public.getGameType(item.game_code)}}</li>
+                    <li style="width:20%">
+                      <p style="width:100%;text-align: center;">{{item.ctime}}</p>
+                      <p style="width:90%;text-align: center;">{{item.order_id}}</p>
+                    </li>
+                    <li style="width:12%"><p>{{item.odds_name}}</p><p>{{item.condition}}@{{item.odds}}</p></li>
+                    <li style="width:12%">
+                      <p style="width:100%;text-align:center;">{{item.home_team}}</p>
+                      <p>vs</p>
+                      <p style="width:100%;text-align:center;">{{item.guest_team}}</p>
+                    </li>
+                    <li style="width:10%">{{item.matchresult?item.matchresult:'--'}}</li>
+                    <li style="width:12%"><p style="width:100%;text-align: center;">投注额:{{item.bet_money}}</p><p style="width:100%;text-align: center;">可赢额:{{item.willMoney}}</p></li>
+                    <li style="width:10%">{{item.result==0?'--':item.result==1?'赢':'输'}}</li>
+                  </ul>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "unitary",
+  data() {
+    return {
+      optionsActive: 3,
+      startTime: "",
+      newTime: "",
+      endTime: "",
+      page: 1,
+      pageSize: 10,
+      list: "",
+      status: 0,
+      statusType: [
+        {label: '全部', value: ''},
+        {label: '已结算', value: 1},
+        {label: '未结算', value: 2},
+        {label: '已失效', value: 3},
+      ],
+    };
+  },
+  methods: {
+    ajaxclick(){
+      // this.list='';
+      // this.page=1;
+      // this.loadList()
+      this.list = ''
+      this.page = 1
+      this.options(this.optionActive);
+    },
+    options(num) {
+      let date = new Date();
+      this.optionsActive = num;
+      if (this.optionsActive == 1) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else if (this.optionsActive == 2) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() < 10 ? "0" + date.getMonth() : date.getMonth()
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      }
+    },
+    date_fun() {
+      let date = new Date();
+      let date1 = new Date(date);
+      this.newTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+      this.startTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      this.endTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+    },
+    loadList() {
+      console.log(this.startTime + " 00:00:00",this.endTime + " 23:59:50")
+      this.$http
+        .post(this.$ports.login.bettingRecord, {
+          token: localStorage.getItem("token"),
+          startTime: this.startTime + " 00:00:00",
+          endTime: this.endTime + " 23:59:59",
+          type: 1,
+          currentPage: this.page,
+          pageSize: 10,
+          set_status: this.status
+        })
+        .then(res => {
+          console.log(res)
+          this.list = [...this.list, ...res.data.data.list];
+          
+          if (this.pageSize > res.data.data.list.length) {
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+        });
+    }
+  },
+  created() {
+    this.date_fun();
+  },
+  mounted() {
+    
+    this.options(3);
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-mes {
+  padding: 0;
+}
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-other {
+  padding: 0;
+}
+div /deep/ .yd-list-other {
+  display: block;
+}
+.yd-list-theme5 .yd-list-item {
+  padding: 0;
+}
+div /deep/ .yd-list-img {
+  display: none;
+}
+div /deep/ .yd-list-loading {
+  display: none;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.abstract-title {
+  font-size: 0.18rem;
+  color: #fff;
+  height: 0.5rem;
+  background: #999;
+  line-height: 0.5rem;
+}
+.abstract-date {
+  height: 0.8rem;
+  font-size: 0.14rem;
+}
+input {
+  width: 1.7rem;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  color: #666;
+  border: 0.01rem solid #ddd;
+  border-radius: 0.05rem;
+  margin-left: 0.1rem;
+  cursor: pointer;
+}
+input[type="date"]::-webkit-inner-spin-button {
+  visibility: hidden;
+}
+input[type="date"]::-webkit-clear-button {
+  display: none;
+}
+input[type="date"]::-webkit-datetime-edit-fields-wrapper {
+  background-color: #eee;
+}
+input[type="date"]::-webkit-datetime-edit {
+  /* content: '起始时间'; */
+  padding-left: 0.1rem;
+}
+button {
+  background: #999;
+  border: none;
+  width: 0.6rem;
+  height: 0.4rem;
+  border-radius: 0.05rem;
+  color: #fff;
+  margin-left: 0.2rem;
+  cursor: pointer;
+}
+.abstract-options {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #999;
+}
+.abstract-options > div > div {
+  width: 1rem;
+  height: 0.4rem;
+  color: #fff;
+  background: #ccc;
+  margin-left: 0.01rem;
+  border-radius: 5px 5px 0px 0px;
+  cursor: pointer;
+}
+.abstract-options div.active {
+  background: #666;
+}
+.abstract-box {
+  min-height: 2.8rem;
+  max-height: 6.6rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.abstract-box > div {
+  margin-top: 0.2rem;
+}
+.abstract-box .title {
+  height: 0.4rem;
+  background: #ddd;
+  color: #333;
+}
+.abstract-box .title p {
+  text-align: center;
+}
+.abstract-box .title div {
+  width: 50%;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.abstract-box .list li {
+  width: 50%;
+  height: 1.1rem;
+  background: #fff;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  font-size: 0.14rem;
+  border-top: 0.01rem solid #ccc;
+  border-left: 0.01rem solid #ccc;
+  border-bottom: 0.01rem solid #ccc;
+}
+.abstract-box .list li:nth-child(1) {
+  border-left: none;
+}
+.select_class {
+    width: 1.7rem;
+    height: 0.4rem;
+    font-size: 0.14rem;
+    color: #666;
+    border: 0.01rem solid #ddd;
+    border-radius: 0.05rem;
+    margin-left: 0.1rem;
+    padding-left: 0.1rem;
+    cursor: pointer;
+}
+</style>

+ 10501 - 0
.svn/pristine/16/16bf2b618c535ec2c5b528610d0f60641c0ba0aa.svn-base

@@ -0,0 +1,10501 @@
+{
+  "name": "sports",
+  "version": "1.0.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@babel/runtime": {
+      "version": "7.4.2",
+      "resolved": "http://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.4.2.tgz",
+      "integrity": "sha1-9atolzIPFt7NhV7tcLcFkIoxP+g=",
+      "requires": {
+        "regenerator-runtime": "^0.13.2"
+      },
+      "dependencies": {
+        "regenerator-runtime": {
+          "version": "0.13.2",
+          "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz",
+          "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc="
+        }
+      }
+    },
+    "@vant/icons": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npm.taobao.org/@vant/icons/download/@vant/icons-1.1.3.tgz",
+      "integrity": "sha1-Fb19WPL6V8c2h18Oz3zoGZL8Seo="
+    },
+    "@vue/babel-helper-vue-jsx-merge-props": {
+      "version": "1.0.0-beta.2",
+      "resolved": "http://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0-beta.2.tgz",
+      "integrity": "sha1-8+INd7id23pLm3p1Ny8FzTrCLZI="
+    },
+    "accepts": {
+      "version": "1.3.5",
+      "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.5.tgz",
+      "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
+      "requires": {
+        "mime-types": "~2.1.18",
+        "negotiator": "0.6.1"
+      }
+    },
+    "acorn": {
+      "version": "5.7.3",
+      "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz",
+      "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=",
+      "dev": true
+    },
+    "acorn-dynamic-import": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-2.0.2.tgz",
+      "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+      "dev": true,
+      "requires": {
+        "acorn": "^4.0.3"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "4.0.13",
+          "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-4.0.13.tgz",
+          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+          "dev": true
+        }
+      }
+    },
+    "ajv": {
+      "version": "5.5.2",
+      "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz",
+      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+      "dev": true,
+      "requires": {
+        "co": "^4.6.0",
+        "fast-deep-equal": "^1.0.0",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.3.0"
+      }
+    },
+    "ajv-keywords": {
+      "version": "3.4.0",
+      "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.0.tgz",
+      "integrity": "sha1-S4Mee1MUFafMUYzUBOc/YZPGNJ0=",
+      "dev": true
+    },
+    "align-text": {
+      "version": "0.1.4",
+      "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz",
+      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2",
+        "longest": "^1.0.1",
+        "repeat-string": "^1.5.2"
+      }
+    },
+    "alphanum-sort": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
+      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+      "dev": true
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "http://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4="
+    },
+    "ansi-regex": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz",
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz",
+      "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "anymatch": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz",
+      "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
+      "dev": true,
+      "requires": {
+        "micromatch": "^3.1.4",
+        "normalize-path": "^2.1.1"
+      },
+      "dependencies": {
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "dev": true,
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        }
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
+      "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
+      "dev": true
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz",
+      "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
+      "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+    },
+    "array-find-index": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
+      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+    },
+    "array-flatten": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz",
+      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+    },
+    "array-includes": {
+      "version": "3.0.3",
+      "resolved": "http://registry.npm.taobao.org/array-includes/download/array-includes-3.0.3.tgz",
+      "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+      "requires": {
+        "define-properties": "^1.1.2",
+        "es-abstract": "^1.7.0"
+      }
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+    },
+    "asn1.js": {
+      "version": "4.10.1",
+      "resolved": "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz",
+      "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "assert": {
+      "version": "1.4.1",
+      "resolved": "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz",
+      "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+      "dev": true,
+      "requires": {
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+    },
+    "async": {
+      "version": "2.6.2",
+      "resolved": "http://registry.npm.taobao.org/async/download/async-2.6.2.tgz",
+      "integrity": "sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.11"
+      }
+    },
+    "async-each": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.1.tgz",
+      "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0="
+    },
+    "async-limiter": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz",
+      "integrity": "sha1-ePrtjD0HSrgfIrTphdeehzj3IPg=",
+      "dev": true
+    },
+    "async-validator": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+      "requires": {
+        "babel-runtime": "6.x"
+      }
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
+      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
+    },
+    "autoprefixer": {
+      "version": "7.2.6",
+      "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-7.2.6.tgz",
+      "integrity": "sha1-JWZy+G98c12oScTwfQCKuwVgZ9w=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^2.11.3",
+        "caniuse-lite": "^1.0.30000805",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^6.0.17",
+        "postcss-value-parser": "^3.2.3"
+      }
+    },
+    "axios": {
+      "version": "0.18.0",
+      "resolved": "http://registry.npm.taobao.org/axios/download/axios-0.18.0.tgz",
+      "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
+      "requires": {
+        "follow-redirects": "^1.3.0",
+        "is-buffer": "^1.1.5"
+      }
+    },
+    "babel-code-frame": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz",
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "esutils": "^2.0.2",
+        "js-tokens": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "babel-core": {
+      "version": "6.26.3",
+      "resolved": "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz",
+      "integrity": "sha1-suLwnjQtDwyI4vAuBneUEl51wgc=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "babel-generator": "^6.26.0",
+        "babel-helpers": "^6.24.1",
+        "babel-messages": "^6.23.0",
+        "babel-register": "^6.26.0",
+        "babel-runtime": "^6.26.0",
+        "babel-template": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "convert-source-map": "^1.5.1",
+        "debug": "^2.6.9",
+        "json5": "^0.5.1",
+        "lodash": "^4.17.4",
+        "minimatch": "^3.0.4",
+        "path-is-absolute": "^1.0.1",
+        "private": "^0.1.8",
+        "slash": "^1.0.0",
+        "source-map": "^0.5.7"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "babel-generator": {
+      "version": "6.26.1",
+      "resolved": "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz",
+      "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=",
+      "dev": true,
+      "requires": {
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "detect-indent": "^4.0.0",
+        "jsesc": "^1.3.0",
+        "lodash": "^4.17.4",
+        "source-map": "^0.5.7",
+        "trim-right": "^1.0.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "babel-helper-bindify-decorators": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz",
+      "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-builder-binary-assignment-operator-visitor": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+      "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+      "dev": true,
+      "requires": {
+        "babel-helper-explode-assignable-expression": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-call-delegate": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz",
+      "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+      "dev": true,
+      "requires": {
+        "babel-helper-hoist-variables": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-define-map": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz",
+      "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+      "dev": true,
+      "requires": {
+        "babel-helper-function-name": "^6.24.1",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-helper-explode-assignable-expression": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz",
+      "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-explode-class": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz",
+      "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
+      "dev": true,
+      "requires": {
+        "babel-helper-bindify-decorators": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-function-name": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz",
+      "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+      "dev": true,
+      "requires": {
+        "babel-helper-get-function-arity": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-get-function-arity": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz",
+      "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-hoist-variables": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz",
+      "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-optimise-call-expression": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz",
+      "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-regex": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz",
+      "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-helper-remap-async-to-generator": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz",
+      "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
+      "dev": true,
+      "requires": {
+        "babel-helper-function-name": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-replace-supers": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz",
+      "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+      "dev": true,
+      "requires": {
+        "babel-helper-optimise-call-expression": "^6.24.1",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-helper-vue-jsx-merge-props": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+      "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY="
+    },
+    "babel-helpers": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz",
+      "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-loader": {
+      "version": "7.1.5",
+      "resolved": "http://registry.npm.taobao.org/babel-loader/download/babel-loader-7.1.5.tgz",
+      "integrity": "sha1-4+4M1zlKpVfgE7AtPkkr/QeqbWg=",
+      "dev": true,
+      "requires": {
+        "find-cache-dir": "^1.0.0",
+        "loader-utils": "^1.0.2",
+        "mkdirp": "^0.5.1"
+      }
+    },
+    "babel-messages": {
+      "version": "6.23.0",
+      "resolved": "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz",
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-check-es2015-constants": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz",
+      "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-syntax-async-functions": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz",
+      "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+      "dev": true
+    },
+    "babel-plugin-syntax-async-generators": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz",
+      "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
+      "dev": true
+    },
+    "babel-plugin-syntax-class-properties": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-class-properties/download/babel-plugin-syntax-class-properties-6.13.0.tgz",
+      "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
+      "dev": true
+    },
+    "babel-plugin-syntax-decorators": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz",
+      "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
+      "dev": true
+    },
+    "babel-plugin-syntax-dynamic-import": {
+      "version": "6.18.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-dynamic-import/download/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+      "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
+      "dev": true
+    },
+    "babel-plugin-syntax-exponentiation-operator": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+      "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
+      "dev": true
+    },
+    "babel-plugin-syntax-jsx": {
+      "version": "6.18.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-jsx/download/babel-plugin-syntax-jsx-6.18.0.tgz",
+      "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
+      "dev": true
+    },
+    "babel-plugin-syntax-object-rest-spread": {
+      "version": "6.13.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+      "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
+      "dev": true
+    },
+    "babel-plugin-syntax-trailing-function-commas": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+      "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
+      "dev": true
+    },
+    "babel-plugin-transform-async-generator-functions": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
+      "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
+      "dev": true,
+      "requires": {
+        "babel-helper-remap-async-to-generator": "^6.24.1",
+        "babel-plugin-syntax-async-generators": "^6.5.0",
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-async-to-generator": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+      "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+      "dev": true,
+      "requires": {
+        "babel-helper-remap-async-to-generator": "^6.24.1",
+        "babel-plugin-syntax-async-functions": "^6.8.0",
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-class-properties": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-class-properties/download/babel-plugin-transform-class-properties-6.24.1.tgz",
+      "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
+      "dev": true,
+      "requires": {
+        "babel-helper-function-name": "^6.24.1",
+        "babel-plugin-syntax-class-properties": "^6.8.0",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-decorators": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz",
+      "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
+      "dev": true,
+      "requires": {
+        "babel-helper-explode-class": "^6.24.1",
+        "babel-plugin-syntax-decorators": "^6.13.0",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-arrow-functions": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+      "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-block-scoped-functions": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+      "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-block-scoping": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+      "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-template": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-plugin-transform-es2015-classes": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+      "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+      "dev": true,
+      "requires": {
+        "babel-helper-define-map": "^6.24.1",
+        "babel-helper-function-name": "^6.24.1",
+        "babel-helper-optimise-call-expression": "^6.24.1",
+        "babel-helper-replace-supers": "^6.24.1",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-computed-properties": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+      "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-destructuring": {
+      "version": "6.23.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+      "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-duplicate-keys": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+      "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-for-of": {
+      "version": "6.23.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+      "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-function-name": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+      "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+      "dev": true,
+      "requires": {
+        "babel-helper-function-name": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-literals": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+      "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-modules-amd": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+      "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-modules-commonjs": {
+      "version": "6.26.2",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+      "integrity": "sha1-WKeThjqefKhwvcWogRF/+sJ9tvM=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-transform-strict-mode": "^6.24.1",
+        "babel-runtime": "^6.26.0",
+        "babel-template": "^6.26.0",
+        "babel-types": "^6.26.0"
+      }
+    },
+    "babel-plugin-transform-es2015-modules-systemjs": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+      "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+      "dev": true,
+      "requires": {
+        "babel-helper-hoist-variables": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-modules-umd": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+      "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-object-super": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+      "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+      "dev": true,
+      "requires": {
+        "babel-helper-replace-supers": "^6.24.1",
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-parameters": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+      "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+      "dev": true,
+      "requires": {
+        "babel-helper-call-delegate": "^6.24.1",
+        "babel-helper-get-function-arity": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-template": "^6.24.1",
+        "babel-traverse": "^6.24.1",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-shorthand-properties": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+      "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-spread": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+      "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-sticky-regex": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+      "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+      "dev": true,
+      "requires": {
+        "babel-helper-regex": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-es2015-template-literals": {
+      "version": "6.22.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+      "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-typeof-symbol": {
+      "version": "6.23.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+      "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-es2015-unicode-regex": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+      "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+      "dev": true,
+      "requires": {
+        "babel-helper-regex": "^6.24.1",
+        "babel-runtime": "^6.22.0",
+        "regexpu-core": "^2.0.0"
+      }
+    },
+    "babel-plugin-transform-exponentiation-operator": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+      "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+      "dev": true,
+      "requires": {
+        "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+        "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-object-rest-spread": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-object-rest-spread/download/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+      "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+        "babel-runtime": "^6.26.0"
+      }
+    },
+    "babel-plugin-transform-regenerator": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz",
+      "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+      "dev": true,
+      "requires": {
+        "regenerator-transform": "^0.10.0"
+      }
+    },
+    "babel-plugin-transform-runtime": {
+      "version": "6.23.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz",
+      "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0"
+      }
+    },
+    "babel-plugin-transform-strict-mode": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz",
+      "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.22.0",
+        "babel-types": "^6.24.1"
+      }
+    },
+    "babel-plugin-transform-vue-jsx": {
+      "version": "3.7.0",
+      "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-vue-jsx/download/babel-plugin-transform-vue-jsx-3.7.0.tgz",
+      "integrity": "sha1-1ASS5mkqNrWU9+mhko9D6Wl0CWA=",
+      "dev": true,
+      "requires": {
+        "esutils": "^2.0.2"
+      }
+    },
+    "babel-polyfill": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
+      "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "core-js": "^2.5.0",
+        "regenerator-runtime": "^0.10.5"
+      },
+      "dependencies": {
+        "regenerator-runtime": {
+          "version": "0.10.5",
+          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+          "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
+          "dev": true
+        }
+      }
+    },
+    "babel-preset-env": {
+      "version": "1.7.0",
+      "resolved": "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.7.0.tgz",
+      "integrity": "sha1-3qefpOvriDzTXasH4mDBycBN93o=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-check-es2015-constants": "^6.22.0",
+        "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+        "babel-plugin-transform-async-to-generator": "^6.22.0",
+        "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+        "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+        "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+        "babel-plugin-transform-es2015-classes": "^6.23.0",
+        "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+        "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+        "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+        "babel-plugin-transform-es2015-for-of": "^6.23.0",
+        "babel-plugin-transform-es2015-function-name": "^6.22.0",
+        "babel-plugin-transform-es2015-literals": "^6.22.0",
+        "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+        "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+        "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+        "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+        "babel-plugin-transform-es2015-object-super": "^6.22.0",
+        "babel-plugin-transform-es2015-parameters": "^6.23.0",
+        "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+        "babel-plugin-transform-es2015-spread": "^6.22.0",
+        "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+        "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+        "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+        "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+        "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+        "babel-plugin-transform-regenerator": "^6.22.0",
+        "browserslist": "^3.2.6",
+        "invariant": "^2.2.2",
+        "semver": "^5.3.0"
+      },
+      "dependencies": {
+        "browserslist": {
+          "version": "3.2.8",
+          "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-3.2.8.tgz",
+          "integrity": "sha1-sABTYdZHHw9ZUnl6dvyYXx+Xj8Y=",
+          "dev": true,
+          "requires": {
+            "caniuse-lite": "^1.0.30000844",
+            "electron-to-chromium": "^1.3.47"
+          }
+        }
+      }
+    },
+    "babel-preset-stage-2": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz",
+      "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-syntax-dynamic-import": "^6.18.0",
+        "babel-plugin-transform-class-properties": "^6.24.1",
+        "babel-plugin-transform-decorators": "^6.24.1",
+        "babel-preset-stage-3": "^6.24.1"
+      }
+    },
+    "babel-preset-stage-3": {
+      "version": "6.24.1",
+      "resolved": "http://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz",
+      "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
+      "dev": true,
+      "requires": {
+        "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+        "babel-plugin-transform-async-generator-functions": "^6.24.1",
+        "babel-plugin-transform-async-to-generator": "^6.24.1",
+        "babel-plugin-transform-exponentiation-operator": "^6.24.1",
+        "babel-plugin-transform-object-rest-spread": "^6.22.0"
+      }
+    },
+    "babel-register": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz",
+      "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+      "dev": true,
+      "requires": {
+        "babel-core": "^6.26.0",
+        "babel-runtime": "^6.26.0",
+        "core-js": "^2.5.0",
+        "home-or-tmp": "^2.0.0",
+        "lodash": "^4.17.4",
+        "mkdirp": "^0.5.1",
+        "source-map-support": "^0.4.15"
+      }
+    },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      }
+    },
+    "babel-template": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz",
+      "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "babel-traverse": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-traverse": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz",
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "babel-messages": "^6.23.0",
+        "babel-runtime": "^6.26.0",
+        "babel-types": "^6.26.0",
+        "babylon": "^6.18.0",
+        "debug": "^2.6.8",
+        "globals": "^9.18.0",
+        "invariant": "^2.2.2",
+        "lodash": "^4.17.4"
+      }
+    },
+    "babel-types": {
+      "version": "6.26.0",
+      "resolved": "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz",
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.26.0",
+        "esutils": "^2.0.2",
+        "lodash": "^4.17.4",
+        "to-fast-properties": "^1.0.3"
+      }
+    },
+    "babylon": {
+      "version": "6.18.0",
+      "resolved": "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz",
+      "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=",
+      "dev": true
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "http://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
+      "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        },
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "base64-js": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz",
+      "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "http://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
+    },
+    "bfj-node4": {
+      "version": "5.3.1",
+      "resolved": "http://registry.npm.taobao.org/bfj-node4/download/bfj-node4-5.3.1.tgz",
+      "integrity": "sha1-4j2LJwV/HQIU/FYRQq2duZjyaDA=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.1",
+        "check-types": "^7.3.0",
+        "tryer": "^1.0.0"
+      }
+    },
+    "big.js": {
+      "version": "5.2.2",
+      "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz",
+      "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "1.13.0",
+      "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.0.tgz",
+      "integrity": "sha1-lSPgATBqMkRLkHQj8d4hZCIvarE="
+    },
+    "bluebird": {
+      "version": "3.5.3",
+      "resolved": "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.3.tgz",
+      "integrity": "sha1-fQHG+WFsmlGrD4xUmnnf5uwz76c=",
+      "dev": true
+    },
+    "bn.js": {
+      "version": "4.11.8",
+      "resolved": "http://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz",
+      "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=",
+      "dev": true
+    },
+    "body-parser": {
+      "version": "1.18.3",
+      "resolved": "http://registry.npm.taobao.org/body-parser/download/body-parser-1.18.3.tgz",
+      "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
+      "requires": {
+        "bytes": "3.0.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "~1.6.3",
+        "iconv-lite": "0.4.23",
+        "on-finished": "~2.3.0",
+        "qs": "6.5.2",
+        "raw-body": "2.3.3",
+        "type-is": "~1.6.16"
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "http://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "2.1.2",
+          "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz",
+          "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk="
+        }
+      }
+    },
+    "boolbase": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz",
+      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+      "dev": true
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
+      "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
+      "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+      "dev": true
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz",
+      "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=",
+      "dev": true,
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=",
+      "dev": true,
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz",
+      "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.0.1",
+      "resolved": "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz",
+      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "randombytes": "^2.0.1"
+      }
+    },
+    "browserify-sign": {
+      "version": "4.0.4",
+      "resolved": "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz",
+      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.1",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.2",
+        "elliptic": "^6.0.0",
+        "inherits": "^2.0.1",
+        "parse-asn1": "^5.0.0"
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=",
+      "dev": true,
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "2.11.3",
+      "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-2.11.3.tgz",
+      "integrity": "sha1-/jYWeu0bvN5IJ+v+cTR6LMcLmbI=",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30000792",
+        "electron-to-chromium": "^1.3.30"
+      }
+    },
+    "buffer": {
+      "version": "4.9.1",
+      "resolved": "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz",
+      "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+      "dev": true,
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
+      "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
+      "dev": true
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow="
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+      "dev": true
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
+      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+    },
+    "cacache": {
+      "version": "10.0.4",
+      "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz",
+      "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.1",
+        "chownr": "^1.0.1",
+        "glob": "^7.1.2",
+        "graceful-fs": "^4.1.11",
+        "lru-cache": "^4.1.1",
+        "mississippi": "^2.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.2",
+        "ssri": "^5.2.4",
+        "unique-filename": "^1.1.0",
+        "y18n": "^4.0.0"
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz",
+      "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "camel-case": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz",
+      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0",
+        "upper-case": "^1.1.1"
+      }
+    },
+    "camelcase": {
+      "version": "1.2.1",
+      "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz",
+      "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+      "dev": true
+    },
+    "camelcase-keys": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "requires": {
+        "camelcase": "^2.0.0",
+        "map-obj": "^1.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz",
+          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+        }
+      }
+    },
+    "caniuse-api": {
+      "version": "1.6.1",
+      "resolved": "http://registry.npm.taobao.org/caniuse-api/download/caniuse-api-1.6.1.tgz",
+      "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^1.3.6",
+        "caniuse-db": "^1.0.30000529",
+        "lodash.memoize": "^4.1.2",
+        "lodash.uniq": "^4.5.0"
+      },
+      "dependencies": {
+        "browserslist": {
+          "version": "1.7.7",
+          "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz",
+          "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+          "dev": true,
+          "requires": {
+            "caniuse-db": "^1.0.30000639",
+            "electron-to-chromium": "^1.2.7"
+          }
+        }
+      }
+    },
+    "caniuse-db": {
+      "version": "1.0.30000943",
+      "resolved": "http://registry.npm.taobao.org/caniuse-db/download/caniuse-db-1.0.30000943.tgz",
+      "integrity": "sha1-Y/QoB+spNN+mPXrliiE8gBe1X90=",
+      "dev": true
+    },
+    "caniuse-lite": {
+      "version": "1.0.30000943",
+      "resolved": "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000943.tgz",
+      "integrity": "sha1-ALJb1YCO3C7Rz7U1M6am/2ygFO4=",
+      "dev": true
+    },
+    "center-align": {
+      "version": "0.1.3",
+      "resolved": "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz",
+      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+      "dev": true,
+      "requires": {
+        "align-text": "^0.1.3",
+        "lazy-cache": "^1.0.3"
+      }
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz",
+      "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "check-types": {
+      "version": "7.4.0",
+      "resolved": "http://registry.npm.taobao.org/check-types/download/check-types-7.4.0.tgz",
+      "integrity": "sha1-A3jsG5YW7HH3dJMaPGUW+tjBUvQ=",
+      "dev": true
+    },
+    "chokidar": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-2.1.2.tgz",
+      "integrity": "sha1-nCPqQLAWOEOeBROGTTYq6sxa0Fg=",
+      "dev": true,
+      "requires": {
+        "anymatch": "^2.0.0",
+        "async-each": "^1.0.1",
+        "braces": "^2.3.2",
+        "fsevents": "^1.2.7",
+        "glob-parent": "^3.1.0",
+        "inherits": "^2.0.3",
+        "is-binary-path": "^1.0.0",
+        "is-glob": "^4.0.0",
+        "normalize-path": "^3.0.0",
+        "path-is-absolute": "^1.0.0",
+        "readdirp": "^2.2.1",
+        "upath": "^1.1.0"
+      }
+    },
+    "chownr": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/chownr/download/chownr-1.1.1.tgz",
+      "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=",
+      "dev": true
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz",
+      "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "clap": {
+      "version": "1.2.3",
+      "resolved": "http://registry.npm.taobao.org/clap/download/clap-1.2.3.tgz",
+      "integrity": "sha1-TzZ0WzIAhJJVf0ZBLWbVDLmbzlE=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
+      "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.1",
+      "resolved": "http://registry.npm.taobao.org/clean-css/download/clean-css-4.2.1.tgz",
+      "integrity": "sha1-LUEe92uFabbQyEBo2r6FsKpeXBc=",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      }
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-spinners": {
+      "version": "1.3.1",
+      "resolved": "http://registry.npm.taobao.org/cli-spinners/download/cli-spinners-1.3.1.tgz",
+      "integrity": "sha1-ACwZkJEtDVlYDJO9NsBW3pnkJZo=",
+      "dev": true
+    },
+    "cliui": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz",
+      "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+      "dev": true,
+      "requires": {
+        "center-align": "^0.1.1",
+        "right-align": "^0.1.1",
+        "wordwrap": "0.0.2"
+      }
+    },
+    "clone": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
+      "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+      "dev": true
+    },
+    "co": {
+      "version": "4.6.0",
+      "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz",
+      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+      "dev": true
+    },
+    "coa": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/coa/download/coa-1.0.4.tgz",
+      "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+      "dev": true,
+      "requires": {
+        "q": "^1.1.2"
+      }
+    },
+    "code-point-at": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
+      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color": {
+      "version": "0.11.4",
+      "resolved": "http://registry.npm.taobao.org/color/download/color-0.11.4.tgz",
+      "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.2",
+        "color-convert": "^1.3.0",
+        "color-string": "^0.3.0"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+      "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "color-string": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/color-string/download/color-string-0.3.0.tgz",
+      "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+      "dev": true,
+      "requires": {
+        "color-name": "^1.0.0"
+      }
+    },
+    "colormin": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/colormin/download/colormin-1.1.2.tgz",
+      "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+      "dev": true,
+      "requires": {
+        "color": "^0.11.0",
+        "css-color-names": "0.0.4",
+        "has": "^1.0.1"
+      }
+    },
+    "colors": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/colors/download/colors-1.1.2.tgz",
+      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+      "dev": true
+    },
+    "commander": {
+      "version": "2.17.1",
+      "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz",
+      "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.2.1",
+      "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.2.1.tgz",
+      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+    },
+    "compressible": {
+      "version": "2.0.16",
+      "resolved": "http://registry.npm.taobao.org/compressible/download/compressible-2.0.16.tgz",
+      "integrity": "sha1-pJv5hY84IbZM4b4Clq/HOARmp38=",
+      "requires": {
+        "mime-db": ">= 1.38.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "http://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz",
+      "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
+      "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "http://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w="
+    },
+    "console-browserify": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz",
+      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+      "dev": true,
+      "requires": {
+        "date-now": "^0.1.4"
+      }
+    },
+    "consolidate": {
+      "version": "0.14.5",
+      "resolved": "http://registry.npm.taobao.org/consolidate/download/consolidate-0.14.5.tgz",
+      "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.1.1"
+      }
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+      "dev": true
+    },
+    "content-disposition": {
+      "version": "0.5.2",
+      "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz",
+      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
+      "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
+    },
+    "convert-source-map": {
+      "version": "1.6.0",
+      "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz",
+      "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.3.1",
+      "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz",
+      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "http://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+    },
+    "copy-webpack-plugin": {
+      "version": "4.6.0",
+      "resolved": "http://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz",
+      "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.0",
+        "loader-utils": "^1.1.0",
+        "minimatch": "^3.0.4",
+        "p-limit": "^1.0.0",
+        "serialize-javascript": "^1.4.0"
+      }
+    },
+    "core-js": {
+      "version": "2.6.5",
+      "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz",
+      "integrity": "sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU="
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+    },
+    "cosmiconfig": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz",
+      "integrity": "sha1-dgORVJWAu9LfHlYrwXexPCkJctw=",
+      "dev": true,
+      "requires": {
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.9.0",
+        "parse-json": "^4.0.0",
+        "require-from-string": "^2.0.1"
+      },
+      "dependencies": {
+        "esprima": {
+          "version": "4.0.1",
+          "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
+          "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
+          "dev": true
+        },
+        "js-yaml": {
+          "version": "3.12.2",
+          "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.12.2.tgz",
+          "integrity": "sha1-7x0GfFqdnLZb1y8oW12BBcd/FPw=",
+          "dev": true,
+          "requires": {
+            "argparse": "^1.0.7",
+            "esprima": "^4.0.0"
+          }
+        }
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.3",
+      "resolved": "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
+      "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.0.0"
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz",
+      "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz",
+      "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cross-spawn": {
+      "version": "5.1.0",
+      "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
+      "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+      "dev": true,
+      "requires": {
+        "lru-cache": "^4.0.1",
+        "shebang-command": "^1.2.0",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=",
+      "dev": true,
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-color-names": {
+      "version": "0.0.4",
+      "resolved": "http://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
+      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+      "dev": true
+    },
+    "css-loader": {
+      "version": "0.28.11",
+      "resolved": "http://registry.npm.taobao.org/css-loader/download/css-loader-0.28.11.tgz",
+      "integrity": "sha1-w/mGSnAL4nEbtaJGKyOJsaOS2rc=",
+      "dev": true,
+      "requires": {
+        "babel-code-frame": "^6.26.0",
+        "css-selector-tokenizer": "^0.7.0",
+        "cssnano": "^3.10.0",
+        "icss-utils": "^2.1.0",
+        "loader-utils": "^1.0.2",
+        "lodash.camelcase": "^4.3.0",
+        "object-assign": "^4.1.1",
+        "postcss": "^5.0.6",
+        "postcss-modules-extract-imports": "^1.2.0",
+        "postcss-modules-local-by-default": "^1.2.0",
+        "postcss-modules-scope": "^1.1.0",
+        "postcss-modules-values": "^1.3.0",
+        "postcss-value-parser": "^3.3.0",
+        "source-list-map": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "css-select": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz",
+      "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+      "dev": true,
+      "requires": {
+        "boolbase": "~1.0.0",
+        "css-what": "2.1",
+        "domutils": "1.5.1",
+        "nth-check": "~1.0.1"
+      }
+    },
+    "css-selector-tokenizer": {
+      "version": "0.7.1",
+      "resolved": "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.1.tgz",
+      "integrity": "sha1-oXcnGovKUBkXL0+JH8bu2cv2jV0=",
+      "dev": true,
+      "requires": {
+        "cssesc": "^0.1.0",
+        "fastparse": "^1.1.1",
+        "regexpu-core": "^1.0.0"
+      },
+      "dependencies": {
+        "regexpu-core": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz",
+          "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+          "dev": true,
+          "requires": {
+            "regenerate": "^1.2.1",
+            "regjsgen": "^0.2.0",
+            "regjsparser": "^0.1.4"
+          }
+        }
+      }
+    },
+    "css-what": {
+      "version": "2.1.3",
+      "resolved": "http://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz",
+      "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=",
+      "dev": true
+    },
+    "cssesc": {
+      "version": "0.1.0",
+      "resolved": "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz",
+      "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+      "dev": true
+    },
+    "cssnano": {
+      "version": "3.10.0",
+      "resolved": "http://registry.npm.taobao.org/cssnano/download/cssnano-3.10.0.tgz",
+      "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+      "dev": true,
+      "requires": {
+        "autoprefixer": "^6.3.1",
+        "decamelize": "^1.1.2",
+        "defined": "^1.0.0",
+        "has": "^1.0.1",
+        "object-assign": "^4.0.1",
+        "postcss": "^5.0.14",
+        "postcss-calc": "^5.2.0",
+        "postcss-colormin": "^2.1.8",
+        "postcss-convert-values": "^2.3.4",
+        "postcss-discard-comments": "^2.0.4",
+        "postcss-discard-duplicates": "^2.0.1",
+        "postcss-discard-empty": "^2.0.1",
+        "postcss-discard-overridden": "^0.1.1",
+        "postcss-discard-unused": "^2.2.1",
+        "postcss-filter-plugins": "^2.0.0",
+        "postcss-merge-idents": "^2.1.5",
+        "postcss-merge-longhand": "^2.0.1",
+        "postcss-merge-rules": "^2.0.3",
+        "postcss-minify-font-values": "^1.0.2",
+        "postcss-minify-gradients": "^1.0.1",
+        "postcss-minify-params": "^1.0.4",
+        "postcss-minify-selectors": "^2.0.4",
+        "postcss-normalize-charset": "^1.1.0",
+        "postcss-normalize-url": "^3.0.7",
+        "postcss-ordered-values": "^2.1.0",
+        "postcss-reduce-idents": "^2.2.2",
+        "postcss-reduce-initial": "^1.0.0",
+        "postcss-reduce-transforms": "^1.0.3",
+        "postcss-svgo": "^2.1.1",
+        "postcss-unique-selectors": "^2.0.2",
+        "postcss-value-parser": "^3.2.3",
+        "postcss-zindex": "^2.0.1"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "autoprefixer": {
+          "version": "6.7.7",
+          "resolved": "http://registry.npm.taobao.org/autoprefixer/download/autoprefixer-6.7.7.tgz",
+          "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+          "dev": true,
+          "requires": {
+            "browserslist": "^1.7.6",
+            "caniuse-db": "^1.0.30000634",
+            "normalize-range": "^0.1.2",
+            "num2fraction": "^1.2.2",
+            "postcss": "^5.2.16",
+            "postcss-value-parser": "^3.2.3"
+          }
+        },
+        "browserslist": {
+          "version": "1.7.7",
+          "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz",
+          "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+          "dev": true,
+          "requires": {
+            "caniuse-db": "^1.0.30000639",
+            "electron-to-chromium": "^1.2.7"
+          }
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "csso": {
+      "version": "2.3.2",
+      "resolved": "http://registry.npm.taobao.org/csso/download/csso-2.3.2.tgz",
+      "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+      "dev": true,
+      "requires": {
+        "clap": "^1.0.9",
+        "source-map": "^0.5.3"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "cuint": {
+      "version": "0.2.2",
+      "resolved": "http://registry.npm.taobao.org/cuint/download/cuint-0.2.2.tgz",
+      "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=",
+      "dev": true
+    },
+    "currently-unhandled": {
+      "version": "0.4.1",
+      "resolved": "http://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "requires": {
+        "array-find-index": "^1.0.1"
+      }
+    },
+    "cyclist": {
+      "version": "0.2.2",
+      "resolved": "http://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz",
+      "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+      "dev": true
+    },
+    "d": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/d/download/d-1.0.0.tgz",
+      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+      "dev": true,
+      "requires": {
+        "es5-ext": "^0.10.9"
+      }
+    },
+    "date-now": {
+      "version": "0.1.4",
+      "resolved": "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz",
+      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
+      "dev": true
+    },
+    "de-indent": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
+      "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+      "dev": true
+    },
+    "debug": {
+      "version": "2.6.9",
+      "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz",
+      "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
+      "requires": {
+        "ms": "2.0.0"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+    },
+    "deep-equal": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz",
+      "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
+    },
+    "deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
+      "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
+      "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        },
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "defined": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz",
+      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+      "dev": true
+    },
+    "del": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz",
+      "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
+      "requires": {
+        "globby": "^6.1.0",
+        "is-path-cwd": "^1.0.0",
+        "is-path-in-cwd": "^1.0.0",
+        "p-map": "^1.1.1",
+        "pify": "^3.0.0",
+        "rimraf": "^2.2.8"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+            }
+          }
+        }
+      }
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+    },
+    "des.js": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz",
+      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+    },
+    "detect-indent": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz",
+      "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+      "dev": true,
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "detect-node": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz",
+      "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw="
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      }
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "http://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz",
+      "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
+    },
+    "dns-packet": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz",
+      "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=",
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "dom-converter": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz",
+      "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=",
+      "dev": true,
+      "requires": {
+        "utila": "~0.4"
+      }
+    },
+    "dom-serializer": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.1.tgz",
+      "integrity": "sha1-HsQFnihLq+027sKUHUqXChic58A=",
+      "dev": true,
+      "requires": {
+        "domelementtype": "^1.3.0",
+        "entities": "^1.1.1"
+      }
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz",
+      "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
+      "dev": true
+    },
+    "domelementtype": {
+      "version": "1.3.1",
+      "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz",
+      "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=",
+      "dev": true
+    },
+    "domhandler": {
+      "version": "2.4.2",
+      "resolved": "http://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz",
+      "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=",
+      "dev": true,
+      "requires": {
+        "domelementtype": "1"
+      }
+    },
+    "domutils": {
+      "version": "1.5.1",
+      "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz",
+      "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+      "dev": true,
+      "requires": {
+        "dom-serializer": "0",
+        "domelementtype": "1"
+      }
+    },
+    "duplexer": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz",
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+      "dev": true
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
+      "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+    },
+    "ejs": {
+      "version": "2.6.1",
+      "resolved": "http://registry.npm.taobao.org/ejs/download/ejs-2.6.1.tgz",
+      "integrity": "sha1-SY7A1JVlWrxvI81hho2SZGQHGqA=",
+      "dev": true
+    },
+    "electron-to-chromium": {
+      "version": "1.3.115",
+      "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.115.tgz",
+      "integrity": "sha1-/apWwZufc4bb8pq8HMYy/1Ro/zs=",
+      "dev": true
+    },
+    "element-ui": {
+      "version": "2.12.0",
+      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.12.0.tgz",
+      "integrity": "sha512-DapyT0PW4i/1ETPHk8K8Qbe8B6hj10+dXsRTrOTFryV9wAs6e9mCxbV65awokyR2/v/KuIHJmqX+mH3wUa4rOQ==",
+      "requires": {
+        "async-validator": "~1.8.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.0",
+        "deepmerge": "^1.2.0",
+        "normalize-wheel": "^1.0.1",
+        "resize-observer-polyfill": "^1.5.0",
+        "throttle-debounce": "^1.0.1"
+      }
+    },
+    "elliptic": {
+      "version": "6.4.1",
+      "resolved": "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.1.tgz",
+      "integrity": "sha1-wtC3d2kRuGcixjLDwGxg8vgZk5o=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.4.0",
+        "brorand": "^1.0.1",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.0"
+      }
+    },
+    "emojis-list": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
+      "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+      "dev": true
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+    },
+    "end-of-stream": {
+      "version": "1.4.1",
+      "resolved": "http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz",
+      "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=",
+      "dev": true,
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "3.4.1",
+      "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-3.4.1.tgz",
+      "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.4.0",
+        "object-assign": "^4.0.1",
+        "tapable": "^0.2.7"
+      }
+    },
+    "entities": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz",
+      "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.7",
+      "resolved": "http://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
+      "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=",
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
+      "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "error-stack-parser": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.2.tgz",
+      "integrity": "sha1-Sujbqiv5CotFBwe5FJ3KvKE1Ug0=",
+      "dev": true,
+      "requires": {
+        "stackframe": "^1.0.4"
+      }
+    },
+    "es-abstract": {
+      "version": "1.13.0",
+      "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz",
+      "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=",
+      "requires": {
+        "es-to-primitive": "^1.2.0",
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3",
+        "is-callable": "^1.1.4",
+        "is-regex": "^1.0.4",
+        "object-keys": "^1.0.12"
+      }
+    },
+    "es-to-primitive": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz",
+      "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=",
+      "requires": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      }
+    },
+    "es5-ext": {
+      "version": "0.10.49",
+      "resolved": "http://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.49.tgz",
+      "integrity": "sha1-BZojnehiyUSU/sKPgVDJdwKMbF4=",
+      "dev": true,
+      "requires": {
+        "es6-iterator": "~2.0.3",
+        "es6-symbol": "~3.1.1",
+        "next-tick": "^1.0.0"
+      }
+    },
+    "es6-iterator": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz",
+      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "^0.10.35",
+        "es6-symbol": "^3.1.1"
+      }
+    },
+    "es6-map": {
+      "version": "0.1.5",
+      "resolved": "http://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz",
+      "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "~0.10.14",
+        "es6-iterator": "~2.0.1",
+        "es6-set": "~0.1.5",
+        "es6-symbol": "~3.1.1",
+        "event-emitter": "~0.3.5"
+      }
+    },
+    "es6-set": {
+      "version": "0.1.5",
+      "resolved": "http://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz",
+      "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "~0.10.14",
+        "es6-iterator": "~2.0.1",
+        "es6-symbol": "3.1.1",
+        "event-emitter": "~0.3.5"
+      }
+    },
+    "es6-symbol": {
+      "version": "3.1.1",
+      "resolved": "http://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz",
+      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "~0.10.14"
+      }
+    },
+    "es6-weak-map": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/es6-weak-map/download/es6-weak-map-2.0.2.tgz",
+      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "^0.10.14",
+        "es6-iterator": "^2.0.1",
+        "es6-symbol": "^3.1.1"
+      }
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "escope": {
+      "version": "3.6.0",
+      "resolved": "http://registry.npm.taobao.org/escope/download/escope-3.6.0.tgz",
+      "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+      "dev": true,
+      "requires": {
+        "es6-map": "^0.1.3",
+        "es6-weak-map": "^2.0.1",
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      }
+    },
+    "esprima": {
+      "version": "2.7.3",
+      "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-2.7.3.tgz",
+      "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+      "dev": true
+    },
+    "esrecurse": {
+      "version": "4.2.1",
+      "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz",
+      "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=",
+      "dev": true,
+      "requires": {
+        "estraverse": "^4.1.0"
+      }
+    },
+    "estraverse": {
+      "version": "4.2.0",
+      "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz",
+      "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+      "dev": true
+    },
+    "esutils": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz",
+      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+      "dev": true
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+    },
+    "event-emitter": {
+      "version": "0.3.5",
+      "resolved": "http://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz",
+      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+      "dev": true,
+      "requires": {
+        "d": "1",
+        "es5-ext": "~0.10.14"
+      }
+    },
+    "eventemitter3": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.0.tgz",
+      "integrity": "sha1-CQtNbNvWRe0Qv3UNS1QHlC17oWM="
+    },
+    "events": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/events/download/events-3.0.0.tgz",
+      "integrity": "sha1-mgoN+vYok9krh1uPJpjKQRSXPog=",
+      "dev": true
+    },
+    "eventsource": {
+      "version": "0.1.6",
+      "resolved": "http://registry.npm.taobao.org/eventsource/download/eventsource-0.1.6.tgz",
+      "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
+      "requires": {
+        "original": ">=0.0.5"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=",
+      "dev": true,
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "0.7.0",
+      "resolved": "http://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz",
+      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^5.0.1",
+        "get-stream": "^3.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "expand-range": {
+      "version": "1.8.2",
+      "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz",
+      "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+      "requires": {
+        "fill-range": "^2.1.0"
+      },
+      "dependencies": {
+        "fill-range": {
+          "version": "2.2.4",
+          "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz",
+          "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=",
+          "requires": {
+            "is-number": "^2.1.0",
+            "isobject": "^2.0.0",
+            "randomatic": "^3.0.0",
+            "repeat-element": "^1.1.2",
+            "repeat-string": "^1.5.2"
+          }
+        },
+        "is-number": {
+          "version": "2.1.0",
+          "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz",
+          "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+          "requires": {
+            "kind-of": "^3.0.2"
+          }
+        },
+        "isobject": {
+          "version": "2.1.0",
+          "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+          "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+          "requires": {
+            "isarray": "1.0.0"
+          }
+        }
+      }
+    },
+    "express": {
+      "version": "4.16.4",
+      "resolved": "http://registry.npm.taobao.org/express/download/express-4.16.4.tgz",
+      "integrity": "sha1-/d72GSYQniTFFeqX/S8b2/Yt8S4=",
+      "requires": {
+        "accepts": "~1.3.5",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.18.3",
+        "content-disposition": "0.5.2",
+        "content-type": "~1.0.4",
+        "cookie": "0.3.1",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "1.1.1",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.4",
+        "qs": "6.5.2",
+        "range-parser": "~1.2.0",
+        "safe-buffer": "5.1.2",
+        "send": "0.16.2",
+        "serve-static": "1.13.2",
+        "setprototypeof": "1.1.0",
+        "statuses": "~1.4.0",
+        "type-is": "~1.6.16",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      }
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz",
+      "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        },
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "extract-text-webpack-plugin": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/extract-text-webpack-plugin/download/extract-text-webpack-plugin-3.0.2.tgz",
+      "integrity": "sha1-XwQ+qgL5dQqSWLeMCm4NwUCPsvc=",
+      "dev": true,
+      "requires": {
+        "async": "^2.4.1",
+        "loader-utils": "^1.1.0",
+        "schema-utils": "^0.3.0",
+        "webpack-sources": "^1.0.1"
+      }
+    },
+    "fast-deep-equal": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz",
+      "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+      "dev": true
+    },
+    "fast-json-stable-stringify": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz",
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+      "dev": true
+    },
+    "fastparse": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz",
+      "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.10.0",
+      "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz",
+      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "file-loader": {
+      "version": "1.1.11",
+      "resolved": "http://registry.npm.taobao.org/file-loader/download/file-loader-1.1.11.tgz",
+      "integrity": "sha1-b+iGRJsPKpNuQ8q6rAzb+zaVBvg=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "schema-utils": "^0.4.5"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.0",
+          "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz",
+          "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.4.1",
+          "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+          "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz",
+          "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "filename-regex": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz",
+      "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
+    },
+    "filesize": {
+      "version": "3.6.1",
+      "resolved": "http://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz",
+      "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=",
+      "dev": true
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.1.tgz",
+      "integrity": "sha1-7r9O2EAHnIP0JJA4ydcDAIMBsQU=",
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.2",
+        "statuses": "~1.4.0",
+        "unpipe": "~1.0.0"
+      }
+    },
+    "find-cache-dir": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz",
+      "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^1.0.0",
+        "pkg-dir": "^2.0.0"
+      }
+    },
+    "find-up": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz",
+      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+      "dev": true,
+      "requires": {
+        "locate-path": "^2.0.0"
+      }
+    },
+    "flatten": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/flatten/download/flatten-1.0.2.tgz",
+      "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+      "dev": true
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.7.0",
+      "resolved": "http://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.7.0.tgz",
+      "integrity": "sha1-SJ68GY3A5/ZBZ70jsDxMGbV4THY=",
+      "requires": {
+        "debug": "^3.2.6"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+          "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz",
+          "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo="
+        }
+      }
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+    },
+    "for-own": {
+      "version": "0.1.5",
+      "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz",
+      "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+      "requires": {
+        "for-in": "^1.0.1"
+      }
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+    },
+    "friendly-errors-webpack-plugin": {
+      "version": "1.7.0",
+      "resolved": "http://registry.npm.taobao.org/friendly-errors-webpack-plugin/download/friendly-errors-webpack-plugin-1.7.0.tgz",
+      "integrity": "sha1-78hsu4FiJFZYYaG+ep2E0Kr+oTY=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "error-stack-parser": "^2.0.0",
+        "string-width": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "http://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+    },
+    "fsevents": {
+      "version": "1.2.7",
+      "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.7.tgz",
+      "integrity": "sha1-SFG2ZKN4PlIAOzxm6w7uEHSTOqQ=",
+      "optional": true,
+      "requires": {
+        "nan": "^2.9.2",
+        "node-pre-gyp": "^0.10.0"
+      },
+      "dependencies": {
+        "abbrev": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "ansi-regex": {
+          "version": "2.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "aproba": {
+          "version": "1.2.0",
+          "bundled": true,
+          "optional": true
+        },
+        "are-we-there-yet": {
+          "version": "1.1.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "delegates": "^1.0.0",
+            "readable-stream": "^2.0.6"
+          }
+        },
+        "balanced-match": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "balanced-match": "^1.0.0",
+            "concat-map": "0.0.1"
+          }
+        },
+        "chownr": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "code-point-at": {
+          "version": "1.1.0",
+          "bundled": true,
+          "optional": true
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": true,
+          "optional": true
+        },
+        "core-util-is": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "debug": {
+          "version": "2.6.9",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "deep-extend": {
+          "version": "0.6.0",
+          "bundled": true,
+          "optional": true
+        },
+        "delegates": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "detect-libc": {
+          "version": "1.0.3",
+          "bundled": true,
+          "optional": true
+        },
+        "fs-minipass": {
+          "version": "1.2.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "fs.realpath": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "gauge": {
+          "version": "2.7.4",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "aproba": "^1.0.3",
+            "console-control-strings": "^1.0.0",
+            "has-unicode": "^2.0.0",
+            "object-assign": "^4.1.0",
+            "signal-exit": "^3.0.0",
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wide-align": "^1.1.0"
+          }
+        },
+        "glob": {
+          "version": "7.1.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "has-unicode": {
+          "version": "2.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "iconv-lite": {
+          "version": "0.4.24",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safer-buffer": ">= 2.1.2 < 3"
+          }
+        },
+        "ignore-walk": {
+          "version": "3.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minimatch": "^3.0.4"
+          }
+        },
+        "inflight": {
+          "version": "1.0.6",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "once": "^1.3.0",
+            "wrappy": "1"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "bundled": true,
+          "optional": true
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true,
+          "optional": true
+        },
+        "minipass": {
+          "version": "2.3.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          }
+        },
+        "minizlib": {
+          "version": "1.2.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minipass": "^2.2.1"
+          }
+        },
+        "mkdirp": {
+          "version": "0.5.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "minimist": "0.0.8"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "needle": {
+          "version": "2.2.4",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "debug": "^2.1.2",
+            "iconv-lite": "^0.4.4",
+            "sax": "^1.2.4"
+          }
+        },
+        "node-pre-gyp": {
+          "version": "0.10.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "detect-libc": "^1.0.2",
+            "mkdirp": "^0.5.1",
+            "needle": "^2.2.1",
+            "nopt": "^4.0.1",
+            "npm-packlist": "^1.1.6",
+            "npmlog": "^4.0.2",
+            "rc": "^1.2.7",
+            "rimraf": "^2.6.1",
+            "semver": "^5.3.0",
+            "tar": "^4"
+          }
+        },
+        "nopt": {
+          "version": "4.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "npm-bundled": {
+          "version": "1.0.5",
+          "bundled": true,
+          "optional": true
+        },
+        "npm-packlist": {
+          "version": "1.2.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ignore-walk": "^3.0.1",
+            "npm-bundled": "^1.0.1"
+          }
+        },
+        "npmlog": {
+          "version": "4.1.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "are-we-there-yet": "~1.1.2",
+            "console-control-strings": "~1.1.0",
+            "gauge": "~2.7.3",
+            "set-blocking": "~2.0.0"
+          }
+        },
+        "number-is-nan": {
+          "version": "1.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "wrappy": "1"
+          }
+        },
+        "os-homedir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "os-tmpdir": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "osenv": {
+          "version": "0.1.5",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "os-homedir": "^1.0.0",
+            "os-tmpdir": "^1.0.0"
+          }
+        },
+        "path-is-absolute": {
+          "version": "1.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "process-nextick-args": {
+          "version": "2.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "rc": {
+          "version": "1.2.8",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "deep-extend": "^0.6.0",
+            "ini": "~1.3.0",
+            "minimist": "^1.2.0",
+            "strip-json-comments": "~2.0.1"
+          },
+          "dependencies": {
+            "minimist": {
+              "version": "1.2.0",
+              "bundled": true,
+              "optional": true
+            }
+          }
+        },
+        "readable-stream": {
+          "version": "2.3.6",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "core-util-is": "~1.0.0",
+            "inherits": "~2.0.3",
+            "isarray": "~1.0.0",
+            "process-nextick-args": "~2.0.0",
+            "safe-buffer": "~5.1.1",
+            "string_decoder": "~1.1.1",
+            "util-deprecate": "~1.0.1"
+          }
+        },
+        "rimraf": {
+          "version": "2.6.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.1.2",
+          "bundled": true,
+          "optional": true
+        },
+        "safer-buffer": {
+          "version": "2.1.2",
+          "bundled": true,
+          "optional": true
+        },
+        "sax": {
+          "version": "1.2.4",
+          "bundled": true,
+          "optional": true
+        },
+        "semver": {
+          "version": "5.6.0",
+          "bundled": true,
+          "optional": true
+        },
+        "set-blocking": {
+          "version": "2.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "signal-exit": {
+          "version": "3.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "string_decoder": {
+          "version": "1.1.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "safe-buffer": "~5.1.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "strip-json-comments": {
+          "version": "2.0.1",
+          "bundled": true,
+          "optional": true
+        },
+        "tar": {
+          "version": "4.4.8",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "chownr": "^1.1.1",
+            "fs-minipass": "^1.2.5",
+            "minipass": "^2.3.4",
+            "minizlib": "^1.1.1",
+            "mkdirp": "^0.5.0",
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.2"
+          }
+        },
+        "util-deprecate": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "wide-align": {
+          "version": "1.1.3",
+          "bundled": true,
+          "optional": true,
+          "requires": {
+            "string-width": "^1.0.2 || 2"
+          }
+        },
+        "wrappy": {
+          "version": "1.0.2",
+          "bundled": true,
+          "optional": true
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "bundled": true,
+          "optional": true
+        }
+      }
+    },
+    "function-bind": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
+      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
+    },
+    "get-caller-file": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz",
+      "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o="
+    },
+    "get-stdin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz",
+      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+    },
+    "get-stream": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz",
+      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+      "dev": true
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+    },
+    "glob": {
+      "version": "7.1.3",
+      "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz",
+      "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=",
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-base": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz",
+      "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+      "requires": {
+        "glob-parent": "^2.0.0",
+        "is-glob": "^2.0.0"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz",
+          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+          "requires": {
+            "is-glob": "^2.0.0"
+          }
+        },
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        }
+      }
+    },
+    "glob-parent": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz",
+      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+      "dev": true,
+      "requires": {
+        "is-glob": "^3.1.0",
+        "path-dirname": "^1.0.0"
+      },
+      "dependencies": {
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        }
+      }
+    },
+    "globals": {
+      "version": "9.18.0",
+      "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz",
+      "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",
+      "dev": true
+    },
+    "globby": {
+      "version": "7.1.1",
+      "resolved": "http://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz",
+      "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+      "dev": true,
+      "requires": {
+        "array-union": "^1.0.1",
+        "dir-glob": "^2.0.0",
+        "glob": "^7.1.2",
+        "ignore": "^3.3.5",
+        "pify": "^3.0.0",
+        "slash": "^1.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.1.15",
+      "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz",
+      "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA="
+    },
+    "growly": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz",
+      "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
+      "dev": true
+    },
+    "gzip-size": {
+      "version": "4.1.0",
+      "resolved": "http://registry.npm.taobao.org/gzip-size/download/gzip-size-4.1.0.tgz",
+      "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=",
+      "dev": true,
+      "requires": {
+        "duplexer": "^0.1.1",
+        "pify": "^3.0.0"
+      }
+    },
+    "handle-thing": {
+      "version": "1.2.5",
+      "resolved": "http://registry.npm.taobao.org/handle-thing/download/handle-thing-1.2.5.tgz",
+      "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ="
+    },
+    "has": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
+      "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
+      "requires": {
+        "function-bind": "^1.1.1"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
+    "has-symbols": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz",
+      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.0.4",
+      "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz",
+      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "hash-sum": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
+      "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+      "dev": true
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz",
+      "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "he": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
+      "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
+      "dev": true
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "home-or-tmp": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz",
+      "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+      "dev": true,
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.1"
+      }
+    },
+    "hosted-git-info": {
+      "version": "2.7.1",
+      "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz",
+      "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc="
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "http://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "html-comment-regex": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz",
+      "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=",
+      "dev": true
+    },
+    "html-entities": {
+      "version": "1.2.1",
+      "resolved": "http://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz",
+      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
+    },
+    "html-minifier": {
+      "version": "3.5.21",
+      "resolved": "http://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz",
+      "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=",
+      "dev": true,
+      "requires": {
+        "camel-case": "3.0.x",
+        "clean-css": "4.2.x",
+        "commander": "2.17.x",
+        "he": "1.2.x",
+        "param-case": "2.1.x",
+        "relateurl": "0.2.x",
+        "uglify-js": "3.4.x"
+      }
+    },
+    "html-webpack-plugin": {
+      "version": "2.30.1",
+      "resolved": "http://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-2.30.1.tgz",
+      "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.4.7",
+        "html-minifier": "^3.2.3",
+        "loader-utils": "^0.2.16",
+        "lodash": "^4.17.3",
+        "pretty-error": "^2.0.2",
+        "toposort": "^1.0.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz",
+          "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "0.2.17",
+          "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz",
+          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0",
+            "object-assign": "^4.0.1"
+          }
+        }
+      }
+    },
+    "htmlparser2": {
+      "version": "3.10.1",
+      "resolved": "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz",
+      "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=",
+      "dev": true,
+      "requires": {
+        "domelementtype": "^1.3.1",
+        "domhandler": "^2.3.0",
+        "domutils": "^1.5.1",
+        "entities": "^1.1.1",
+        "inherits": "^2.0.1",
+        "readable-stream": "^3.1.1"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.2.0",
+          "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-3.2.0.tgz",
+          "integrity": "sha1-3hfyKYZMEgqfVpRXVuTzLEBFJF0=",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "http://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
+    },
+    "http-errors": {
+      "version": "1.6.3",
+      "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz",
+      "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.0",
+        "statuses": ">= 1.4.0 < 2"
+      }
+    },
+    "http-parser-js": {
+      "version": "0.5.0",
+      "resolved": "http://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.0.tgz",
+      "integrity": "sha1-1l7b7ehDSdDcMDIIFaFdOcw8u9g="
+    },
+    "http-proxy": {
+      "version": "1.17.0",
+      "resolved": "http://registry.npm.taobao.org/http-proxy/download/http-proxy-1.17.0.tgz",
+      "integrity": "sha1-etOElGWPhGBeL220Q230EPTlvpo=",
+      "requires": {
+        "eventemitter3": "^3.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.17.4",
+      "resolved": "http://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.17.4.tgz",
+      "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+      "requires": {
+        "http-proxy": "^1.16.2",
+        "is-glob": "^3.1.0",
+        "lodash": "^4.17.2",
+        "micromatch": "^2.3.11"
+      },
+      "dependencies": {
+        "arr-diff": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
+          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+          "requires": {
+            "arr-flatten": "^1.0.1"
+          }
+        },
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+        },
+        "braces": {
+          "version": "1.8.5",
+          "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
+          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+          "requires": {
+            "expand-range": "^1.8.1",
+            "preserve": "^0.2.0",
+            "repeat-element": "^1.1.2"
+          }
+        },
+        "expand-brackets": {
+          "version": "0.1.5",
+          "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
+          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+          "requires": {
+            "is-posix-bracket": "^0.1.0"
+          }
+        },
+        "extglob": {
+          "version": "0.3.2",
+          "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
+          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          },
+          "dependencies": {
+            "is-extglob": {
+              "version": "1.0.0",
+              "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+              "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+            }
+          }
+        },
+        "is-glob": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
+          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+          "requires": {
+            "is-extglob": "^2.1.0"
+          }
+        },
+        "micromatch": {
+          "version": "2.3.11",
+          "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz",
+          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+          "requires": {
+            "arr-diff": "^2.0.0",
+            "array-unique": "^0.2.1",
+            "braces": "^1.8.2",
+            "expand-brackets": "^0.1.4",
+            "extglob": "^0.3.1",
+            "filename-regex": "^2.0.0",
+            "is-extglob": "^1.0.0",
+            "is-glob": "^2.0.1",
+            "kind-of": "^3.0.2",
+            "normalize-path": "^2.0.1",
+            "object.omit": "^2.0.0",
+            "parse-glob": "^3.0.4",
+            "regex-cache": "^0.4.2"
+          },
+          "dependencies": {
+            "is-extglob": {
+              "version": "1.0.0",
+              "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+              "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+            },
+            "is-glob": {
+              "version": "2.0.1",
+              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+              "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+              "requires": {
+                "is-extglob": "^1.0.0"
+              }
+            }
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        }
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+      "dev": true
+    },
+    "iconv-lite": {
+      "version": "0.4.23",
+      "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.23.tgz",
+      "integrity": "sha1-KXhx9jvlB63Pv8pxXQzQ7thOmmM=",
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "icss-replace-symbols": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz",
+      "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+      "dev": true
+    },
+    "icss-utils": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz",
+      "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^6.0.1"
+      }
+    },
+    "ieee754": {
+      "version": "1.1.12",
+      "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.12.tgz",
+      "integrity": "sha1-UL8k5bnIu5ivSWTJQc2wkY2ntgs=",
+      "dev": true
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "3.3.10",
+      "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz",
+      "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
+      "dev": true
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
+    "indent-string": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz",
+      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "requires": {
+        "repeating": "^2.0.0"
+      }
+    },
+    "indexes-of": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
+      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+      "dev": true
+    },
+    "indexof": {
+      "version": "0.0.1",
+      "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz",
+      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+    },
+    "internal-ip": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-1.2.0.tgz",
+      "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
+      "requires": {
+        "meow": "^3.3.0"
+      }
+    },
+    "interpret": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz",
+      "integrity": "sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY=",
+      "dev": true
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz",
+      "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "invert-kv": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz",
+      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "http://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+    },
+    "ipaddr.js": {
+      "version": "1.8.0",
+      "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.8.0.tgz",
+      "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
+    },
+    "is-absolute-url": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz",
+      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      }
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+    },
+    "is-binary-path": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
+      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+      "requires": {
+        "binary-extensions": "^1.0.0"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz",
+      "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
+    },
+    "is-callable": {
+      "version": "1.1.4",
+      "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz",
+      "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU="
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      }
+    },
+    "is-date-object": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz",
+      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
+      "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
+          "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0="
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "http://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-dotfile": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz",
+      "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+    },
+    "is-equal-shallow": {
+      "version": "0.1.3",
+      "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz",
+      "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+      "requires": {
+        "is-primitive": "^2.0.0"
+      }
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+    },
+    "is-finite": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz",
+      "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+      "requires": {
+        "number-is-nan": "^1.0.0"
+      }
+    },
+    "is-fullwidth-code-point": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
+      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+      "dev": true
+    },
+    "is-glob": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.0.tgz",
+      "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      }
+    },
+    "is-path-cwd": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz",
+      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
+    },
+    "is-path-in-cwd": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz",
+      "integrity": "sha1-WsSLNF72dTOb1sekipEhELJBz1I=",
+      "requires": {
+        "is-path-inside": "^1.0.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz",
+      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+      "requires": {
+        "path-is-inside": "^1.0.1"
+      }
+    },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+      "dev": true
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
+      "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-posix-bracket": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz",
+      "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+    },
+    "is-primitive": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz",
+      "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+    },
+    "is-regex": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz",
+      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+      "requires": {
+        "has": "^1.0.1"
+      }
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-svg": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/is-svg/download/is-svg-2.1.0.tgz",
+      "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+      "dev": true,
+      "requires": {
+        "html-comment-regex": "^1.1.0"
+      }
+    },
+    "is-symbol": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz",
+      "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=",
+      "requires": {
+        "has-symbols": "^1.0.0"
+      }
+    },
+    "is-utf8": {
+      "version": "0.2.1",
+      "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
+      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
+      "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0="
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+    },
+    "js-base64": {
+      "version": "2.5.1",
+      "resolved": "http://registry.npm.taobao.org/js-base64/download/js-base64-2.5.1.tgz",
+      "integrity": "sha1-Hvo57yxfeYC7F4St5KivLeMpESE=",
+      "dev": true
+    },
+    "js-tokens": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz",
+      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "3.7.0",
+      "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.7.0.tgz",
+      "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^2.6.0"
+      }
+    },
+    "jsesc": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz",
+      "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+      "dev": true
+    },
+    "json-loader": {
+      "version": "0.5.7",
+      "resolved": "http://registry.npm.taobao.org/json-loader/download/json-loader-0.5.7.tgz",
+      "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
+      "dev": true
+    },
+    "json-schema-traverse": {
+      "version": "0.3.1",
+      "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz",
+      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+      "dev": true
+    },
+    "json3": {
+      "version": "3.3.2",
+      "resolved": "http://registry.npm.taobao.org/json3/download/json3-3.3.2.tgz",
+      "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE="
+    },
+    "json5": {
+      "version": "0.5.1",
+      "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
+      "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "3.2.2",
+      "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
+      "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+      "requires": {
+        "is-buffer": "^1.1.5"
+      }
+    },
+    "last-call-webpack-plugin": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-2.1.2.tgz",
+      "integrity": "sha1-rYDG4xCZgpTS7SGApo6VieR2jEQ=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.4",
+        "webpack-sources": "^1.0.1"
+      }
+    },
+    "lazy-cache": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz",
+      "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+      "dev": true
+    },
+    "lcid": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz",
+      "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+      "requires": {
+        "invert-kv": "^1.0.0"
+      }
+    },
+    "load-json-file": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz",
+      "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "parse-json": "^2.2.0",
+        "pify": "^2.0.0",
+        "strip-bom": "^3.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz",
+      "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=",
+      "dev": true
+    },
+    "loader-utils": {
+      "version": "1.2.3",
+      "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz",
+      "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=",
+      "dev": true,
+      "requires": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^2.0.0",
+        "json5": "^1.0.1"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "http://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
+          "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        }
+      }
+    },
+    "locate-path": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
+      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+      "dev": true,
+      "requires": {
+        "p-locate": "^2.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.11",
+      "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz",
+      "integrity": "sha1-s56mIp72B+zYniyN8SU2iRysm40="
+    },
+    "lodash.camelcase": {
+      "version": "4.3.0",
+      "resolved": "http://registry.npm.taobao.org/lodash.camelcase/download/lodash.camelcase-4.3.0.tgz",
+      "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+      "dev": true
+    },
+    "lodash.memoize": {
+      "version": "4.1.2",
+      "resolved": "http://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
+      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+      "dev": true
+    },
+    "lodash.uniq": {
+      "version": "4.5.0",
+      "resolved": "http://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
+      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+      "dev": true
+    },
+    "log-symbols": {
+      "version": "2.2.0",
+      "resolved": "http://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz",
+      "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "loglevel": {
+      "version": "1.6.1",
+      "resolved": "http://registry.npm.taobao.org/loglevel/download/loglevel-1.6.1.tgz",
+      "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po="
+    },
+    "longest": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz",
+      "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz",
+      "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "loud-rejection": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz",
+      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "requires": {
+        "currently-unhandled": "^0.4.1",
+        "signal-exit": "^3.0.0"
+      }
+    },
+    "lower-case": {
+      "version": "1.1.4",
+      "resolved": "http://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz",
+      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "4.1.5",
+      "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
+      "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
+      "dev": true,
+      "requires": {
+        "pseudomap": "^1.0.2",
+        "yallist": "^2.1.2"
+      }
+    },
+    "make-dir": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz",
+      "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+    },
+    "map-obj": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz",
+      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "math-expression-evaluator": {
+      "version": "1.2.17",
+      "resolved": "http://registry.npm.taobao.org/math-expression-evaluator/download/math-expression-evaluator-1.2.17.tgz",
+      "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+      "dev": true
+    },
+    "math-random": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz",
+      "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw="
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz",
+      "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+    },
+    "mem": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz",
+      "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      }
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "meow": {
+      "version": "3.7.0",
+      "resolved": "http://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz",
+      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "requires": {
+        "camelcase-keys": "^2.0.0",
+        "decamelize": "^1.1.2",
+        "loud-rejection": "^1.0.0",
+        "map-obj": "^1.0.1",
+        "minimist": "^1.1.3",
+        "normalize-package-data": "^2.3.4",
+        "object-assign": "^4.0.1",
+        "read-pkg-up": "^1.0.1",
+        "redent": "^1.0.0",
+        "trim-newlines": "^1.0.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "load-json-file": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
+          "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0",
+            "strip-bom": "^2.0.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+        },
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+        },
+        "read-pkg": {
+          "version": "1.1.0",
+          "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
+          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+          "requires": {
+            "load-json-file": "^1.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^1.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "1.0.1",
+          "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
+          "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+          "requires": {
+            "find-up": "^1.0.0",
+            "read-pkg": "^1.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
+          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        }
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz",
+      "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "http://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz",
+      "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      }
+    },
+    "mime": {
+      "version": "1.6.0",
+      "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz",
+      "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE="
+    },
+    "mime-db": {
+      "version": "1.38.0",
+      "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.38.0.tgz",
+      "integrity": "sha1-GiqrFtqesWe0nG5N8tnGjWPY4q0="
+    },
+    "mime-types": {
+      "version": "2.1.22",
+      "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.22.tgz",
+      "integrity": "sha1-/ms1WhkJJqt2mMmgVWoRGZshmb0=",
+      "requires": {
+        "mime-db": "~1.38.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz",
+      "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=",
+      "dev": true
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc="
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
+      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "0.0.8",
+      "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz",
+      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+    },
+    "mississippi": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz",
+      "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^2.0.1",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.1",
+      "resolved": "http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz",
+      "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=",
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
+          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.1",
+      "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz",
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+      "requires": {
+        "minimist": "0.0.8"
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "http://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz",
+      "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=",
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
+    },
+    "nan": {
+      "version": "2.12.1",
+      "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.12.1.tgz",
+      "integrity": "sha1-exqhk+mqhgV+PHu9CsRI53CSVVI=",
+      "optional": true
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz",
+      "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "negotiator": {
+      "version": "0.6.1",
+      "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz",
+      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
+    },
+    "neo-async": {
+      "version": "2.6.0",
+      "resolved": "http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz",
+      "integrity": "sha1-udFeTXHGdikIZUtRg+04t1M0CDU=",
+      "dev": true
+    },
+    "next-tick": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz",
+      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+      "dev": true
+    },
+    "no-case": {
+      "version": "2.3.2",
+      "resolved": "http://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz",
+      "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
+      "dev": true,
+      "requires": {
+        "lower-case": "^1.1.1"
+      }
+    },
+    "node-forge": {
+      "version": "0.7.5",
+      "resolved": "http://registry.npm.taobao.org/node-forge/download/node-forge-0.7.5.tgz",
+      "integrity": "sha1-bBUsNFzhHFL0ZcKr2VfoY5zWdN8="
+    },
+    "node-libs-browser": {
+      "version": "2.2.0",
+      "resolved": "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.0.tgz",
+      "integrity": "sha1-xy9g2dRt4IqUDe27JfP/ovm7qnc=",
+      "dev": true,
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.0",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "0.0.4"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "node-notifier": {
+      "version": "5.4.0",
+      "resolved": "http://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.0.tgz",
+      "integrity": "sha1-e0Vf3On33gxjU4KXNU89tGhCbmo=",
+      "dev": true,
+      "requires": {
+        "growly": "^1.3.0",
+        "is-wsl": "^1.1.0",
+        "semver": "^5.5.0",
+        "shellwords": "^0.1.1",
+        "which": "^1.3.0"
+      }
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "normalize-path": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
+      "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
+      "dev": true
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "http://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "normalize-url": {
+      "version": "1.9.1",
+      "resolved": "http://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz",
+      "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.0.1",
+        "prepend-http": "^1.0.0",
+        "query-string": "^4.1.0",
+        "sort-keys": "^1.0.0"
+      }
+    },
+    "normalize-wheel": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "nth-check": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz",
+      "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=",
+      "dev": true,
+      "requires": {
+        "boolbase": "~1.0.0"
+      }
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "http://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "number-is-nan": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
+      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
+      "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4="
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.omit": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz",
+      "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+      "requires": {
+        "for-own": "^0.1.4",
+        "is-extendable": "^0.1.1"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz",
+      "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4="
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "on-headers": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
+      "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8="
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      }
+    },
+    "opener": {
+      "version": "1.5.1",
+      "resolved": "http://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz",
+      "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=",
+      "dev": true
+    },
+    "opn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz",
+      "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=",
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "optimize-css-assets-webpack-plugin": {
+      "version": "3.2.0",
+      "resolved": "http://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-3.2.0.tgz",
+      "integrity": "sha1-CaQMTO/eHdAUJESoc8Vqop6xjm8=",
+      "dev": true,
+      "requires": {
+        "cssnano": "^3.4.0",
+        "last-call-webpack-plugin": "^2.1.2"
+      }
+    },
+    "ora": {
+      "version": "1.4.0",
+      "resolved": "http://registry.npm.taobao.org/ora/download/ora-1.4.0.tgz",
+      "integrity": "sha1-iERYIVs6XUCXWSKF+TMhu3p54uU=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.1.0",
+        "cli-cursor": "^2.1.0",
+        "cli-spinners": "^1.0.1",
+        "log-symbols": "^2.1.0"
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/original/download/original-1.0.2.tgz",
+      "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=",
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+      "dev": true
+    },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
+      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+      "dev": true
+    },
+    "os-locale": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz",
+      "integrity": "sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I=",
+      "dev": true,
+      "requires": {
+        "execa": "^0.7.0",
+        "lcid": "^1.0.0",
+        "mem": "^1.1.0"
+      }
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz",
+      "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
+      "dev": true,
+      "requires": {
+        "p-try": "^1.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
+      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+      "dev": true,
+      "requires": {
+        "p-limit": "^1.1.0"
+      }
+    },
+    "p-map": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz",
+      "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s="
+    },
+    "p-try": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
+      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+      "dev": true
+    },
+    "pako": {
+      "version": "1.0.10",
+      "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz",
+      "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=",
+      "dev": true
+    },
+    "parallel-transform": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.1.0.tgz",
+      "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+      "dev": true,
+      "requires": {
+        "cyclist": "~0.2.2",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "param-case": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz",
+      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0"
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.4",
+      "resolved": "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz",
+      "integrity": "sha1-N/Zij4I/vesic7TVQENKIvPvH8w=",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-glob": {
+      "version": "3.0.4",
+      "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz",
+      "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+      "requires": {
+        "glob-base": "^0.3.0",
+        "is-dotfile": "^1.0.0",
+        "is-extglob": "^1.0.0",
+        "is-glob": "^2.0.0"
+      },
+      "dependencies": {
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        }
+      }
+    },
+    "parse-json": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz",
+      "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+      "dev": true,
+      "requires": {
+        "error-ex": "^1.3.1",
+        "json-parse-better-errors": "^1.0.1"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.2",
+      "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.2.tgz",
+      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+    },
+    "path-browserify": {
+      "version": "0.0.0",
+      "resolved": "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz",
+      "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
+      "dev": true
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM="
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz",
+      "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw="
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz",
+      "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      }
+    },
+    "pbkdf2": {
+      "version": "3.0.17",
+      "resolved": "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz",
+      "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=",
+      "dev": true,
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "pify": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
+      "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz",
+      "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.1.0"
+      }
+    },
+    "portfinder": {
+      "version": "1.0.20",
+      "resolved": "http://registry.npm.taobao.org/portfinder/download/portfinder-1.0.20.tgz",
+      "integrity": "sha1-vqaGMuVLLhOrewxHdem0G/Jw5Eo=",
+      "requires": {
+        "async": "^1.5.2",
+        "debug": "^2.2.0",
+        "mkdirp": "0.5.x"
+      },
+      "dependencies": {
+        "async": {
+          "version": "1.5.2",
+          "resolved": "http://registry.npm.taobao.org/async/download/async-1.5.2.tgz",
+          "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+        }
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
+    },
+    "postcss": {
+      "version": "6.0.23",
+      "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz",
+      "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "source-map": "^0.6.1",
+        "supports-color": "^5.4.0"
+      }
+    },
+    "postcss-calc": {
+      "version": "5.3.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-calc/download/postcss-calc-5.3.1.tgz",
+      "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.2",
+        "postcss-message-helpers": "^2.0.0",
+        "reduce-css-calc": "^1.2.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-colormin": {
+      "version": "2.2.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-2.2.2.tgz",
+      "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+      "dev": true,
+      "requires": {
+        "colormin": "^1.0.5",
+        "postcss": "^5.0.13",
+        "postcss-value-parser": "^3.2.3"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-convert-values": {
+      "version": "2.6.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-2.6.1.tgz",
+      "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.11",
+        "postcss-value-parser": "^3.1.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-discard-comments": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-2.0.4.tgz",
+      "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.14"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-discard-duplicates": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-2.1.0.tgz",
+      "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-discard-empty": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-2.1.0.tgz",
+      "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.14"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-discard-overridden": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-0.1.1.tgz",
+      "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.16"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-discard-unused": {
+      "version": "2.2.3",
+      "resolved": "http://registry.npm.taobao.org/postcss-discard-unused/download/postcss-discard-unused-2.2.3.tgz",
+      "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.14",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-filter-plugins": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/postcss-filter-plugins/download/postcss-filter-plugins-2.0.3.tgz",
+      "integrity": "sha1-giRf34IzcEFkXkdxFNjlk6oYuOw=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-import": {
+      "version": "11.1.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-import/download/postcss-import-11.1.0.tgz",
+      "integrity": "sha1-Vck2LJGSmU7GiGXSJEGd8dspgfA=",
+      "dev": true,
+      "requires": {
+        "postcss": "^6.0.1",
+        "postcss-value-parser": "^3.2.3",
+        "read-cache": "^1.0.0",
+        "resolve": "^1.1.7"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.0.0.tgz",
+      "integrity": "sha1-8TEt2/WRLNdHF3CDxe96GdYu5IQ=",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^4.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-load-options": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-load-options/download/postcss-load-options-1.2.0.tgz",
+      "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^2.1.0",
+        "object-assign": "^4.1.0"
+      },
+      "dependencies": {
+        "cosmiconfig": {
+          "version": "2.2.2",
+          "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.2.2.tgz",
+          "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=",
+          "dev": true,
+          "requires": {
+            "is-directory": "^0.3.1",
+            "js-yaml": "^3.4.3",
+            "minimist": "^1.2.0",
+            "object-assign": "^4.1.0",
+            "os-homedir": "^1.0.1",
+            "parse-json": "^2.2.0",
+            "require-from-string": "^1.1.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "require-from-string": {
+          "version": "1.2.1",
+          "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz",
+          "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-load-plugins": {
+      "version": "2.3.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-load-plugins/download/postcss-load-plugins-2.3.0.tgz",
+      "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^2.1.1",
+        "object-assign": "^4.1.0"
+      },
+      "dependencies": {
+        "cosmiconfig": {
+          "version": "2.2.2",
+          "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.2.2.tgz",
+          "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=",
+          "dev": true,
+          "requires": {
+            "is-directory": "^0.3.1",
+            "js-yaml": "^3.4.3",
+            "minimist": "^1.2.0",
+            "object-assign": "^4.1.0",
+            "os-homedir": "^1.0.1",
+            "parse-json": "^2.2.0",
+            "require-from-string": "^1.1.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "require-from-string": {
+          "version": "1.2.1",
+          "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz",
+          "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+          "dev": true
+        }
+      }
+    },
+    "postcss-loader": {
+      "version": "2.1.6",
+      "resolved": "http://registry.npm.taobao.org/postcss-loader/download/postcss-loader-2.1.6.tgz",
+      "integrity": "sha1-HX3XsXxrojS5vtWvE+C+pApC10A=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^6.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^0.4.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.0",
+          "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz",
+          "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.4.1",
+          "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+          "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz",
+          "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "postcss-merge-idents": {
+      "version": "2.1.7",
+      "resolved": "http://registry.npm.taobao.org/postcss-merge-idents/download/postcss-merge-idents-2.1.7.tgz",
+      "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.1",
+        "postcss": "^5.0.10",
+        "postcss-value-parser": "^3.1.1"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-merge-longhand": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-2.0.2.tgz",
+      "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-merge-rules": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-2.1.2.tgz",
+      "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+      "dev": true,
+      "requires": {
+        "browserslist": "^1.5.2",
+        "caniuse-api": "^1.5.2",
+        "postcss": "^5.0.4",
+        "postcss-selector-parser": "^2.2.2",
+        "vendors": "^1.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "browserslist": {
+          "version": "1.7.7",
+          "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-1.7.7.tgz",
+          "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+          "dev": true,
+          "requires": {
+            "caniuse-db": "^1.0.30000639",
+            "electron-to-chromium": "^1.2.7"
+          }
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-message-helpers": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-message-helpers/download/postcss-message-helpers-2.0.0.tgz",
+      "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+      "dev": true
+    },
+    "postcss-minify-font-values": {
+      "version": "1.0.5",
+      "resolved": "http://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-1.0.5.tgz",
+      "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.0.1",
+        "postcss": "^5.0.4",
+        "postcss-value-parser": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-minify-gradients": {
+      "version": "1.0.5",
+      "resolved": "http://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-1.0.5.tgz",
+      "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.12",
+        "postcss-value-parser": "^3.3.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-minify-params": {
+      "version": "1.2.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-1.2.2.tgz",
+      "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.1",
+        "postcss": "^5.0.2",
+        "postcss-value-parser": "^3.0.2",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-minify-selectors": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-2.1.1.tgz",
+      "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.2",
+        "has": "^1.0.1",
+        "postcss": "^5.0.14",
+        "postcss-selector-parser": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-modules-extract-imports": {
+      "version": "1.2.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz",
+      "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=",
+      "dev": true,
+      "requires": {
+        "postcss": "^6.0.1"
+      }
+    },
+    "postcss-modules-local-by-default": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz",
+      "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+      "dev": true,
+      "requires": {
+        "css-selector-tokenizer": "^0.7.0",
+        "postcss": "^6.0.1"
+      }
+    },
+    "postcss-modules-scope": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz",
+      "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+      "dev": true,
+      "requires": {
+        "css-selector-tokenizer": "^0.7.0",
+        "postcss": "^6.0.1"
+      }
+    },
+    "postcss-modules-values": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz",
+      "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+      "dev": true,
+      "requires": {
+        "icss-replace-symbols": "^1.1.0",
+        "postcss": "^6.0.1"
+      }
+    },
+    "postcss-normalize-charset": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-1.1.1.tgz",
+      "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.5"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-normalize-url": {
+      "version": "3.0.8",
+      "resolved": "http://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-3.0.8.tgz",
+      "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+      "dev": true,
+      "requires": {
+        "is-absolute-url": "^2.0.0",
+        "normalize-url": "^1.4.0",
+        "postcss": "^5.0.14",
+        "postcss-value-parser": "^3.2.3"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-ordered-values": {
+      "version": "2.2.3",
+      "resolved": "http://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-2.2.3.tgz",
+      "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4",
+        "postcss-value-parser": "^3.0.1"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-reduce-idents": {
+      "version": "2.4.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-reduce-idents/download/postcss-reduce-idents-2.4.0.tgz",
+      "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4",
+        "postcss-value-parser": "^3.0.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-reduce-initial": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-1.0.1.tgz",
+      "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+      "dev": true,
+      "requires": {
+        "postcss": "^5.0.4"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-reduce-transforms": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-1.0.4.tgz",
+      "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.1",
+        "postcss": "^5.0.8",
+        "postcss-value-parser": "^3.0.1"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-selector-parser": {
+      "version": "2.2.3",
+      "resolved": "http://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-2.2.3.tgz",
+      "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+      "dev": true,
+      "requires": {
+        "flatten": "^1.0.2",
+        "indexes-of": "^1.0.1",
+        "uniq": "^1.0.1"
+      }
+    },
+    "postcss-svgo": {
+      "version": "2.1.6",
+      "resolved": "http://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-2.1.6.tgz",
+      "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+      "dev": true,
+      "requires": {
+        "is-svg": "^2.0.0",
+        "postcss": "^5.0.14",
+        "postcss-value-parser": "^3.2.3",
+        "svgo": "^0.7.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-unique-selectors": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-2.0.2.tgz",
+      "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.1",
+        "postcss": "^5.0.4",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "postcss-url": {
+      "version": "7.3.2",
+      "resolved": "http://registry.npm.taobao.org/postcss-url/download/postcss-url-7.3.2.tgz",
+      "integrity": "sha1-X+onOAf7hLOMRhw8mp6KvSNfcSA=",
+      "dev": true,
+      "requires": {
+        "mime": "^1.4.1",
+        "minimatch": "^3.0.4",
+        "mkdirp": "^0.5.0",
+        "postcss": "^6.0.1",
+        "xxhashjs": "^0.2.1"
+      }
+    },
+    "postcss-value-parser": {
+      "version": "3.3.1",
+      "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
+      "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
+      "dev": true
+    },
+    "postcss-zindex": {
+      "version": "2.2.0",
+      "resolved": "http://registry.npm.taobao.org/postcss-zindex/download/postcss-zindex-2.2.0.tgz",
+      "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.1",
+        "postcss": "^5.0.4",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          },
+          "dependencies": {
+            "supports-color": {
+              "version": "2.0.0",
+              "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz",
+              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+              "dev": true
+            }
+          }
+        },
+        "has-flag": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz",
+          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+          "dev": true
+        },
+        "postcss": {
+          "version": "5.2.18",
+          "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-5.2.18.tgz",
+          "integrity": "sha1-ut+hSX1GJE9jkPWLMZgw2RB4U8U=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.1.3",
+            "js-base64": "^2.1.9",
+            "source-map": "^0.5.6",
+            "supports-color": "^3.2.3"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "3.2.3",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz",
+          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^1.0.0"
+          }
+        }
+      }
+    },
+    "prepend-http": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz",
+      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+      "dev": true
+    },
+    "preserve": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz",
+      "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+    },
+    "prettier": {
+      "version": "1.16.4",
+      "resolved": "http://registry.npm.taobao.org/prettier/download/prettier-1.16.4.tgz",
+      "integrity": "sha1-c+N+c+AYrS25x2dC4mR+IXkMlxc=",
+      "dev": true
+    },
+    "pretty-error": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz",
+      "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+      "dev": true,
+      "requires": {
+        "renderkid": "^2.0.1",
+        "utila": "~0.4"
+      }
+    },
+    "private": {
+      "version": "0.1.8",
+      "resolved": "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz",
+      "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=",
+      "dev": true
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz",
+      "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o="
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
+    },
+    "proxy-addr": {
+      "version": "2.0.4",
+      "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.4.tgz",
+      "integrity": "sha1-7PxzO/Iv+Mb0B/onUye5q2fki5M=",
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.8.0"
+      }
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz",
+      "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "pump": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
+      "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "http://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz",
+      "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
+      "dev": true,
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
+      "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
+      "dev": true
+    },
+    "q": {
+      "version": "1.5.1",
+      "resolved": "http://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
+      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
+      "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY="
+    },
+    "query-string": {
+      "version": "4.3.4",
+      "resolved": "http://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz",
+      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.0",
+        "strict-uri-encode": "^1.0.0"
+      }
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+      "dev": true
+    },
+    "querystringify": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz",
+      "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4="
+    },
+    "randomatic": {
+      "version": "3.1.1",
+      "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz",
+      "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=",
+      "requires": {
+        "is-number": "^4.0.0",
+        "kind-of": "^6.0.0",
+        "math-random": "^1.0.1"
+      },
+      "dependencies": {
+        "is-number": {
+          "version": "4.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz",
+          "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8="
+        },
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
+      "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz",
+      "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz",
+      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
+    },
+    "raw-body": {
+      "version": "2.3.3",
+      "resolved": "http://registry.npm.taobao.org/raw-body/download/raw-body-2.3.3.tgz",
+      "integrity": "sha1-GzJOzmtXBuFThVvBFIxlu39uoMM=",
+      "requires": {
+        "bytes": "3.0.0",
+        "http-errors": "1.6.3",
+        "iconv-lite": "0.4.23",
+        "unpipe": "1.0.0"
+      }
+    },
+    "read-cache": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz",
+      "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
+      "dev": true,
+      "requires": {
+        "pify": "^2.3.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz",
+      "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
+      "dev": true,
+      "requires": {
+        "load-json-file": "^2.0.0",
+        "normalize-package-data": "^2.3.2",
+        "path-type": "^2.0.0"
+      },
+      "dependencies": {
+        "path-type": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz",
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
+          "dev": true,
+          "requires": {
+            "pify": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz",
+      "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.0.0",
+        "read-pkg": "^2.0.0"
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.6",
+      "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz",
+      "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=",
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "2.2.1",
+      "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz",
+      "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
+      "requires": {
+        "graceful-fs": "^4.1.11",
+        "micromatch": "^3.1.10",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "http://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "redent": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz",
+      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "requires": {
+        "indent-string": "^2.1.0",
+        "strip-indent": "^1.0.1"
+      }
+    },
+    "reduce-css-calc": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/reduce-css-calc/download/reduce-css-calc-1.3.0.tgz",
+      "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^0.4.2",
+        "math-expression-evaluator": "^1.2.14",
+        "reduce-function-call": "^1.0.1"
+      },
+      "dependencies": {
+        "balanced-match": {
+          "version": "0.4.2",
+          "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz",
+          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+          "dev": true
+        }
+      }
+    },
+    "reduce-function-call": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/reduce-function-call/download/reduce-function-call-1.0.2.tgz",
+      "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^0.4.2"
+      },
+      "dependencies": {
+        "balanced-match": {
+          "version": "0.4.2",
+          "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-0.4.2.tgz",
+          "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+          "dev": true
+        }
+      }
+    },
+    "regenerate": {
+      "version": "1.4.0",
+      "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz",
+      "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=",
+      "dev": true
+    },
+    "regenerator-runtime": {
+      "version": "0.11.1",
+      "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
+      "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
+    },
+    "regenerator-transform": {
+      "version": "0.10.1",
+      "resolved": "http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz",
+      "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "^6.18.0",
+        "babel-types": "^6.19.0",
+        "private": "^0.1.6"
+      }
+    },
+    "regex-cache": {
+      "version": "0.4.4",
+      "resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz",
+      "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=",
+      "requires": {
+        "is-equal-shallow": "^0.1.3"
+      }
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
+      "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "regexpu-core": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz",
+      "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.2.1",
+        "regjsgen": "^0.2.0",
+        "regjsparser": "^0.1.4"
+      }
+    },
+    "regjsgen": {
+      "version": "0.2.0",
+      "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz",
+      "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.1.5",
+      "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz",
+      "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "relateurl": {
+      "version": "0.2.7",
+      "resolved": "http://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz",
+      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+      "dev": true
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
+    },
+    "renderkid": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz",
+      "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=",
+      "dev": true,
+      "requires": {
+        "css-select": "^1.1.0",
+        "dom-converter": "^0.2",
+        "htmlparser2": "^3.3.0",
+        "strip-ansi": "^3.0.0",
+        "utila": "^0.4.0"
+      }
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz",
+      "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4="
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+    },
+    "repeating": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz",
+      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "requires": {
+        "is-finite": "^1.0.0"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+    },
+    "require-from-string": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz",
+      "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=",
+      "dev": true
+    },
+    "require-main-filename": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
+      "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+    },
+    "resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
+    "resolve": {
+      "version": "1.10.0",
+      "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz",
+      "integrity": "sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=",
+      "requires": {
+        "path-parse": "^1.0.6"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
+      "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="
+    },
+    "right-align": {
+      "version": "0.1.3",
+      "resolved": "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz",
+      "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+      "dev": true,
+      "requires": {
+        "align-text": "^0.1.1"
+      }
+    },
+    "rimraf": {
+      "version": "2.6.3",
+      "resolved": "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz",
+      "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz",
+      "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
+      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
+      "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "http://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
+      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.3.0.tgz",
+      "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+      "dev": true,
+      "requires": {
+        "ajv": "^5.0.0"
+      }
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
+    },
+    "selfsigned": {
+      "version": "1.10.4",
+      "resolved": "http://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.4.tgz",
+      "integrity": "sha1-zdfsz8pO12NdR6CL8tXTB0CS4s0=",
+      "requires": {
+        "node-forge": "0.7.5"
+      }
+    },
+    "semver": {
+      "version": "5.6.0",
+      "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz",
+      "integrity": "sha1-fnQlb7qknHWqfHogXMInmcrIAAQ="
+    },
+    "send": {
+      "version": "0.16.2",
+      "resolved": "http://registry.npm.taobao.org/send/download/send-0.16.2.tgz",
+      "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=",
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.6.2",
+        "mime": "1.4.1",
+        "ms": "2.0.0",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.0",
+        "statuses": "~1.4.0"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "1.4.1",
+          "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.4.1.tgz",
+          "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY="
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "1.6.1",
+      "resolved": "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.6.1.tgz",
+      "integrity": "sha1-TR9pfsSUKahHym9EKip1USbE2Hk=",
+      "dev": true
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "http://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      }
+    },
+    "serve-static": {
+      "version": "1.13.2",
+      "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.13.2.tgz",
+      "integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=",
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.2",
+        "send": "0.16.2"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+    },
+    "set-value": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz",
+      "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=",
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+      "dev": true
+    },
+    "setprototypeof": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
+      "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY="
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz",
+      "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.7.8",
+      "resolved": "http://registry.npm.taobao.org/shelljs/download/shelljs-0.7.8.tgz",
+      "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "interpret": "^1.0.0",
+        "rechoir": "^0.6.2"
+      }
+    },
+    "shellwords": {
+      "version": "0.1.1",
+      "resolved": "http://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz",
+      "integrity": "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=",
+      "dev": true
+    },
+    "signal-exit": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz",
+      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+    },
+    "slash": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz",
+      "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+      "dev": true
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz",
+      "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
+          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        },
+        "kind-of": {
+          "version": "6.0.2",
+          "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz",
+          "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE="
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
+      "requires": {
+        "kind-of": "^3.2.0"
+      }
+    },
+    "sockjs": {
+      "version": "0.3.18",
+      "resolved": "http://registry.npm.taobao.org/sockjs/download/sockjs-0.3.18.tgz",
+      "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=",
+      "requires": {
+        "faye-websocket": "^0.10.0",
+        "uuid": "^2.0.2"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.1.4",
+      "resolved": "http://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.1.4.tgz",
+      "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
+      "requires": {
+        "debug": "^2.6.6",
+        "eventsource": "0.1.6",
+        "faye-websocket": "~0.11.0",
+        "inherits": "^2.0.1",
+        "json3": "^3.3.2",
+        "url-parse": "^1.1.8"
+      },
+      "dependencies": {
+        "faye-websocket": {
+          "version": "0.11.1",
+          "resolved": "http://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.1.tgz",
+          "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+          "requires": {
+            "websocket-driver": ">=0.5.1"
+          }
+        }
+      }
+    },
+    "sort-keys": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz",
+      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+      "dev": true,
+      "requires": {
+        "is-plain-obj": "^1.0.0"
+      }
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
+      "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.6.1",
+      "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+      "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.5.2",
+      "resolved": "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz",
+      "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=",
+      "requires": {
+        "atob": "^2.1.1",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.4.18",
+      "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz",
+      "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=",
+      "dev": true,
+      "requires": {
+        "source-map": "^0.5.6"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        }
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
+    },
+    "spdx-correct": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz",
+      "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=",
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.2.0",
+      "resolved": "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz",
+      "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc="
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz",
+      "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=",
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.3",
+      "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.3.tgz",
+      "integrity": "sha1-gcDOjyFHR1YUi7tfO/wPNr8V124="
+    },
+    "spdy": {
+      "version": "3.4.7",
+      "resolved": "http://registry.npm.taobao.org/spdy/download/spdy-3.4.7.tgz",
+      "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
+      "requires": {
+        "debug": "^2.6.8",
+        "handle-thing": "^1.2.5",
+        "http-deceiver": "^1.2.7",
+        "safe-buffer": "^5.0.1",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^2.0.18"
+      }
+    },
+    "spdy-transport": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/spdy-transport/download/spdy-transport-2.1.1.tgz",
+      "integrity": "sha1-xUgV1zhYqt0GzmMAHn0l+mRBYjs=",
+      "requires": {
+        "debug": "^2.6.8",
+        "detect-node": "^2.0.3",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.1",
+        "readable-stream": "^2.2.9",
+        "safe-buffer": "^5.0.1",
+        "wbuf": "^1.7.2"
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
+      "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "ssri": {
+      "version": "5.3.0",
+      "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz",
+      "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "stackframe": {
+      "version": "1.0.4",
+      "resolved": "http://registry.npm.taobao.org/stackframe/download/stackframe-1.0.4.tgz",
+      "integrity": "sha1-NXskqZL5Qny6a1RdlqFO0svKGHs=",
+      "dev": true
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "statuses": {
+      "version": "1.4.0",
+      "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.4.0.tgz",
+      "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic="
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz",
+      "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz",
+      "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.3",
+      "resolved": "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz",
+      "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=",
+      "dev": true,
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz",
+      "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+      "dev": true
+    },
+    "strict-uri-encode": {
+      "version": "1.1.0",
+      "resolved": "http://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
+      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+      "dev": true
+    },
+    "string-width": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz",
+      "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
+      "dev": true,
+      "requires": {
+        "is-fullwidth-code-point": "^2.0.0",
+        "strip-ansi": "^4.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        }
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
+      "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "3.0.1",
+      "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      }
+    },
+    "strip-bom": {
+      "version": "3.0.0",
+      "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz",
+      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+      "dev": true
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz",
+      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "requires": {
+        "get-stdin": "^4.0.1"
+      }
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz",
+      "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "svgo": {
+      "version": "0.7.2",
+      "resolved": "http://registry.npm.taobao.org/svgo/download/svgo-0.7.2.tgz",
+      "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+      "dev": true,
+      "requires": {
+        "coa": "~1.0.1",
+        "colors": "~1.1.2",
+        "csso": "~2.3.1",
+        "js-yaml": "~3.7.0",
+        "mkdirp": "~0.5.1",
+        "sax": "~1.2.1",
+        "whet.extend": "~0.9.9"
+      }
+    },
+    "tapable": {
+      "version": "0.2.9",
+      "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-0.2.9.tgz",
+      "integrity": "sha1-ry2LvJsE907hevK02QSPgHrNGKg=",
+      "dev": true
+    },
+    "throttle-debounce": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz",
+      "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunky": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/thunky/download/thunky-1.0.3.tgz",
+      "integrity": "sha1-9d9zJFNAewkZHa5z4qjMc/OBqCY="
+    },
+    "time-stamp": {
+      "version": "2.2.0",
+      "resolved": "http://registry.npm.taobao.org/time-stamp/download/time-stamp-2.2.0.tgz",
+      "integrity": "sha1-kX4KZpBWiHkOx7u94EBGJZr4P1c="
+    },
+    "timers-browserify": {
+      "version": "2.0.10",
+      "resolved": "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz",
+      "integrity": "sha1-HSjj0qrfHVpZlsTp+VYBzQU0gK4=",
+      "dev": true,
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+      "dev": true
+    },
+    "to-fast-properties": {
+      "version": "1.0.3",
+      "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz",
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "requires": {
+        "kind-of": "^3.0.2"
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
+      "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "toposort": {
+      "version": "1.0.7",
+      "resolved": "http://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz",
+      "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+      "dev": true
+    },
+    "trim-newlines": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz",
+      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+    },
+    "trim-right": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz",
+      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+      "dev": true
+    },
+    "tryer": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
+      "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=",
+      "dev": true
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+      "dev": true
+    },
+    "type-is": {
+      "version": "1.6.16",
+      "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.16.tgz",
+      "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=",
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.18"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.4.9",
+      "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.9.tgz",
+      "integrity": "sha1-rwLxgMEgfXZDLkc+0koo9KeCuuM=",
+      "dev": true,
+      "requires": {
+        "commander": "~2.17.1",
+        "source-map": "~0.6.1"
+      }
+    },
+    "uglify-to-browserify": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz",
+      "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+      "dev": true,
+      "optional": true
+    },
+    "uglifyjs-webpack-plugin": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.3.0.tgz",
+      "integrity": "sha1-dfVIFghYFjoIZD4IbV/v4YpdZ94=",
+      "dev": true,
+      "requires": {
+        "cacache": "^10.0.4",
+        "find-cache-dir": "^1.0.0",
+        "schema-utils": "^0.4.5",
+        "serialize-javascript": "^1.4.0",
+        "source-map": "^0.6.1",
+        "uglify-es": "^3.3.4",
+        "webpack-sources": "^1.1.0",
+        "worker-farm": "^1.5.2"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.0",
+          "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz",
+          "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "commander": {
+          "version": "2.13.0",
+          "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.13.0.tgz",
+          "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=",
+          "dev": true
+        },
+        "fast-deep-equal": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.4.1",
+          "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+          "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "0.4.7",
+          "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz",
+          "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "uglify-es": {
+          "version": "3.3.9",
+          "resolved": "http://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz",
+          "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=",
+          "dev": true,
+          "requires": {
+            "commander": "~2.13.0",
+            "source-map": "~0.6.1"
+          }
+        }
+      }
+    },
+    "union-value": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz",
+      "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^0.4.3"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "set-value": {
+          "version": "0.4.3",
+          "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz",
+          "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
+          "requires": {
+            "extend-shallow": "^2.0.1",
+            "is-extendable": "^0.1.1",
+            "is-plain-object": "^2.0.1",
+            "to-object-path": "^0.3.0"
+          }
+        }
+      }
+    },
+    "uniq": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
+      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+      "dev": true
+    },
+    "uniqs": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz",
+      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+      "dev": true
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
+      "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.1",
+      "resolved": "http://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.1.tgz",
+      "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+        }
+      }
+    },
+    "upath": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/upath/download/upath-1.1.2.tgz",
+      "integrity": "sha1-PbZYYA7a7sy+bbXmhNZ+6MKs0Gg=",
+      "dev": true
+    },
+    "upper-case": {
+      "version": "1.1.3",
+      "resolved": "http://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
+      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+      "dev": true
+    },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz",
+      "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+          "dev": true
+        }
+      }
+    },
+    "url-loader": {
+      "version": "0.5.9",
+      "resolved": "http://registry.npm.taobao.org/url-loader/download/url-loader-0.5.9.tgz",
+      "integrity": "sha1-zI/qgse5Bud3cBklCGnlaemVwpU=",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.0.2",
+        "mime": "1.3.x"
+      },
+      "dependencies": {
+        "mime": {
+          "version": "1.3.6",
+          "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.3.6.tgz",
+          "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=",
+          "dev": true
+        }
+      }
+    },
+    "url-parse": {
+      "version": "1.4.6",
+      "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.6.tgz",
+      "integrity": "sha1-uvkdbmeDyKeV60dokv/vJzf8BFY=",
+      "requires": {
+        "querystringify": "^2.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
+      "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8="
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "http://registry.npm.taobao.org/util/download/util-0.11.1.tgz",
+      "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3"
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+    },
+    "utila": {
+      "version": "0.4.0",
+      "resolved": "http://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
+      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+      "dev": true
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+    },
+    "uuid": {
+      "version": "2.0.3",
+      "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-2.0.3.tgz",
+      "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "vant": {
+      "version": "1.6.10",
+      "resolved": "http://registry.npm.taobao.org/vant/download/vant-1.6.10.tgz",
+      "integrity": "sha1-+B1xvqiY+XrhRPUKV2jhlWkgazg=",
+      "requires": {
+        "@babel/runtime": "^7.3.4",
+        "@vant/icons": "1.1.3",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.2",
+        "vue-lazyload": "1.2.3"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+    },
+    "vendors": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/vendors/download/vendors-1.0.2.tgz",
+      "integrity": "sha1-f8te759WI7FWvOqJ7DfWNnbyGAE=",
+      "dev": true
+    },
+    "vm-browserify": {
+      "version": "0.0.4",
+      "resolved": "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz",
+      "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+      "dev": true,
+      "requires": {
+        "indexof": "0.0.1"
+      }
+    },
+    "vue": {
+      "version": "2.6.8",
+      "resolved": "http://registry.npm.taobao.org/vue/download/vue-2.6.8.tgz",
+      "integrity": "sha1-8hy8U2v8FPfR15KhN7sS9p5g6pE="
+    },
+    "vue-hot-reload-api": {
+      "version": "2.3.3",
+      "resolved": "http://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.3.tgz",
+      "integrity": "sha1-J1b0bLMlgFTF9HI96K5+hzAqHM8=",
+      "dev": true
+    },
+    "vue-lazyload": {
+      "version": "1.2.3",
+      "resolved": "http://registry.npm.taobao.org/vue-lazyload/download/vue-lazyload-1.2.3.tgz",
+      "integrity": "sha1-kB+ewVx+bKeHgaK65KNDaGve2yw="
+    },
+    "vue-loader": {
+      "version": "13.7.3",
+      "resolved": "http://registry.npm.taobao.org/vue-loader/download/vue-loader-13.7.3.tgz",
+      "integrity": "sha1-4HRA94IwpjnQCtpNp7ltDp1iA38=",
+      "dev": true,
+      "requires": {
+        "consolidate": "^0.14.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "lru-cache": "^4.1.1",
+        "postcss": "^6.0.8",
+        "postcss-load-config": "^1.1.0",
+        "postcss-selector-parser": "^2.0.0",
+        "prettier": "^1.7.0",
+        "resolve": "^1.4.0",
+        "source-map": "^0.6.1",
+        "vue-hot-reload-api": "^2.2.0",
+        "vue-style-loader": "^3.0.0",
+        "vue-template-es2015-compiler": "^1.6.0"
+      },
+      "dependencies": {
+        "cosmiconfig": {
+          "version": "2.2.2",
+          "resolved": "http://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-2.2.2.tgz",
+          "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=",
+          "dev": true,
+          "requires": {
+            "is-directory": "^0.3.1",
+            "js-yaml": "^3.4.3",
+            "minimist": "^1.2.0",
+            "object-assign": "^4.1.0",
+            "os-homedir": "^1.0.1",
+            "parse-json": "^2.2.0",
+            "require-from-string": "^1.1.0"
+          }
+        },
+        "minimist": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz",
+          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+          "dev": true
+        },
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "postcss-load-config": {
+          "version": "1.2.0",
+          "resolved": "http://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-1.2.0.tgz",
+          "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+          "dev": true,
+          "requires": {
+            "cosmiconfig": "^2.1.0",
+            "object-assign": "^4.1.0",
+            "postcss-load-options": "^1.2.0",
+            "postcss-load-plugins": "^2.3.0"
+          }
+        },
+        "require-from-string": {
+          "version": "1.2.1",
+          "resolved": "http://registry.npm.taobao.org/require-from-string/download/require-from-string-1.2.1.tgz",
+          "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+          "dev": true
+        }
+      }
+    },
+    "vue-router": {
+      "version": "3.0.2",
+      "resolved": "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz",
+      "integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4="
+    },
+    "vue-style-loader": {
+      "version": "3.1.2",
+      "resolved": "http://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-3.1.2.tgz",
+      "integrity": "sha1-a2atNJmPyVIMLx5NX6QJFkHBWXo=",
+      "dev": true,
+      "requires": {
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.0.2"
+      }
+    },
+    "vue-template-compiler": {
+      "version": "2.6.8",
+      "resolved": "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.8.tgz",
+      "integrity": "sha1-dQgCYEWVE0d1ucUxQbmFCzUlXhw=",
+      "dev": true,
+      "requires": {
+        "de-indent": "^1.0.2",
+        "he": "^1.1.0"
+      }
+    },
+    "vue-template-es2015-compiler": {
+      "version": "1.9.1",
+      "resolved": "http://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz",
+      "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
+      "dev": true
+    },
+    "vue-ydui": {
+      "version": "1.2.6",
+      "resolved": "http://registry.npm.taobao.org/vue-ydui/download/vue-ydui-1.2.6.tgz",
+      "integrity": "sha1-GQZItGcjkXAEpMJKe+/TzWnWQ1U="
+    },
+    "vuex": {
+      "version": "3.1.0",
+      "resolved": "http://registry.npm.taobao.org/vuex/download/vuex-3.1.0.tgz",
+      "integrity": "sha1-Y0uBUVzwz+l2vR/+lgF1XlH4Q7k="
+    },
+    "watchpack": {
+      "version": "1.6.0",
+      "resolved": "http://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz",
+      "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=",
+      "dev": true,
+      "requires": {
+        "chokidar": "^2.0.2",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0"
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "http://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz",
+      "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=",
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "webpack": {
+      "version": "3.12.0",
+      "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-3.12.0.tgz",
+      "integrity": "sha1-P540NgNwYC/PY56Xk520hvTsDXQ=",
+      "dev": true,
+      "requires": {
+        "acorn": "^5.0.0",
+        "acorn-dynamic-import": "^2.0.0",
+        "ajv": "^6.1.0",
+        "ajv-keywords": "^3.1.0",
+        "async": "^2.1.2",
+        "enhanced-resolve": "^3.4.0",
+        "escope": "^3.6.0",
+        "interpret": "^1.0.0",
+        "json-loader": "^0.5.4",
+        "json5": "^0.5.1",
+        "loader-runner": "^2.3.0",
+        "loader-utils": "^1.1.0",
+        "memory-fs": "~0.4.1",
+        "mkdirp": "~0.5.0",
+        "node-libs-browser": "^2.0.0",
+        "source-map": "^0.5.3",
+        "supports-color": "^4.2.1",
+        "tapable": "^0.2.7",
+        "uglifyjs-webpack-plugin": "^0.4.6",
+        "watchpack": "^1.4.0",
+        "webpack-sources": "^1.0.1",
+        "yargs": "^8.0.2"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.10.0",
+          "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz",
+          "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^2.0.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "fast-deep-equal": {
+          "version": "2.0.1",
+          "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz",
+          "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+          "dev": true
+        },
+        "has-flag": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz",
+          "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+          "dev": true
+        },
+        "json-schema-traverse": {
+          "version": "0.4.1",
+          "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz",
+          "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.5.7",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz",
+          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "4.5.0",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz",
+          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+          "dev": true,
+          "requires": {
+            "has-flag": "^2.0.0"
+          }
+        },
+        "uglify-js": {
+          "version": "2.8.29",
+          "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz",
+          "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+          "dev": true,
+          "requires": {
+            "source-map": "~0.5.1",
+            "uglify-to-browserify": "~1.0.0",
+            "yargs": "~3.10.0"
+          },
+          "dependencies": {
+            "yargs": {
+              "version": "3.10.0",
+              "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz",
+              "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+              "dev": true,
+              "requires": {
+                "camelcase": "^1.0.2",
+                "cliui": "^2.1.0",
+                "decamelize": "^1.0.0",
+                "window-size": "0.1.0"
+              }
+            }
+          }
+        },
+        "uglifyjs-webpack-plugin": {
+          "version": "0.4.6",
+          "resolved": "http://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-0.4.6.tgz",
+          "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
+          "dev": true,
+          "requires": {
+            "source-map": "^0.5.6",
+            "uglify-js": "^2.8.29",
+            "webpack-sources": "^1.0.1"
+          }
+        }
+      }
+    },
+    "webpack-bundle-analyzer": {
+      "version": "2.13.1",
+      "resolved": "http://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-2.13.1.tgz",
+      "integrity": "sha1-B9IXbG6Gw83OTCPlb64qe2tK1SY=",
+      "dev": true,
+      "requires": {
+        "acorn": "^5.3.0",
+        "bfj-node4": "^5.2.0",
+        "chalk": "^2.3.0",
+        "commander": "^2.13.0",
+        "ejs": "^2.5.7",
+        "express": "^4.16.2",
+        "filesize": "^3.5.11",
+        "gzip-size": "^4.1.0",
+        "lodash": "^4.17.4",
+        "mkdirp": "^0.5.1",
+        "opener": "^1.4.3",
+        "ws": "^4.0.0"
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "1.12.2",
+      "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-1.12.2.tgz",
+      "integrity": "sha1-+PwRIM47T8VoDO7LQ9d3lmshEF4=",
+      "requires": {
+        "memory-fs": "~0.4.1",
+        "mime": "^1.5.0",
+        "path-is-absolute": "^1.0.0",
+        "range-parser": "^1.0.3",
+        "time-stamp": "^2.0.0"
+      }
+    },
+    "webpack-dev-server": {
+      "version": "2.9.1",
+      "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-2.9.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-2.9.1.tgz",
+      "integrity": "sha1-eskyC2GwDrZbIQnxXIJ0f8W5NYU=",
+      "requires": {
+        "ansi-html": "0.0.7",
+        "array-includes": "^3.0.3",
+        "bonjour": "^3.5.0",
+        "chokidar": "^1.6.0",
+        "compression": "^1.5.2",
+        "connect-history-api-fallback": "^1.3.0",
+        "del": "^3.0.0",
+        "express": "^4.13.3",
+        "html-entities": "^1.2.0",
+        "http-proxy-middleware": "~0.17.4",
+        "internal-ip": "1.2.0",
+        "ip": "^1.1.5",
+        "loglevel": "^1.4.1",
+        "opn": "^5.1.0",
+        "portfinder": "^1.0.9",
+        "selfsigned": "^1.9.1",
+        "serve-index": "^1.7.2",
+        "sockjs": "0.3.18",
+        "sockjs-client": "1.1.4",
+        "spdy": "^3.4.1",
+        "strip-ansi": "^3.0.1",
+        "supports-color": "^4.2.1",
+        "webpack-dev-middleware": "^1.11.0",
+        "yargs": "^6.6.0"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-1.3.2.tgz",
+          "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=",
+          "requires": {
+            "micromatch": "^2.1.5",
+            "normalize-path": "^2.0.0"
+          }
+        },
+        "arr-diff": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz",
+          "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+          "requires": {
+            "arr-flatten": "^1.0.1"
+          }
+        },
+        "array-unique": {
+          "version": "0.2.1",
+          "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz",
+          "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
+        },
+        "braces": {
+          "version": "1.8.5",
+          "resolved": "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz",
+          "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+          "requires": {
+            "expand-range": "^1.8.1",
+            "preserve": "^0.2.0",
+            "repeat-element": "^1.1.2"
+          }
+        },
+        "camelcase": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz",
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+        },
+        "chokidar": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz",
+          "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+          "requires": {
+            "anymatch": "^1.3.0",
+            "async-each": "^1.0.0",
+            "fsevents": "^1.0.0",
+            "glob-parent": "^2.0.0",
+            "inherits": "^2.0.1",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^2.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.0.0"
+          }
+        },
+        "cliui": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
+          "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+          "requires": {
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wrap-ansi": "^2.0.0"
+          }
+        },
+        "expand-brackets": {
+          "version": "0.1.5",
+          "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz",
+          "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+          "requires": {
+            "is-posix-bracket": "^0.1.0"
+          }
+        },
+        "extglob": {
+          "version": "0.3.2",
+          "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz",
+          "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        },
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "glob-parent": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz",
+          "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+          "requires": {
+            "is-glob": "^2.0.0"
+          }
+        },
+        "has-flag": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-2.0.0.tgz",
+          "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
+        },
+        "is-extglob": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz",
+          "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "is-glob": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz",
+          "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+          "requires": {
+            "is-extglob": "^1.0.0"
+          }
+        },
+        "load-json-file": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
+          "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "parse-json": "^2.2.0",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0",
+            "strip-bom": "^2.0.0"
+          }
+        },
+        "micromatch": {
+          "version": "2.3.11",
+          "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz",
+          "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+          "requires": {
+            "arr-diff": "^2.0.0",
+            "array-unique": "^0.2.1",
+            "braces": "^1.8.2",
+            "expand-brackets": "^0.1.4",
+            "extglob": "^0.3.1",
+            "filename-regex": "^2.0.0",
+            "is-extglob": "^1.0.0",
+            "is-glob": "^2.0.1",
+            "kind-of": "^3.0.2",
+            "normalize-path": "^2.0.1",
+            "object.omit": "^2.0.0",
+            "parse-glob": "^3.0.4",
+            "regex-cache": "^0.4.2"
+          }
+        },
+        "normalize-path": {
+          "version": "2.1.1",
+          "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
+          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+          "requires": {
+            "remove-trailing-separator": "^1.0.1"
+          }
+        },
+        "os-locale": {
+          "version": "1.4.0",
+          "resolved": "http://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz",
+          "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+          "requires": {
+            "lcid": "^1.0.0"
+          }
+        },
+        "parse-json": {
+          "version": "2.2.0",
+          "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz",
+          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+          "requires": {
+            "error-ex": "^1.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-type": {
+          "version": "1.1.0",
+          "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz",
+          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+          "requires": {
+            "graceful-fs": "^4.1.2",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+        },
+        "read-pkg": {
+          "version": "1.1.0",
+          "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
+          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+          "requires": {
+            "load-json-file": "^1.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^1.0.0"
+          }
+        },
+        "read-pkg-up": {
+          "version": "1.0.1",
+          "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
+          "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+          "requires": {
+            "find-up": "^1.0.0",
+            "read-pkg": "^1.0.0"
+          }
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        },
+        "strip-bom": {
+          "version": "2.0.0",
+          "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
+          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+          "requires": {
+            "is-utf8": "^0.2.0"
+          }
+        },
+        "supports-color": {
+          "version": "4.5.0",
+          "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-4.5.0.tgz",
+          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+          "requires": {
+            "has-flag": "^2.0.0"
+          }
+        },
+        "which-module": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz",
+          "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+        },
+        "yargs": {
+          "version": "6.6.0",
+          "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-6.6.0.tgz",
+          "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+          "requires": {
+            "camelcase": "^3.0.0",
+            "cliui": "^3.2.0",
+            "decamelize": "^1.1.1",
+            "get-caller-file": "^1.0.1",
+            "os-locale": "^1.4.0",
+            "read-pkg-up": "^1.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^1.0.1",
+            "set-blocking": "^2.0.0",
+            "string-width": "^1.0.2",
+            "which-module": "^1.0.0",
+            "y18n": "^3.2.1",
+            "yargs-parser": "^4.2.0"
+          }
+        },
+        "yargs-parser": {
+          "version": "4.2.1",
+          "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-4.2.1.tgz",
+          "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+          "requires": {
+            "camelcase": "^3.0.0"
+          }
+        }
+      }
+    },
+    "webpack-merge": {
+      "version": "4.2.1",
+      "resolved": "http://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.1.tgz",
+      "integrity": "sha1-XpI8+ALqKs5P1a8dMkc2imM0ibQ=",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.5"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.3.0",
+      "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.3.0.tgz",
+      "integrity": "sha1-KijcufH0X+lg2PFJMlK17mUw+oU=",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      }
+    },
+    "websocket-driver": {
+      "version": "0.7.0",
+      "resolved": "http://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.0.tgz",
+      "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+      "requires": {
+        "http-parser-js": ">=0.4.0",
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.3",
+      "resolved": "http://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz",
+      "integrity": "sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk="
+    },
+    "whet.extend": {
+      "version": "0.9.9",
+      "resolved": "http://registry.npm.taobao.org/whet.extend/download/whet.extend-0.9.9.tgz",
+      "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
+      "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "2.0.0",
+      "resolved": "http://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+      "dev": true
+    },
+    "window-size": {
+      "version": "0.1.0",
+      "resolved": "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz",
+      "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+      "dev": true
+    },
+    "wordwrap": {
+      "version": "0.0.2",
+      "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz",
+      "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+      "dev": true
+    },
+    "worker-farm": {
+      "version": "1.6.0",
+      "resolved": "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.6.0.tgz",
+      "integrity": "sha1-rsxAWXb6talVJhgIRvDboojzpKA=",
+      "dev": true,
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "2.1.0",
+      "resolved": "http://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz",
+      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+      "requires": {
+        "string-width": "^1.0.1",
+        "strip-ansi": "^3.0.1"
+      },
+      "dependencies": {
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        }
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+    },
+    "ws": {
+      "version": "4.1.0",
+      "resolved": "http://registry.npm.taobao.org/ws/download/ws-4.1.0.tgz",
+      "integrity": "sha1-qXm119TaaL9U7+BAiWfDJIaacok=",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0",
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "xtend": {
+      "version": "4.0.1",
+      "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz",
+      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+      "dev": true
+    },
+    "xxhashjs": {
+      "version": "0.2.2",
+      "resolved": "http://registry.npm.taobao.org/xxhashjs/download/xxhashjs-0.2.2.tgz",
+      "integrity": "sha1-imJRVnYhocRqWuIE2gJJx/jKqdg=",
+      "dev": true,
+      "requires": {
+        "cuint": "^0.2.2"
+      }
+    },
+    "y18n": {
+      "version": "4.0.0",
+      "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz",
+      "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=",
+      "dev": true
+    },
+    "yallist": {
+      "version": "2.1.2",
+      "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
+      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+      "dev": true
+    },
+    "yargs": {
+      "version": "8.0.2",
+      "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-8.0.2.tgz",
+      "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
+      "dev": true,
+      "requires": {
+        "camelcase": "^4.1.0",
+        "cliui": "^3.2.0",
+        "decamelize": "^1.1.1",
+        "get-caller-file": "^1.0.1",
+        "os-locale": "^2.0.0",
+        "read-pkg-up": "^2.0.0",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^1.0.1",
+        "set-blocking": "^2.0.0",
+        "string-width": "^2.0.0",
+        "which-module": "^2.0.0",
+        "y18n": "^3.2.1",
+        "yargs-parser": "^7.0.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        },
+        "cliui": {
+          "version": "3.2.0",
+          "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz",
+          "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+          "dev": true,
+          "requires": {
+            "string-width": "^1.0.1",
+            "strip-ansi": "^3.0.1",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
+            "string-width": {
+              "version": "1.0.2",
+              "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz",
+              "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+              "dev": true,
+              "requires": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+              }
+            }
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
+          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+          "dev": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "y18n": {
+          "version": "3.2.1",
+          "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz",
+          "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+          "dev": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "7.0.0",
+      "resolved": "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-7.0.0.tgz",
+      "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+      "dev": true,
+      "requires": {
+        "camelcase": "^4.1.0"
+      },
+      "dependencies": {
+        "camelcase": {
+          "version": "4.1.0",
+          "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz",
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+          "dev": true
+        }
+      }
+    }
+  }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/17/178addcbae0671f951efb318d375426bcb435b03.svn-base


BIN=BIN
.svn/pristine/1a/1a6ace377133f14a2b2cd7c48f10369a6bc54b2e.svn-base


BIN=BIN
.svn/pristine/1e/1e5e08b2a6d68acde063bbe7ee75aba1835a9bc5.svn-base


+ 946 - 0
.svn/pristine/1f/1f9df7f86ed59fa486120c6e04124ee7e30319fc.svn-base

@@ -0,0 +1,946 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-09-29 16:08:14
+ * @LastEditTime: 2019-09-29 18:00:10
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div>
+      <div class="serch row item-center allAlignment" v-if="noShow">
+        <div class="row center all pointer hover br05 fz14" style="float: left;width: 50px;" @click="ResultMatch()">
+          <span style="font-size:.14rem;color:#ccc;">赛果</span>
+        </div>
+        <div class="row center all pointer hover br05 fz14" style="width: 70px;" @click="RuleMatch()">
+          <span style="font-size:.14rem;color:#ccc;">游戏规则</span>
+        </div>
+        <div class="row item-center">
+          <div class="row item-center" style="width: 220px;">
+            <input
+              class="fz14"
+              type="text"
+              placeholder="请输入球队名称"
+              v-model="serchTxt"
+              onkeyup="this.value=this.value.replace(/\s+/g,'')"
+              color="#AAA"
+            >
+            <div class="row center serch-img pointer hover" @click="Serch()">
+              <img src="@/assets/st-imges/serch.png" alt>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+            <div class="row center redraw pointer hover br05" style="margin-right: 20px;" @click="red()">
+              <img src="@/assets/st-imges/redraw.png" alt>
+            </div>
+          </div>
+          <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+            <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+          </div>
+        </div>
+      </div>
+      
+      <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')" class="date row item-center pdg20">
+        <nav class="row datebox allAlignment scroll">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+
+
+      <div class="theBallSize">
+        <div class="theBallSize-list" v-for="(item,index) in data" :key="index">
+          <div class="theBallSize-list-title row allAlignment item-center pdg20">
+            <span>{{item.leagueName}}</span>
+          </div>
+          <!-- 标题栏 -->
+          <div v-for="(items,i) in item.matchData" :key="i">
+            <div class="theBallSize-list-hader row pdg20">
+              <div style="width:26%" class="row item-center allAlignment">
+                <p style="width:100%;padding-right:.3rem;">
+                  <i>{{items.match_date}}</i>
+                  <br>
+                  <span style="color:#F76649">{{items.match_time}}</span>
+                  <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
+                </p>
+                <p
+                  style="font-size:.14rem;color:#fff"
+                  class="theBallSize-list-hader-num row center triangle"
+                  @click="getTournamentPlay(items.match_id)"
+                >{{items.tag}} ></p>
+              </div>
+              <div style="width:35%" class="theBallSize-list-full">
+                <div class="row center">全场</div>
+                <div class="row allAlignment item-center" style="color:#999; padding:0 0.6rem">
+                  <div class="row center list-left">
+                    <span>让球</span>
+                  </div>
+                  <div class="row center list-right">
+                    <span>大小</span>
+                  </div>
+                </div>
+              </div>
+              <div style="width:35%" class="theBallSize-list-full">
+                <div class="row center">上半场</div>
+                <div class="row allAlignment item-center pdg20" style="color:#999;padding:0 0.6rem">
+                  <div class="row center list-left">
+                    <span>让球</span>
+                  </div>
+                  <div class="row center list-right">
+                    <span>大小</span>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="theBallSize-list-body row pdg20" style="position: relative;">
+              <div class="column allAlignment theBallSizeTeam">
+                <span>{{items.home_team}}</span>
+                <span>{{items.guest_team}}</span>
+              </div>
+              <!-- 全场 -->
+              <div
+                class="row allAlignment"
+                style="width:35%;padding: 0.08rem 0;border-right:.01rem solid #ededed;position: relative;"
+              >
+                <!--让球 -->
+                <div class="column allAlignment">
+                  <div
+                    class="row center theball rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'coh'"
+                  >
+                    <div class="row center conditions">
+                      <span>{{e.condition}}</span>
+                    </div>
+                    <div v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'让球')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+
+                  <div
+                    class="row center theball rightAlignment guest"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'cog'"
+                  >
+                    <div class="row center conditions">
+                      <span>{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'让球')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                </div>
+                <!-- 大小 -->
+                <div class="column allAlignment">
+                  <div
+                    class="row center size rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'gsb'"
+                  >
+                    <div class="conditions row center">
+                      <span>大{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'大','进球:大小')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                  <div
+                    class="row center size guest rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'gss'"
+                  >
+                    <div class="conditions row center">
+                      <span>小{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'小','进球:大小')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <!--半场 -->
+              <div
+                class="row allAlignment"
+                style="width:35%;padding: 0.08rem 0;position: relative;"
+              >
+                <!--让球 -->
+                <div class="column allAlignment">
+                  <div
+                    class="row center theball rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'coh_h'"
+                  >
+                    <div class="row center conditions">
+                      <span>{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'让球-上半场')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                  <div
+                    class="row center theball rightAlignment guest"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'cog_h'"
+                  >
+                    <div class="row center conditions">
+                      <span>{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'让球-上半场')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                </div>
+                <!-- 大小 -->
+                <div class="column allAlignment">
+                  <div
+                    class="row center size rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'gsb_h'"
+                  >
+                    <div class="conditions row center">
+                      <span>大{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'大','进球:大小-上半场')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                  <div
+                    class="row center size guest rightAlignment"
+                    v-for="(e,idx) in items.oddsData"
+                    v-if="e.odds_code == 'gss_h'"
+                  >
+                    <div class="conditions row center">
+                      <span>小{{e.condition}}</span>
+                    </div>
+                    <div
+                      v-if="e.odds > 0"
+                      class="theBallSize-list-txt"
+                      @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'小','进球:大小-上半场')"
+                      :class="e.isTrue ? 'col' : ''"
+                    >
+                      <span>{{e.odds}}</span>
+                    </div>
+                    <div v-else class="theBallSize-list-txt">
+                        <img src="@/assets/st-imges/mima.png"/>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div @click="promptInfo()" class="right-img">
+                <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+                <br>
+                <img src="@/assets/st-imges/TheScore.png">
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>     
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "theBallSize",
+  components:{
+    noData
+  },     
+  data() {
+    return {
+      // date: [{ id: "today", title: "今日" }],
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode,
+      data: [], //数据
+      dataList:'',//临时数据
+      lg_id:'',//联赛                                 
+      serchTxt: "",
+      timers:true,
+      noData : false, //暂无数据显示
+      noShow : false, //无数据时隐藏头部
+      limit : '',
+      passLimit : '',
+      date: [{ id: "all", title: "全部" }],//日期
+      dateClick:'all',//激活的日期
+    };
+  },
+  methods: {
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+    /*----------------------------------------------*/
+    //获取赛事数据
+    getAJAX(lg_id,search) {  
+       if(this.$store.getters.getActivity == 'StStringScene'){
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      }else{
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.$store.getters.getActivity,
+          p_code: this.$store.getters.getPaly_code,
+          game_code: this.$store.getters.getBallCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,   //需要
+          lg_id,                                        
+          search
+        })
+        .then(res => {
+          // console.log('数据',res.data.data[0]);
+          if(res.data.data.length > 0  && res.data.status == 1){
+            this.noData = false;
+            //数据匹配判断是否上一次有数据
+            // if(this.dataList.length){
+            //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+            // }
+            this.data = res.data.data[0];
+            let betting = '';
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            this.$store.dispatch("SET_LEAGUECHOOSE", res.data.data[1]);
+            if(this.$store.getters.getActivity == 'StStringScene'){
+              betting = this.$store.getters.getPassBetting;
+            }else{
+              betting = this.$store.getters.getBetting;
+            }
+            this.dataGroup(this.data,betting)
+          }else{
+            this.noData = true;
+            this.data =[];
+          }
+           this.noShow= true;
+           this.$store.dispatch("GETLOADING", false);
+        });
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;      
+      let acty =  this.$store.getters.getActivity;
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      // 串场为单串
+        if(this.$store.getters.getActivity == 'StStringScene'){
+          let betting = this.$store.getters.getPassBetting;
+          if(betting == null){
+            betting = [];
+          }
+          this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }
+            _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+        }
+        // console.log('limit',this.limit)
+        if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+            if(val.match_id == match_id){
+              // 当isTrue值为true时,点击时置为false
+              if(item.id == id){
+                //console.log(item.isTrue)
+                if(item.isTrue == true){
+                  this.$forceUpdate();
+                    item.isTrue = false
+                }else if(item.isTrue = false){
+                  this.$forceUpdate();
+                  item.isTrue = true
+                }else{
+                  this.$forceUpdate();
+                  this.$set(item, "isTrue", item.isTrue ? false : true);
+                }
+              }else{
+              if(item.isTrue == true){
+                  item.isTrue = false;
+                }
+              }
+            }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+        }else{
+          this.data[idx].matchData.forEach(val =>{
+            val.oddsData.forEach(item =>{
+              if(item.id == id){
+                this.$set(item,'isTrue',false)
+              }
+            })
+          })
+        }
+    },
+    //   let BallCode = this.$store.getters.getBallCode;
+    //   let code =  10011;//默认足球
+    //   if(BallCode == 'lq'){
+    //     code = 10012;
+    //   }else if(BallCode == 'bq'){
+    //     code = 10013;
+    //   }else if(BallCode == 'wq'){
+    //     code = 10014;
+    //  }
+    /*------------------------------------------------*/
+    //路由到赛事详情页面
+    getTournamentPlay(match_id) {
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10010);
+    },
+
+    //新开页面展示赛果
+    ResultMatch() {
+      const { href } = this.$router.resolve({
+          name: 'ResultMatch'
+        })
+        window.open(href, '_blank', 'toolbar=yes, width=800, height=900')
+    },
+    //新开页面展示赛事规则
+    RuleMatch() {
+      const { href } = this.$router.resolve({
+          name: 'RuleMatch'
+        })
+        window.open(href, '_blank', 'toolbar=yes, width=800, height=900')
+    },
+
+    /*------------------------------------------------*/
+    //搜索按钮被点击
+    Serch() {                                
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.$store.dispatch("SET_LEAGUEDATA",[]);   
+        this.data= [];
+        this.getAJAX('',this.serchTxt)                 
+      }
+    },
+
+    /*------------------------------------------------*/
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if (this.serchTxt != "") {
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  
+        this.data= [];
+        this.getAJAX();
+      }
+    },
+    /*------------------------------------------------*/
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";                                        //需要
+      this.$store.dispatch("SET_LEAGUEDATA",[]); 
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data= [];
+        this.getAJAX();
+      }
+    },
+
+    /*------------------------------------------------*/
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+
+    /*------------------------------------------------*/
+    // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day = date.getDate() + i < 10 ? "0" + (date.getDate() + i) : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+
+    /*------------------------------------------------*/
+    //切换日期
+    dateActive(str){
+      // this.serchTxt = "";
+      this.dateClick = str;
+      this.data= [];
+      this.getAJAX(this.lg_id,this.serchTxt);  //需要
+    },
+
+  },
+  /**
+   * 页面挂载之前触发
+   */
+  created(){
+    this.fun_date();
+  },
+
+  mounted() {
+    //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+
+    this.$store.dispatch("GETLOADING", true);    
+    this.getAJAX(this.lg_id);
+    this.$store.dispatch("SET_BETTING",[]);
+    let _this = this
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAJAX(_this.lg_id,_this.serchTxt);          
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    //获取选择的联赛数据
+    // getLeagueData(){
+    //   return this.$store.getters.getLeagueData;
+    // },
+    // 过去串式投注数量
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    }   
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.$store.dispatch("SET_LEAGUEDATA",[]);
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);//设置默认值
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }    
+
+    },
+    //监听玩法代码
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   ///this.getAJAX();            
+    // },
+    // //监听球类代码
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   //this.getAJAX();              
+    // },
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },           
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },
+    // getLeagueData(val){
+    //   console.log('val',val)
+    //   if(val){
+
+    //   }
+    // }
+  }
+};
+</script>
+
+<style scoped>
+
+
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.theBallSize {
+  position: relative;
+}
+
+
+.theBallSize-list-title {
+  width: 100%;
+  height: 0.4rem;
+  background: #ccc;
+  font-size: 0.16rem;
+}
+.theBallSize-list-title img {
+  width: 0.22rem;
+  height: 0.22rem;
+  margin-left: 0.2rem;
+}
+.theBallSize-list-hader {
+  min-height: 0.5rem;
+  background: #e5e5e5;
+  font-size: 0.14rem;
+}
+.theBallSize-list-hader-num {
+  width: 0.8rem;
+  height: 0.5rem;
+  background: #bbb;
+}
+.theBallSize-list-hader-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 40%;
+  bottom: -0.05rem;
+  transform: rotate(45deg);
+}
+.theBallSize-list-full div {
+  height: 50%;
+  line-height: 100%;
+}
+.theBallSize-list-body {
+  background: #fcfcfc;
+  font-size: 0.14rem;
+  border-bottom: 1px solid #e5e5e5;
+}
+.theBallSize-list-body:hover {
+  background: #fff5e9;
+}
+.theBallSizeTeam {
+  width: 26%;
+  padding: 0.1rem 0;
+  min-height: 0.9rem;
+  flex-wrap: wrap;
+}
+.theBallSize-list-box {
+  padding: 0.1rem 0.08rem;
+}
+.theBallSize-list-box div {
+  height: 0.3rem;
+  line-height: 0.3rem;
+}
+.theBallSize-list-box span {
+  display: inline-block;
+  width: 0.7rem;
+}
+.theBallSize-list-txt {
+  width: 0.48rem !important;
+  height: 0.3rem;
+  text-align: center;
+  line-height: 0.3rem;
+  background: #fcfcfc;
+  border-radius: 0.05rem;
+  border: 0.01rem solid #eee;
+  cursor: pointer;
+}
+.theBallSize-list-txt:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.conditions {
+  color: #f76649;
+  margin-right: .1rem;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  /* background: #ddd;
+  color: #333; */
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+   color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+.theball {
+  position: absolute;
+  left: 0%;
+  top: 8%;
+  width: 1rem;
+}
+.guest {
+  top: 60%;
+}
+.size {
+  position: absolute;
+  left: 50%;
+  width: 1.2rem;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: 0.15rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/21/21eac2679471d058b1440c5e486df00423e090d3.svn-base


+ 54 - 0
.svn/pristine/23/23665af6f1b5aabbcff80f6f9bc5e29490a0d3e7.svn-base

@@ -0,0 +1,54 @@
+'use strict'
+const chalk = require('chalk')
+const semver = require('semver')
+const packageConfig = require('../package.json')
+const shell = require('shelljs')
+
+function exec (cmd) {
+  return require('child_process').execSync(cmd).toString().trim()
+}
+
+const versionRequirements = [
+  {
+    name: 'node',
+    currentVersion: semver.clean(process.version),
+    versionRequirement: packageConfig.engines.node
+  }
+]
+
+if (shell.which('npm')) {
+  versionRequirements.push({
+    name: 'npm',
+    currentVersion: exec('npm --version'),
+    versionRequirement: packageConfig.engines.npm
+  })
+}
+
+module.exports = function () {
+  const warnings = []
+
+  for (let i = 0; i < versionRequirements.length; i++) {
+    const mod = versionRequirements[i]
+
+    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
+      warnings.push(mod.name + ': ' +
+        chalk.red(mod.currentVersion) + ' should be ' +
+        chalk.green(mod.versionRequirement)
+      )
+    }
+  }
+
+  if (warnings.length) {
+    console.log('')
+    console.log(chalk.yellow('To use this template, you must update following to modules:'))
+    console.log()
+
+    for (let i = 0; i < warnings.length; i++) {
+      const warning = warnings[i]
+      console.log('  ' + warning)
+    }
+
+    console.log()
+    process.exit(1)
+  }
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/23/23c50241d8d139d47e5772878958b4fcfd06fd9b.svn-base


+ 413 - 0
.svn/pristine/24/24f8b152cbf88951eb1710292418401be8225fbb.svn-base

@@ -0,0 +1,413 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div v-if="obj.a ">
+        <div class="tit">
+          <span>总分:大/小</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data"  v-if="item.odds_code == 'tnb'">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code == 'tns'">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.b ">
+        <div class="tit">
+          <span>总分:大/小-上半场</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_h') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-上半场')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_h')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-上半场')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.c ">
+        <div class="tit">
+          <span>总分:大/小-第一节</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_1') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-第一节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_1')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-第一节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.d ">
+        <div class="tit">
+          <span>总分:大/小-第二节</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_2') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-第二节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_2')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-第二节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.e ">
+        <div class="tit">
+          <span>总分:大/小-第三节</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_3') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-第三节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_3')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-第三节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.f ">
+        <div class="tit">
+          <span>总分:大/小-第四节</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_4') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-第四节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_4')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-第四节')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+      <div v-if="obj.g ">
+        <div class="tit">
+          <span>总分:大/小-前五局</span>
+        </div>
+        <div class="playCode ">
+          <div class="row item-center">
+            <div class="teamName wrap">大</div>
+            <div class="row allAlignment " >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tnb')  && item.odds_code.endsWith('_5') ">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'大','总分:大/小-前五局')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">小</div>
+            <div class="row allAlignment" >
+              <div class="row center obbsBox rightAlignment" v-for="(item,index) in data" v-if="item.odds_code.startsWith('tns')  && item.odds_code.endsWith('_5')">
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'小','总分:大/小-前五局')">
+                  <span >{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div> 
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data(){
+    return{
+      title:'TN',
+      data:[],//数据源
+      isData:'',//
+      guest_team:'',//客队名
+      home_team:'',//主队名
+      obj:'',//
+      match_id:'',
+      limit:'',//投注数量
+      lg_id:'',
+    }
+  },
+  /***
+  * 方法
+  */
+  methods:{
+    //玩法分类
+    playGrouping(data){
+      let obj={};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e=>{
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="TN" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        e.lg_id = this.lg_id;
+        console.log('odds_code:', e.odds_code)
+        if(e.odds_code == 'tnb'||e.odds_code == 'tns'){
+          obj.a= true
+        }else if(e.odds_code.endsWith('_h')){
+          obj.b= true;
+        }else if(e.odds_code.endsWith('_1')){
+          obj.c= true;
+        }else if(e.odds_code.endsWith('_2')){
+          obj.d= true;
+        }else if(e.odds_code.endsWith('_3')){
+          obj.e= true;
+        }else if(e.odds_code.endsWith('_4')){
+          obj.f= true;
+        }else if(e.odds_code.endsWith('_5')){
+          obj.g= true;
+        }
+      })
+      this.obj = obj;
+    },
+
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index,id,name,playName){
+      if(this.data[index].isTrue){
+        this.$set(this.data[index],'isTrue',false);
+      }else{
+        this.$set(this.data[index],'isTrue',true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName ={
+        home:this.home_team,
+        guest:this.guest_team
+      }
+      this.$public.publicBetMethod(this.data,this.title,id,index,betting,teamName,playName,name,this.match_id,ballId,this.limit,function(data,type){
+        if(type){
+          _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+        }
+        _this.$store.dispatch("SET_BETTING",[]);
+        _this.$store.dispatch("SET_BETTING",data);
+      })
+    }
+  },
+  /**
+  * 计算属性
+  */
+  computed: {
+    getGameRatio(){
+      return this.$store.getters.getGameRatio
+    },
+    //获取投注数据
+    getBetting(){
+      return this.$store.getters.getBetting
+    },
+    //获取投注数据数量
+    getLimit(){
+      return this.$store.getters.getLimit
+    }
+
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val){
+      this.lg_id = val.lg_id
+       this.match_id = val.match_id;
+        this.guest_team = val.guest_team;
+        this.home_team = val.home_team
+        console.log('Data', val)
+        val.oddsData.forEach(e => {
+            if(e[0].p_code == this.title){
+              this.data = e
+              this.isData = true;
+              this.playGrouping(this.data );
+            }
+        });
+      //console.log(this.data);
+    },
+     //投注数据监听和处理
+    getBetting(val){
+      if(val.length > 0){
+        let id = this.$store.getters.getDeleteType;
+        for(let i= 0; i < val.length; i++ ){
+          if(val[i].title == this.title){
+            for(let j = 0;j < this.data.length ;j++){
+              if(this.data[j].id == id){
+                this.$set(this.data[j],'isTrue',false)
+                break;
+              }
+            }
+            break;
+          }
+        }
+        
+      }else{
+        for(let j = 0;j < this.data.length ;j++){
+          if(this.data[j].isTrue){
+            this.$set(this.data[j],'isTrue',false)
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val){
+      this.limit = val
+    },
+    
+  },
+};
+</script>
+<style scoped>
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.2rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+  font-size: .16rem;
+  padding: 0 .1rem;
+}
+.obbsBox{
+  width: 1.3rem;
+  min-height: 0.4rem;
+}
+.teamName{
+  width: 1.5rem;
+}
+.odds {
+    display: inline-block;
+    width: 0.48rem;
+    height: 0.3rem;
+    font-size: .14rem;
+    border: 0.01rem solid #ccc;
+    line-height: 0.3rem;
+    text-align: center;
+    border-radius: 0.05rem;
+    cursor: pointer;
+}
+.odds:hover,
+.odds:hover span {
+     background: #ddd;
+    color: #f76649;
+}
+.condation {
+  color: #f76649;
+  font-size: .14rem;
+  font-weight: bold;
+  margin-right: 0.1rem;
+}
+.guest .odds span {
+  line-height: 0.44rem;
+}
+/*玩法加注样式*/
+.chooseStyle{
+  background: #F76649;
+  color: #fff;
+  border-color: #F76649;
+}
+</style>

+ 959 - 0
.svn/pristine/25/251bd18e1d7458874509e4bb1b022f5eaf880a90.svn-base

@@ -0,0 +1,959 @@
+<template>
+  <div>
+    <div class="serch row item-center allAlignment">
+      <div class="row item-center">
+        <div class="row item-center">
+          <input
+            class="fz14"
+            type="text"
+            placeholder="请输入联赛和球队名称"
+            v-model="serchTxt"
+            onkeyup="this.value=this.value.replace(/\s+/g,'')"
+            color="#AAA"
+          />
+          <div class="row center serch-img pointer hover" @click="Serch()">
+            <img src="@/assets/st-imges/serch.png" alt />
+          </div>
+        </div>
+        <div class="row item-center">
+          <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+        </div>
+      </div>
+      <div class="row center redraw pointer hover br05" @click="red()">
+        <img src="@/assets/st-imges/redraw.png" alt />
+      </div>
+    </div>
+    <!-- 标题 -->
+    <div style="height:.5rem;background:#888;" class="pdg20 row allAlignment">
+      <div  class="row item-center"
+        style="height:100%;color:#FFF;font-size:.16rem;font-weight:bold;"
+      >网球滚球</div>
+      <div class="row item-center">
+        <p style="font-size:.14rem;">显示</p>
+        <div
+          style="width:.5rem;height:.3rem;background:#AAA;color:#FFF;margin-left:.13rem;font-size:.14rem;"
+          class="row center br05"
+        >盘数</div>
+      </div>
+    </div>
+    <div class="tennisRollBall" v-for="(item,index) in data" :key="item.id">
+      <!-- 联赛名 -->
+      <div class="tennisRollBall-title row item-center pdg20">{{item.leagueName}}</div>
+      <div class="tennisRollBall-title-list" v-for="(items,i) in item.matchData" :key="items.id">
+        <div class="tennisRollBall-title-list-title pdg20 row">
+          <div style="width:30%;height:100%" class="row allAlignment item-center">
+            <span
+              style="color:#F76649"
+              v-if="items.home_player_score != null"
+            >{{items.home_player_score}}</span>
+            <span style="color:#F76649" v-else>0</span>
+            <span>-</span>
+            <span
+              style="color:#F76649"
+              v-if="items.guest_player_score != null"
+            >{{items.guest_player_score}}</span>
+            <span style="color:#F76649" v-else>0</span>
+            <div
+              class="row center triangle tennisRollBall-title-list-title-num"
+              style="background:#BBB;width:.6rem;height:.5rem;color:#fff;"
+              @click="getTournamentPlay(items.match_id)"
+            >{{items.tag}} ></div>
+          </div>
+          <div style="color:#666;width:70%" class="pdg20 row allAlignment item-center">
+            <p>全场</p>
+            <p>让盘</p>
+            <p>让局</p>
+            <p>局-大/小盘</p>
+          </div>
+        </div>
+        <div class="row" style="border-bottom:.01rem solid #EDEDED;height:100%;">
+          <!-- 全场 -->
+          <div
+            style="width:30%;height:100%;margin-left:.1rem;padding:.1rem 0;"
+            class="tennisRollBall-list-name"
+          >
+            <!-- <p style="color:#2D8320">第一盘</p> -->
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.home_team}}
+            </p>
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.guest_team}}
+            </p>
+          </div>
+          <div style="position: relative;width:70%">
+            <div
+              style="height:100%;"
+              class="row allAlignment item-center"
+              v-for="(itemList,idx) in items.full_oddsData"
+              :key="itemList.id"
+            >
+              <!-- 独赢 -->
+              <!-- <div v-if="itemList.odds_code == 'ch' || itemList.odds_code == 'cg'">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ch'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'cg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div> -->
+
+              <!-- 让盘 -->
+              <div v-if="itemList.odds_code.startsWith('lb')">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'lbh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'lbg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 让局 -->
+              <div v-if="itemList.odds_code.startsWith('ld')">
+                <p
+                  class="singleAndDouble-list-btn hover home concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh' "
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldg' "
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 大小 -->
+              <div v-if="itemList.odds_code.startsWith('tn')">
+                <p
+                  class="singleAndDouble-list-btn hover home total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'tnb'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'tns'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div
+          class="row"
+          style="border-bottom:.01rem solid #EDEDED;height:100%;"
+          v-if="items.one_oddsData"
+        >
+          <!-- 第一局 -->
+          <div
+            style="width:30%;height:100%;margin-left:.1rem;padding:.1rem 0;"
+            class="tennisRollBall-list-name"
+          >
+            <p style="color:#2D8320">第一盘</p>
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.home_team}}
+            </p>
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.guest_team}}
+            </p>
+          </div>
+          <div style="position: relative;width:70%">
+            <div
+              style="height:100%;"
+              class="row allAlignment item-center"
+              v-for="(itemList,idx) in items.one_oddsData"
+              :key="itemList.id"
+            >
+              <!-- 独赢 -->
+              <!-- <div v-if="itemList.odds_code == 'ch' || itemList.odds_code == 'cg'">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ch'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'cg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div> -->
+
+              <!-- 让盘 -->
+              <div v-if="itemList.odds_code.startsWith('ld')">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 让局 -->
+              <div v-if="itemList.odds_code.startsWith('lb')">
+                <p
+                  class="singleAndDouble-list-btn hover home concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 大小 -->
+              <div v-if="itemList.odds_code.startsWith('tn')">
+                <p
+                  class="singleAndDouble-list-btn hover home total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == ' tnb'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'tns'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','one')"
+                >{{itemList.odds}}</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div
+          class="row"
+          style="border-bottom:.01rem solid #EDEDED;height:100%;"
+          v-if="items.two_oddsData"
+        >
+          <!-- 第二局 -->
+          <div
+            style="width:30%;height:100%;margin-left:.1rem;padding:.1rem 0;"
+            class="tennisRollBall-list-name"
+          >
+            <p style="color:#2D8320">第二盘</p>
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.home_team}}
+            </p>
+            <p style="padding-left:0.2rem;line-height: .4rem;">
+              <span style="margin-right:.1rem;background:#AFE13B;"></span>
+              {{items.guest_team}}
+            </p>
+          </div>
+          <div style="position: relative;width:70%">
+            <div
+              style="height:100%;"
+              class="row allAlignment item-center"
+              v-for="(itemList,idx) in items.two_oddsData"
+              :key="itemList.id"
+            >
+                 <!-- 独赢 -->
+              <!-- <div v-if="itemList.odds_code == 'ch' || itemList.odds_code == 'cg'">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ch'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'cg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','all')"
+                >{{itemList.odds}}</p>
+              </div> -->
+
+              <!-- 让盘 -->
+              <div v-if="itemList.odds_code.startsWith('ld')">
+                <p
+                  class="singleAndDouble-list-btn hover home dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest dishes"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldg'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 让局 -->
+              <div v-if="itemList.odds_code.startsWith('lb')">
+                <p
+                  class="singleAndDouble-list-btn hover home concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest concede"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'ldh'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+              </div>
+              <!-- 大小 -->
+              <div v-if="itemList.odds_code.startsWith('tn')">
+                <p
+                  class="singleAndDouble-list-btn hover home total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'tnb'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+                <p
+                  class="singleAndDouble-list-btn hover guest total"
+                  :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                  v-if="itemList.odds_code == 'tns'"
+                  @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球','two')"
+                >{{itemList.odds}}</p>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div v-if="items.result_mark" style="height:.5rem;" class="row item-center pdg20 allAlignment">
+          <div style="font-size:.14rem; color:#666;" class="tennisRollBall-list-footer-num">
+            <span :class="{chageColor :items.result_mark.schedule[items.result_mark.schedule.length-1] == 1}" >{{items.result_mark.sc_1th_H}}-{{items.result_mark.sc_1th_C}}</span>
+            <span :class="{chageColor :items.result_mark.schedule[items.result_mark.schedule.length-1]== 2 }" >{{items.result_mark.sc_2th_H}}-{{items.result_mark.sc_2th_C}}</span>
+            <span :class="{chageColor :items.result_mark.schedule[items.result_mark.schedule.length-1]== 3 }" >{{items.result_mark.sc_3th_H}}-{{items.result_mark.sc_3th_C}}</span>
+            <span :class="{chageColor :items.result_mark.schedule[items.result_mark.schedule.length-1]== 4 }" v-if="items.result_mark.best == 5" style="color:#F76649">{{items.result_mark.sc_4th_H}}-{{items.result_mark.sc_4th_C}}</span>
+            <span :class="{chageColor :items.result_mark.schedule[items.result_mark.schedule.length-1]== 5 }" v-if="items.result_mark.best == 5" style="color:#F76649">{{items.result_mark.c_5th_H}}-{{items.result_mark.sc_5th_C}}</span>
+          </div>
+          <div style="color:#666;">
+            <span v-if="items.result_mark.best == 3">三盘两胜</span>
+            <span v-else="items.result_mark.best == 5">五盘三胜</span>
+            |
+            <span>总局数</span>
+            <span style="color:#F76649">{{items.result_mark.game_num_H}} - {{items.result_mark.game_num_C}}({{items.result_mark.game_num_H*1 + items.result_mark.game_num_C*1}})</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData />
+    </div>
+  </div>
+</template>
+
+<script>
+import noData from "@/components/noData";
+export default {
+  name: "tennisRollBall",
+  components: {
+    noData
+  },
+  data() {
+    return {
+      serchTxt: "",
+      pCode: this.$store.getters.getPaly_code,
+      activity: this.$store.getters.getActivity, //传入接口的值
+      ballCode: this.$store.getters.getBallCode,
+      noData: false, //暂无数据显示
+      timers: true, //轮询开关
+      lg_id: "", //联赛
+      data: [],
+      limit: "" //投注数据长度
+    };
+  },
+  /**
+   * 组件内函数方法
+   */
+  methods: {
+    getTournamentPlay(match_id) {
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10014);
+    },
+    getAjax(lg_id, search) {
+      if (this.$store.getters.getActivity == "StStringScene") {
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      } else {
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.activity,
+          game_code: this.ballCode
+        })
+        .then(res => {
+          // console.log('res',res)
+          if (res.data.data.length > 0 && res.data.status == 1) {
+            this.data = res.data.data[0];
+            console.log('滚球数据',this.data);
+            this.noData = false;
+            this.dataJosn(this.data);
+            this.dataGroup(this.data);
+          } else {
+            this.noData = true;
+            this.noShow = false;
+          }
+          this.$store.dispatch("GETLOADING", false);
+        });
+    },
+    //
+    dataJosn(data){
+      data.forEach(e=>{
+        e.matchData.forEach(res=>{
+          res.result_mark  = JSON.parse(res.result_mark);
+          console.log(res.result_mark)
+        })
+      })
+    },
+    // 轮询之后添加数据选中效果
+    dataGroup(data) {
+      let betting = this.$store.getters.getBetting;
+      if (betting != null && betting.length > 0) {
+        data.forEach(e => {
+          e.matchData.forEach(k => {
+            if (
+              k.full_oddsData != null &&
+              k.full_oddsData != undefined &&
+              k.full_oddsData.length > 0
+            ) {
+              k.full_oddsData.forEach(item => {
+                betting.forEach(i => {
+                  i.data.forEach(j => {
+                    if (item.id == j.id) {
+                      item.isTrue = true;
+                    }
+                  });
+                });
+              });
+            }
+            if (
+              k.one_oddsData != null &&
+              k.one_oddsData != undefined &&
+              k.one_oddsData.length > 0
+            ) {
+              k.one_oddsData.forEach(item => {
+                betting.forEach(i => {
+                  i.data.forEach(j => {
+                    if (item.id == j.id) {
+                      item.isTrue = true;
+                    }
+                  });
+                });
+              });
+            }
+            if (
+              k.two_oddsData != null &&
+              k.two_oddsData != undefined &&
+              k.two_oddsData.length > 0
+            ) {
+              k.two_oddsData.forEach(item => {
+                betting.forEach(i => {
+                  i.data.forEach(j => {
+                    if (item.id == j.id) {
+                      item.isTrue = true;
+                    }
+                  });
+                });
+              });
+            }
+          });
+        });
+      }
+    },
+    //
+    /**
+     * 处理选中样式
+     * index data下标
+     * i 第二层下标
+     * id 玩法ID
+     * status all 为全场 one 为第一场 two 为第二场
+     */
+    selChange(index, i, id, status) {
+      if (this.limit < 10) {
+        if (status == "all") {
+          this.data[index].matchData[i].full_oddsData.forEach(res => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+            }
+          });
+        } else if (status == "one") {
+          this.data[index].matchData[i].one_oddsData.forEach(res => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+            }
+          });
+        } else if (status == "two") {
+          this.data[index].matchData[i].two_oddsData.forEach(res => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+            }
+          });
+        }
+      } else {
+        if (status == "all") {
+          this.data[index].matchData[i].full_oddsData.forEach(item => {
+            if (item.id == id) {
+              this.$set(item, "isTrue", false);
+            }
+          });
+        } else if (status == "one") {
+          this.data[index].matchData[i].one_oddsData.forEach(item => {
+            if (item.id == id) {
+              this.$set(item, "isTrue", false);
+            }
+          });
+        } else if (status == "two") {
+          this.data[index].matchData[i].two_oddsData.forEach(item => {
+            if (item.id == id) {
+              this.$set(item, "isTrue", false);
+            }
+          });
+        }
+      }
+    },
+    // 选中添加投注数据
+    selection(
+      index,
+      i,
+      idx,
+      id,
+      p_code,
+      match_id,
+      homeName,
+      guestName,
+      name,
+      playName,
+      status
+    ) {
+      // console.log(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName,status)
+      let ballId = this.$store.getters.getBallCode;
+      let acty = this.$store.getters.getActivity;
+      let betting = this.$store.getters.getBetting;
+      let data = this.data;
+      let isAre = true;
+      let isAdd = true,
+        isAlert = false;
+      let obj = {
+        title: p_code,
+        data: ""
+      };
+      if (status == "all") {
+        data[index].matchData[i].full_oddsData[idx].home_team = homeName;
+        data[index].matchData[i].full_oddsData[idx].guest_team = guestName;
+        data[index].matchData[i].full_oddsData[idx].playName = playName;
+        data[index].matchData[i].full_oddsData[idx].name = name;
+        data[index].matchData[i].full_oddsData[idx].ballId = ballId;
+        obj.data = [this.data[index].matchData[i].full_oddsData[idx]];
+      } else if (status == "one") {
+        data[index].matchData[i].one_oddsData[idx].home_team = homeName;
+        data[index].matchData[i].one_oddsData[idx].guest_team = guestName;
+        data[index].matchData[i].one_oddsData[idx].playName = playName;
+        data[index].matchData[i].one_oddsData[idx].name = name;
+        data[index].matchData[i].one_oddsData[idx].ballId = ballId;
+        obj.data = [this.data[index].matchData[i].one_oddsData[idx]];
+      } else if (status == "two") {
+        data[index].matchData[i].two_oddsData[idx].home_team = homeName;
+        data[index].matchData[i].two_oddsData[idx].guest_team = guestName;
+        data[index].matchData[i].two_oddsData[idx].playName = playName;
+        data[index].matchData[i].two_oddsData[idx].name = name;
+        data[index].matchData[i].two_oddsData[idx].ballId = ballId;
+        obj.data = [this.data[index].matchData[i].two_oddsData[idx]];
+      }
+      // console.log("limit", this.limit);
+      // if(this.limit < 10){
+      if (betting.length > 0) {
+        betting.forEach(e => {
+          if (e.title == p_code) {
+            e.data.forEach((res, num) => {
+              if (res.id == id) {
+                e.data.splice(num, 1);
+                isAdd = false;
+              }
+            });
+            if (isAdd) {
+              if (this.limit >= 10) {
+                this.$dialog.toast({
+                  mes: "亲,超出表格上限啦。",
+                  timeout: 2000
+                });
+              } else {
+                if (status == "all") {
+                  e.data.push(this.data[index].matchData[i].full_oddsData[idx]);
+                } else if (status == "one") {
+                  e.data.push(this.data[index].matchData[i].one_oddsData[idx]);
+                } else if (status == "two") {
+                  e.data.push(this.data[index].matchData[i].two_oddsData[idx]);
+                }
+              }
+            }
+            isAre = false;
+          }
+        });
+        if (isAre) {
+          if (this.limit >= 10) {
+            this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          } else {
+            betting.push(obj);
+          }
+        }
+      } else {
+        betting.push(obj);
+      }
+      this.selChange(index, i, id, status);
+      this.$store.dispatch("SET_BETTING", []);
+      this.$store.dispatch("SET_BETTING", betting);
+      // console.log(this.$store.getters.getBetting)
+
+      // }
+      // else{
+
+      // this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+      // }
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA", []); //需要拷贝
+        this.getAjax("", this.serchTxt); //需要拷贝
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if (this.serchTxt != "") {
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA", []); //需要拷贝
+        this.getAjax();
+      }
+    },
+    // 刷新
+    red() {
+      this.$store.dispatch("SET_LEAGUEDATA", []); //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = "";
+        this.getAjax();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10014);
+    }
+  },
+  mounted() {
+    this.$store.dispatch("SET_BETTING", []);
+    //获取选择的联赛id
+    if (this.$store.getters.getLeagueData.length > 0) {
+      if (this.$store.getters.getLeagueData.length == 1) {
+        this.lg_id = this.$store.getters.getLeagueData[0];
+      } else {
+        this.lg_id = this.$store.getters.getLeagueData.join(",");
+      }
+    }
+
+    this.getAjax(this.lg_id);
+    let _this = this;
+    this.$public.ajaxTimerFun(timing => {
+      if (_this.timers) {
+        _this.getAjax(_this.lg_id, _this.serchTxt);
+      } else {
+        clearInterval(timing);
+      }
+    });
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // 单个删除
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  watch: {
+    getActy(val) {
+      // this.activity = val;
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING", []);
+    },
+    getDeleteType(val) {
+      let jumpOut = false;
+      for (var i = 0; i < this.data.length; i++) {
+        for (var k = 0; k < this.data[i].matchData.length; k++) {
+          if (
+            this.data[i].matchData[k].one_oddsData &&
+            this.data[i].matchData[k].one_oddsData.length > 0
+          ) {
+            for (
+              var j = 0;
+              j < this.data[i].matchData[k].one_oddsData.length;
+              j++
+            ) {
+              if (this.data[i].matchData[k].one_oddsData[j].id == val) {
+                this.$forceUpdate();
+                this.data[i].matchData[k].one_oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+            }
+          }
+
+          for (
+            var j = 0;
+            j < this.data[i].matchData[k].full_oddsData.length;
+            j++
+          ) {
+            if (this.data[i].matchData[k].full_oddsData[j].id == val) {
+              this.$forceUpdate();
+              this.data[i].matchData[k].full_oddsData[j].isTrue = false;
+              jumpOut = true;
+              break;
+            }
+          }
+          if (
+            this.data[i].matchData[k].two_oddsData &&
+            this.data[i].matchData[k].two_oddsData.length > 0
+          ) {
+            for (
+              var j = 0;
+              j < this.data[i].matchData[k].two_oddsData.length;
+              j++
+            ) {
+              if (this.data[i].matchData[k].two_oddsData[j].id == val) {
+                this.$forceUpdate();
+                this.data[i].matchData[k].two_oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+            }
+          }
+          if (jumpOut == true) {
+            break;
+          }
+        }
+        if (jumpOut == true) {
+          break;
+        }
+      }
+    },
+    getLimit(val) {
+      // console.log("val", val);
+      this.limit = val;
+      if (val == 0) {
+        this.data.forEach(e => {
+          e.matchData.forEach(k => {
+            if (
+              k.full_oddsData != null &&
+              k.full_oddsData != undefined &&
+              k.full_oddsData.length > 0
+            ) {
+              k.full_oddsData.forEach(item => {
+                this.$forceUpdate();
+                item.isTrue = false;
+              });
+            }
+            if (
+              k.one_oddsData != null &&
+              k.one_oddsData != undefined &&
+              k.one_oddsData.length > 0
+            ) {
+              k.one_oddsData.forEach(item => {
+                this.$forceUpdate();
+                item.isTrue = false;
+              });
+            }
+            if (
+              k.two_oddsData != null &&
+              k.two_oddsData != undefined &&
+              k.two_oddsData.length > 0
+            ) {
+              k.two_oddsData.forEach(item => {
+                this.$forceUpdate();
+                item.isTrue = false;
+              });
+            }
+          });
+        });
+      }
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.tennisRollBall-title {
+  height: 0.5rem;
+  color: #fff;
+  background: #aaa;
+}
+.tennisRollBall-title-list {
+  background: #fff;
+  font-size: 0.14rem;
+}
+.tennisRollBall-title-list-title {
+  height: 0.5rem;
+  background: #e5e5e5;
+  color: #666;
+  cursor: pointer;
+}
+.tennisRollBall-title-list-title-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 42%;
+  bottom: -0.05rem;
+  transform: rotate(45deg);
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #ddd;
+  color: #333;
+}
+.chageColor{
+  color:#f76649 !important;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff;
+}
+.pointer {
+  cursor: pointer;
+}
+.tennisRollBall-list-name p {
+  width: 100%;
+}
+.tennisRollBall-list-name p span {
+  display: inline-block;
+  width: 0.08rem;
+  height: 0.08rem;
+  border-radius: 50%;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0rem;
+  bottom: 0.1rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+.singleAndDouble-list-btn {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.tennisRollBall-list-footer-num span {
+  margin-right: 0.1rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff;
+}
+.home {
+  position: absolute;
+  bottom: 55%;
+}
+.guest {
+  position: absolute;
+  bottom: 12%;
+}
+.dishes {
+  left: 28%;
+}
+.concede {
+  left: 55%;
+}
+.total {
+  left: 85%;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+</style>

BIN=BIN
.svn/pristine/25/25ec199ddc903fc9f1fcf6c440d3aa6c38eba008.svn-base


BIN=BIN
.svn/pristine/26/26c258e33b1ab1a160703fbc3aed6dd5946eb33b.svn-base


BIN=BIN
.svn/pristine/29/29773ba816457eab251845337f3a41ad644f9b76.svn-base


+ 44 - 0
.svn/pristine/2c/2c242611645aa05ca084651152512d12103cb7db.svn-base

@@ -0,0 +1,44 @@
+// The Vue build version to load with the `import` command
+// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
+import 'babel-polyfill';
+import Vue from 'vue'
+import App from './App'
+import router from './router';
+import store from './store';
+import YDUI from 'vue-ydui'; /* 相当于import YDUI from 'vue-ydui/ydui.rem.js' */
+import 'vue-ydui/dist/ydui.rem.css';
+import publicFun from '@/assets/publicFunction';
+import ElementUI from 'element-ui'
+import 'element-ui/lib/theme-chalk/index.css'
+Vue.use(YDUI);
+Vue.use(ElementUI);
+
+Vue.config.productionTip = false;
+//  引入api
+import axios from 'axios' // 接口封装,请求拦截
+import ports from './api/ports.js'
+import http from './api/http.js'
+
+Vue.prototype.$ports = ports
+Vue.prototype.$http = http
+Vue.prototype.$public= publicFun
+
+// 使用之后报错,必须修改原型链
+// Vue.use(axios)
+Vue.prototype.$axios = axios
+// //设置默认活动状态
+// publicFun.setCache('activity','home');
+
+// //阻止报错[WDS] Disconnected!
+// if (module.hot) {
+//   module.hot.accept();
+// }
+
+/* eslint-disable no-new */
+new Vue({
+  el: '#app',
+  router,
+  store,
+  components: { App },
+  template: '<App/>'
+})

+ 605 - 0
.svn/pristine/30/30030f0f8dbd4fda0f6c5b8cb3efb4b04cf6487d.svn-base

@@ -0,0 +1,605 @@
+<template>
+  <div>
+    <div class="header">
+      <div class="title">
+        <div @click="returnEvent()" class="row item-center">
+          <i class="backSingPage"></i>
+          <span class="header-title triangle">滚球{{title}}</span>
+          <span style="color:#333;margin-left:.3rem;">{{data.leagueName}}</span>
+        </div>
+        <div>
+          <i></i>
+          <div class="redraw">
+            <i class="refresh"></i>
+          </div>
+        </div>
+      </div>
+        <div class="tennisHead">
+        <div style="padding:0.1rem;">
+          <div class="match">
+            <!-- <div class="tit">
+              <span>ATP意大利电信杯</span>
+            </div> -->
+            <div class="ballTable">
+              <div class="listHead row allAlignment">
+                <div class="txt-c-0">
+                  <div class="section">{{scoreDetails.cp}}<span v-if="scoreDetails.triangle == 'sh'">▼</span><span v-else>▲</span></div>
+                </div>
+                <div class="row ">
+                  <span class="session row center" :class="{current:scoreDetails.cp ==i+1} " v-for="(tiem,i) in 9">
+                    {{i+1}}
+                  </span>
+                  <!-- <span class="mg-5">盘</span> -->
+                  <span class="mg-session row center">加时</span>
+                  <span class="mg-session row center">当前</span>
+                  <span class="mg-session row center">总局数</span>
+                </div>
+              </div>
+
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold" :class="{attack:scoreDetails.triangle =='sa'}">•</div>
+                  <div class="team" style="text-align:left;">{{data.home_team}}</div>
+                </div>
+                <div class="row">
+                 <span class="session row center" :class="{current:scoreDetails.cp ==i+1} " v-for="(tiem,i) in scoreDetails.ps"
+                 :key="i">
+                    {{tiem.a}}
+                  </span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">0</span>
+                  <span class=" mg-session row center mark" v-if="scoreDetails.cu">{{scoreDetails.cu.a}}</span>
+                  <span class="mg-session row center mark " v-if="scoreDetails.ft">{{scoreDetails.ft.a}}</span>
+                </div>
+              </div>
+              
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold"  :class="{attack:scoreDetails.triangle =='sh'} ">•</div>
+                  <div class="team" style="text-align:left;">{{data.guest_team}}</div>
+                </div>
+                <div class="row">
+                  <span class="session row center" :class="{current:scoreDetails.cp ==i+1} " v-for="(tiem,i) in scoreDetails.ps">
+                    {{tiem.h}}
+                  </span>
+            
+                  <span class="mg-session row center " style="  background:rgba(255, 165, 0, 0.49);">0</span>
+                  <span class="mg-session row center mark" v-if="scoreDetails.cu">{{scoreDetails.cu.h}}</span>
+                  <span class="mg-session row center mark" v-if="scoreDetails.cu">{{scoreDetails.ft.h}}</span>
+                </div>
+              </div>
+               <div class="listHead row allAlignment"> 
+                  <div class="row center">
+                    <div  class="eliminate ">
+                      <span :class="{spanBox:scoreDetails.tb}" style="margin-left:.11rem;"></span>
+                      <div style="width:.31rem;" class="row allAlignment">
+                        <span :class="{spanBox:scoreDetails.sb}"></span>
+                        <span :class="{spanBox:scoreDetails.fb}"></span>
+                      </div>
+                    </div>
+                  </div>
+                 <div>
+                   <span>出局:</span>
+                   <span>{{scoreDetails.ot}}</span>
+                 </div>
+               </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="welcome row NavSlide">
+        <nav class="scroll">
+          <div class="row center" v-for="(itme,$index) in key" @click="toggleNav($index)">
+            <span :class="{active:$index == active}">{{itme}}</span>
+          </div>
+        </nav>
+      </div>
+    </div>
+    <div class="cont">
+      <!-- <div class="letball"> -->
+      <!-- 让球 -->
+      <div v-show=" Single =='让球'|| isAll">
+        <concede/>
+      </div>
+      <!-- 进球:大/小 -->
+      <div v-show=" Single =='进球:大/小'|| isAll">
+        <goalsSize/>
+      </div>
+      <!-- 总分:大/小 -->
+      <div v-show=" (Single =='总分:大/小'|| Single =='总得分:大/小')|| isAll">
+        <totalScore/>
+      </div>
+      <!-- <letBall/> -->
+      <!-- 独赢 -->
+      <div v-show=" (Single =='独赢'|| Single =='独赢盘')  || isAll">
+        <winAlone/>
+      </div>
+      <!-- 波胆 -->
+      <div v-show=" Single =='波胆'|| isAll">
+        <waveBladder/>
+      </div>
+      <!-- 总进球 -->
+      <div v-show=" Single =='总进球数'|| isAll">
+        <sumGoal/>
+      </div>
+      <!-- 首粒入球-- -->
+      <div v-show=" Single =='首粒入球/最后一粒入球'|| isAll">
+        <goalEntry/>
+      </div>
+      <!-- 半场/全场 -->
+      <div v-show=" Single =='半场/全场'|| isAll">
+        <halfCount/>
+      </div>
+      <!-- 总分:单双 -->
+      <div v-show="(Single =='总得分:单/双'|| Single =='总分:单双'|| Single =='进球:单/双' || Single == '总局数:单/双' )|| isAll">
+        <scoreSingleDouble/>
+      </div>
+      <!-- 球队进球数:大/小 -->
+      <div v-show=" Single =='球队进球数:大/小'|| isAll">
+        <teamGoalsSize/>
+      </div>
+      <!-- 球队得分:大/小 -->
+      <div v-show=" Single =='球队得分:大/小'|| isAll">
+        <teamTotalScoreSize/>
+      </div>
+      <!-- 角球 -->
+      <!-- <corner/> -->
+      <!-- 进球 -->
+      <!-- <goal/> -->
+      <!-- 进球半场 -->
+      <!-- <goalHalfCourt/> -->
+      <!-- 让盘  -->
+      <!-- <letPlate/> -->
+      <!-- 球队得分 -->
+      <score/>
+    </div>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+// import letBall from "@/components/betting/letBall";
+import goalsSize from "@/components/betting/goalsSize";
+import teamGoalsSize from "@/components/betting/teamGoalsSize";
+import teamTotalScoreSize from "@/components/betting/teamTotalScoreSize";
+import scoreSingleDouble from "@/components/betting/scoreSingleDouble";
+import winAlone from "@/components/betting/winAlone";
+import sumGoal from "@/components/betting/sumGoal";
+import waveBladder from "@/components/betting/waveBladder";
+import goalEntry from "@/components/betting/goalEntry";
+// import corner from "@/components/betting/corner";
+import halfCount from "@/components/betting/halfCount";
+import concede from "@/components/betting/concede";
+// import goal from "@/components/betting/goal";
+// import goalHalfCourt from "@/components/betting/goalHalfCourt";
+// import letPlate from "@/components/betting/letPlate";
+import totalScore from "@/components/betting/totalScore";
+import score from "@/components/betting/score";
+export default {
+  data() {
+    return {
+      activity: "", //活动代码
+      active: 0, // 投注页是否打开
+      ballCode: "", //球类代码
+      matchId: "", //赛事idd
+      data: [], //赛事数据源
+      previousStorage: "", //前一次data储存数据
+      title: "", //
+      scoreDetails:'',//比分详情
+      key: "", //玩法名字
+      Single: "", //
+      isAll: true, //
+      timers:true,
+    };
+  },
+  components: {
+    // letBall,
+    goalsSize,
+    winAlone,
+    sumGoal,
+    waveBladder,
+    goalEntry,
+    // corner,
+    halfCount,
+    concede,
+    // goal,
+    // goalHalfCourt,
+    // letPlate,
+    totalScore,
+    score,
+    scoreSingleDouble,
+    teamGoalsSize,
+    teamTotalScoreSize
+  },
+  /**
+   * 页面加载完成挂载
+   */
+  mounted() {
+    this.activity = this.$store.getters.getActivity;
+    this.ballCode = this.$store.getters.getBallCode;
+    this.matchId = this.$store.getters.getMatchId;
+    this.$store.dispatch("SET_BETTING", []); //设置默认值
+    this.getAjax();
+    this.gteTitle(this.ballCode, this.activity);
+    this.$store.dispatch("SET_BETTINGTYPE", 1);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAjax()
+      }else{
+        clearInterval(timing)
+      }
+    },10000)
+  },
+  beforeDestroy(){
+    this.timers = false
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    /*------------------------------------------------ */
+    //玩法数据请求
+    getAjax() {
+      let type = this.activity == "StRollBall" ? 2 : 1;
+      let data = {
+        game_code: this.ballCode,
+        matchID: this.matchId,
+        status: type,
+        oddsType: this.activity
+      };
+      this.$http.get(this.$ports.gambling.matchOdds, data).then(res => {
+        if (res.data.status == 1) {
+          this.data = res.data.data;
+          let arrayData = [];
+          let palyCode = this.$store.getters.getPlayAlias;
+          let key = ["所有盘口"];
+          this.data.p_code_array.forEach((e, index) => {
+            let palyData = [];
+            //组合玩法title
+            palyCode.forEach(p => {
+              if (e == p.odds_code && p.game_code == this.ballCode) {
+                key.push(p.odds_name);
+              }
+            });
+            //玩法数据分类
+            this.data.oddsData.forEach(val => {
+              if (e == val.p_code) {
+                palyData.push(val);
+              }
+              arrayData[index] = palyData;
+            });
+          });
+
+          //处理赛事比分信息
+          // console.log('bq',JSON.parse(this.data.result_mark)); 
+          this.scoreDetails = {"ps": [{"adv": -1, "a": 6, "e": 3246496, "h": 2, "p": "ft"}, {"adv": -1, "a": 2, "e": 3246496, "h": 0, "p": "ot"}, {"adv": -1, "a": 4, "e": 3246496, "h": 3, "p": "i1"}, {"adv": -1, "a": 2, "e": 3246496, "h": 2, "p": "i2"}, {"adv": -1, "a": 2, "e": 3246496, "h": 0, "p": "i3"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i4"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i5"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i6"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i7"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i8"}, {"adv": -1, "a": 0, "e": 3246496, "h": 0, "p": "i9"}], "ot": 2,"cp":3,"triangle":"sa","sb":true,"tb":false,"fb":true}
+          let numArray=[] 
+          this.scoreDetails.ps.forEach((e,index)=>{
+            if(e.p=='ft'){
+              this.scoreDetails.ft = e;
+              numArray.push(index);
+            }
+            if(e.p=='ot'){
+              this.scoreDetails.cu = e;
+              numArray.push(index);
+            }
+          })
+          numArray.forEach((e,index)=>{
+            if(index == 1){
+              if(numArray[0] < numArray[1]){
+                this.scoreDetails.ps.splice(e - 1,1)
+              }else{
+                this.scoreDetails.ps.splice(e,1)
+              }
+            }else{
+              this.scoreDetails.ps.splice(e,1)
+            }
+          })
+
+          // console.log(arrayData);
+          //更新数据和上一次的数据匹配
+          if(this.previousStorage && this.previousStorage.match_id == this.data.match_id  && this.previousStorage.oddsData.length > 0){
+             this.$public.oddsDataUpdate(arrayData,this.previousStorage.oddsData,2);
+          }
+          this.data.oddsData = arrayData;
+          //储存临时数据
+          this.previousStorage = this.data
+          //rising=上升、falling=下降
+          this.$store.dispatch("GETGAMERATIO", this.data);
+          this.key = key;
+          // console.log(key);
+         
+        }
+      });
+    },
+
+    /*---------------------------------------------- */
+    //获取头部title数据
+    gteTitle(data, type) {
+      if (data == "zq") {
+        this.title = "足球";
+      } else if (data == "lq") {
+        this.title = "蓝球";
+      } else if (data == "wq") {
+        this.title = "网球";
+      } else if (data == "bq") {
+        this.title = "棒球";
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 返回上级
+     */
+    returnEvent: function() {
+      this.$store.dispatch("SET_CONTROLROUTING", "10002");
+      // this.$store.dispatch("SET_RETURN_EVENT",1);
+      //console.log(this.$store.getters.getReturnEvent);
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {},
+  /**
+   * 监听器
+   */
+  watch: {}
+};
+</script>
+<style scoped>
+.header {
+  background: #4b4b4b;
+}
+.eliminate span {
+  display: block;
+  width: 0.1rem;
+  height: 0.1rem;
+  background: #ccc;
+  transform: rotate(45deg);
+}
+.spanBox {
+  background: orange !important;
+}
+.ballhold{
+  /* color:#fff; */
+  font-size: 0.2rem;
+}
+.current{
+  color: orange;
+}
+.attack{
+  color: rgb(197, 210, 60);
+}
+.header .title {
+  font-size: 0.18rem;
+  /* color: #f76649; */
+  padding: 0 0.2rem;
+  /* font-weight: 700; */
+  height: 0.6rem;
+  line-height: 0.4rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.header-title{
+  display: inline-block;
+  /* width: .6rem; */
+  height: .4rem;
+  text-align: center;
+  line-height: .4rem;
+  background: #ededed;
+  color: #f4755b;
+  border-radius: .05rem;
+  padding: 0 0.05rem;
+}
+.header-title::after{
+  border-width:.08rem;
+  border-left-color:  #ededed;
+  border-top-color:  #ededed;
+  transform: rotate(135deg);
+  right: -10%;
+  top: 28%;
+}
+.title .backSingPage {
+  display: inline-block;
+  background: url("../assets/st-imges/returnimg.png") no-repeat;
+  /* filter: brightness(2); */
+  background-size: 100% 100%;
+  height: 0.28rem;
+  width: 0.28rem;
+  vertical-align: middle;
+  margin-right: 0.16rem;
+  cursor: pointer;
+}
+.title {
+  background: #ababab;
+  color: #333;
+}
+.title .backSingPage:hover,
+.refresh:hover {
+  filter: brightness(2);
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+  cursor: pointer;
+  text-align: center;
+  border-radius: 0.05rem;
+}
+.redraw:hover {
+  background: #959595;
+  color: #fff;
+}
+.refresh {
+  background: url("../assets/st-imges/redraw.png") no-repeat;
+  background-size: 100% 100%;
+  display: inline-block;
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.session{
+  width:0.3rem;
+}
+.scoreInfo{
+  line-height: 0.5rem;
+  padding: 0 0.1rem ;
+}
+.mg-session{
+  width:0.7rem;
+  
+}
+.mark{
+  background: hsla(0, 0%, 100%, 0.25);
+}
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.NavSlide {
+  width: 100%;
+  overflow: hidden;
+  font-size: 0.16rem;
+  height: 0.4rem;
+  background: #898989;
+  color: #cdcdcd;
+}
+.NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+.NavSlide div {
+  text-align: center;
+  /* font-size: 0.28rem; */
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  color: #fff;
+  cursor: pointer;
+}
+
+.active {
+  color: #f76649;
+  font-weight: 700;
+}
+.scroll::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+}
+
+.header {
+  background: #4b4b4b;
+}
+.header .title {
+  font-size: 0.18rem;
+  color: #fe9200;
+  padding: 0 0.2rem;
+  font-weight: 700;
+  height: 0.6rem;
+  line-height: 0.4rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.title .backSingPage {
+  display: inline-block;
+  background: url("../assets/st-imges/returnimg.png") no-repeat;
+  background-size: 100% 100%;
+  height: 0.28rem;
+  width: 0.28rem;
+  vertical-align: middle;
+  margin-right: 0.16rem;
+  cursor: pointer;
+}
+.title .backSingPage:hover,
+.refresh:hover {
+  filter: brightness(1.5);
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+  cursor: pointer;
+  text-align: center;
+  border-radius: 0.05rem;
+}
+.redraw:hover {
+  background: #959595;
+  color: #fff;
+}
+.refresh {
+  background: url("../assets/st-imges/redraw.png") no-repeat;
+  background-size: 100% 100%;
+  display: inline-block;
+  width: 0.2rem;
+  height: 0.2rem;
+}
+/* 网球头部 */
+.tennisHead {
+  background: url("../assets/st-imges/tennisball.png") no-repeat;
+  background-size: 100% 100%;
+  width: 100%;
+  height: auto;
+}
+.match {
+  color: #fff;
+  height: auto;
+}
+.match .tit {
+  height: 0.32rem;
+  line-height: 0.32rem;
+  /* margin-top: -4px; */
+}
+.ballTable {
+  background: rgba(0, 0, 0, 0.2);
+ 
+}
+.listHead {
+  line-height: 0.5rem;
+  padding: 0 0.1rem;
+  background: rgba(0, 0, 0, 0.15);
+}
+.listHead .txt-c-0 {
+  display: flex;
+  color: orange;
+}
+.cl {
+  color: orange;
+}
+.sumCl {
+  color: #ff0;
+
+}
+.welcome{
+  height: .5rem;
+  line-height: 0.5rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #898989;
+  color: #fff;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/30/303d5ef569a17453517caf38a0777849caf6bed1.svn-base


BIN=BIN
.svn/pristine/32/324e679f64ea7da448747a5948b896aa20d31c5d.svn-base


+ 127 - 0
.svn/pristine/33/3352707edf4286a5ee1d640a1545e93ff6b2083e.svn-base

@@ -0,0 +1,127 @@
+<template>
+    <div class="tennis">
+        <div v-if="tennis.length == 0" class="no-message">暂无数据</div>
+        <div v-for="(item, index) of tennis" :key="index">
+            <el-table  :data="item.match_data">
+                <el-table-column type="expand" style="border: none">
+                    <template slot-scope="props">
+                        <div v-if="props.row.play_data.length > 2">
+                        <el-table style="width:700px;margin:0 auto" 
+                        :data="[].concat(props.row.play_data[props.row.play_data.length-1])
+                        .concat(props.row.play_data[props.row.play_data.length-2])">
+                            <el-table-column label="队员" prop="team_name" width="140"></el-table-column>
+                            <el-table-column label="第一盘" prop="sc_1th"></el-table-column>
+                            <el-table-column label="第二盘" prop="sc_2th"></el-table-column>
+                            <el-table-column label="第三盘" prop="sc_3th"></el-table-column>
+                            <el-table-column label="第四盘" prop="sc_4th"></el-table-column>
+                            <el-table-column label="第五盘" prop="sc_5th"></el-table-column>
+                            <el-table-column label="局" prop="game_num"></el-table-column>
+                            <el-table-column label="盘" prop="disc_num"></el-table-column>
+                        </el-table>
+                        <div style="padding: 8px 8px;margin: 0 auto">
+                            <div style="font-weight:bold;">结果:</div>
+                            <div style="margin-left: 40px;line-height: 28px;" v-for="(res, index) of props.row.play_data" :key="index">
+                                <div v-if="index < props.row.play_data.length -2">{{res.play_name}}:{{res.play_result}}</div>
+                            </div>
+                        </div>
+                        </div>
+                        <div v-else style="text-align:center">暂无数据</div>
+                    </template>
+                </el-table-column>
+                <el-table-column :label="item.league_name" width="400" align="center" style="border-left:none">
+                    <template slot-scope="scope">
+                        {{scope.row.match_time}}
+                        <span style="width: 400px;font-weight:bold">
+                            {{scope.row.home_team}}
+                            <span style="color: #ff9200">VS</span>
+                            {{scope.row.guest_team}}
+                        </span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="赛果" align="center" prop="score_result"></el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        name: 'tennis',
+        props: {
+            tennisData: {
+                type: Array,
+                default: ()=>[]
+            },
+            loading: {
+                type: Boolean,
+                default: false
+            }
+        },
+        data() {
+            return {
+                tennis: [],
+                tsLoading: false,
+                show: true,
+                test: '1'
+            }
+        },
+        watch: {
+            tennisData: {
+                handler(val) {
+                    if(val) {
+                        this.tennis = JSON.parse(JSON.stringify(val))
+                    }
+                },
+                deep: true
+            },
+            loading(val) {
+                this.BtLoading = val
+            }
+        },
+        methods: {
+            // 默认展开
+            initShow() {
+                for(let item of this.tennis) {
+                    item.show = !item.show;
+                }
+            },
+            setShow(val, index) {
+                val.show = !val.show
+            },
+        }
+    }
+</script>
+<style>
+    .tennis .el-table {
+        border-top: none;
+    }
+    .tennis .el-table th {
+        padding: 8px 0;
+        background-color: #373737;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 700;
+    }
+    .tennis .sec-table .el-table th {
+        padding: 4px 0;
+        background-color: #e3e3e3;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 500;
+    }
+    
+    .tennis .el-table td {
+        padding: 6px 0;
+    }
+    .tennis .el-table--border th {
+        border: none;
+    }
+</style>
+<style scoped>
+    .no-message {
+        text-align: center;
+        margin-top: 50px;
+        padding-right: 100px;
+        font-size: 16px;
+        font-weight: 700;
+    }
+</style>

+ 291 - 0
.svn/pristine/33/33a8a25bfb996bb1bf1b71f8efe54435238ed23b.svn-base

@@ -0,0 +1,291 @@
+<template>
+  <div>
+    <div class="elastic">
+      <div class="title">
+        <div>
+          <div class="ball">
+            <span>{{ball_type=='zq'?'足球':ball_type=='lq'?'篮球':ball_type=='bq'?'棒球':ball_type=='wq'?'网球':''}}</span>
+          </div>
+          <span class="menu" style="font-size:0.16rem">菜单</span>
+        </div>
+        <!-- <div @click="All()">
+          <label>全选</label>
+          <input type="checkBox" :checked="all">
+        </div> -->
+      </div>
+      <div class="match">
+        <div>联赛</div>
+        <div class="btn">
+          <div class="submit" v-if="showSubmit" @click="Submit()">提交</div>
+          <div class="reset" @click="returns()">取消</div>
+        </div>
+      </div>
+      <div class="info">
+        <div v-for="(item,index) in data" :key="index">
+          <div>
+            <div class="title">
+              <div>{{item.name}}</div>
+              <div>
+                <label for>全部</label>
+                <input @click="Region(index)" type="checkBox" :checked="item.active">
+              </div>
+            </div>
+            <div class="eventInfo row wrap">
+              <div class="item row allAlignment " v-for="(itemList,j) in item.lg_list" :key="itemList.id">
+                <div>
+                  <input @click="League(index,j,itemList.id)" type="checkBox" :checked="itemList.click">
+                  <span>{{itemList.leagueName}}</span>
+                </div>
+                <div class="num">{{itemList.matchNum}}</div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import navLIstData from "@/assets/navLIstData";
+export default {
+  name:'elasticFrame',
+  data() {
+    return {
+      play_code:'',
+      ball_type:'',
+      showSubmit:false,//提交按钮状态
+      data: [],
+      chooseData:[],
+    };
+  },
+  methods: {
+
+    /*-----------------------------------------*/
+    //地区选中 
+    Region(index) {
+      this.data.forEach((e,i)=>{
+       if(i==index){
+          this.$set(e,'active',!e.active)
+          e.lg_list.forEach(a=>{
+            this.$set(a,'click',e.active)
+          })
+       }
+      })
+      // this.getAll();
+      this.showSubmit = false;
+      this.getSubmit();
+    },
+
+    /*-----------------------------------------*/
+    //联赛选中
+    League(index, num,id) {
+      this.$set(this.data[index].lg_list[num],'click',!this.data[index].lg_list[num].click)
+      for(let i = 0 ;i <this.data[index].lg_list.length;i++){
+        if(this.data[index].lg_list[i].click == true){
+          this.data[index].active = true;
+        }else{
+          this.data[index].active = false;
+          break;
+        }
+      }
+      this.getLeague(index);
+      // this.getAll();
+      this.showSubmit = false;
+      this.getSubmit();
+    },
+
+    /*-----------------------------------------*/
+    //联赛选中判断父级选中
+    getLeague(index){
+      this.data[index].lg_list.forEach(e=>{
+        if(e.click==false){
+          this.data[index].active = false
+        }
+      })
+    },
+
+    /*-----------------------------------------*/
+    // 取消返回父级
+    returns(){
+      this.$store.dispatch("SET_CONTROLROUTING",this.play_code);
+      this.$store.dispatch("SET_LEAGUEDATA",[]);
+    },
+
+    // 数据交互,返回父级
+    Submit(){
+      // 发送请求
+      this.$store.dispatch("SET_CONTROLROUTING",this.play_code);
+      this.$store.dispatch("SET_LEAGUEDATA",[]);
+      this.$store.dispatch("SET_LEAGUEDATA",this.chooseData);
+    },
+    // 获取提交按钮显示状态
+    getSubmit(){
+      this.chooseData =[];
+      for(let i= 0 ;i< this.data.length;i++){
+        for(let j = 0 ; j< this.data[i].lg_list.length ; j++){
+          if(this.data[i].lg_list[j].click == true){
+            this.showSubmit = true;
+            this.chooseData.push(this.data[i].lg_list[j].lg_id)
+            //return false
+          }
+        }
+      }
+    }
+  },
+  computed: {
+  },
+  mounted() {
+
+    this.play_code = this.$store.getters.getPaly_code;
+    this.ball_type = this.$store.getters.getBallCode
+
+    //联赛赛事数据
+    this.$http.get(this.$ports.home.gameList, {
+        type: this.$store.getters.getActivity,
+        p_code: this.play_code,
+        game_code: this.ball_type,
+      }).then(res => {
+        if(res.data.data.length >0){
+          this.data =res.data.data[1]
+        }
+      })
+
+  },
+  created(){
+    this.data.forEach(e=>{
+     this.$set(e,'active',false)
+      e.lg_list.forEach(a=>{
+        this.$set(a,'click',false)
+      })
+    })
+  }
+};
+</script>
+<style scoped>
+.elastic {
+  width: 100%;
+  height: auto;
+}
+.elastic .title {
+  background: rgba(170, 170, 170, 1);
+  height: 0.5rem;
+  line-height: 0.5rem;
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.elastic .title label {
+  color: #666666;
+  font-size: 0.16rem;
+  vertical-align: middle;
+}
+.elastic .title .ball {
+  display: inline-block;
+  width: 0.5rem;
+  height: 0.36rem;
+  line-height: 0.36rem;
+  text-align: center;
+  background: rgba(204, 204, 204, 1);
+  font-size: 0.18rem;
+  color: #f76649;
+  position: relative;
+  margin-right: 0.15rem;
+}
+.elastic .title .ball::after {
+  content: "";
+  display: inline-block;
+  width: 0.1rem;
+  height: 0.1rem;
+  position: absolute;
+  right: -0.2rem;
+  top: 0.08rem;
+  border-width: 0.1rem;
+  border-style: solid;
+  border-color: transparent transparent transparent rgba(204, 204, 204, 1);
+}
+.elastic .title input {
+  width: 0.2rem;
+  height: 0.2rem;
+  margin-left: 0.1rem;
+}
+/* 联赛 */
+.match {
+  background: #888888;
+  color: #ffffff;
+  display: flex;
+  padding: 0 0.2rem;
+  justify-content: space-between;
+  align-items: center;
+  height: 0.5rem;
+  margin-bottom: 0.1rem;
+}
+.match div {
+  font-size: 0.16rem;
+}
+.match .btn {
+  text-align: center;
+  display: flex;
+}
+.match .btn div {
+  width: 0.6rem;
+  height: 0.3rem;
+  line-height: 0.3rem;
+  font-size: 0.14rem;
+  background: #71ca18;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.match .btn .reset {
+  margin-left: 0.2rem;
+  background: #666666;
+  color: #cccccc;
+}
+/* 数据格式 */
+.info {
+  height: auto;
+  background: #fff;
+}
+.info .title {
+  background: #cccccc;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  font-size: 0.16rem;
+  color: #333333;
+  padding: 0.2rem;
+}
+.eventInfo {
+  width:100% ;
+}
+.item {
+  width: 50%;
+  padding:0.1rem 0.2rem;
+  border-right: 1px solid rgba(237, 237, 237, 1);
+}
+.item input {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.item span {
+  vertical-align: middle;
+}
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding-right: 0.14rem;
+}
+.num {
+  width: 0.3rem;
+  height: 0.3rem;
+  line-height: 0.3rem;
+  background: #999999;
+  text-align: center;
+  color: #fff;
+  border-radius: 0.05rem;
+}
+.match .btn .reset:hover {
+  background: #959595;
+  color: #fff;
+}
+</style>

BIN=BIN
.svn/pristine/38/38b4cffea1e46c8da4d52ec4c1d90832f178e2ea.svn-base


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/39/39990220065179d7080692a029ab463966a8cdd4.svn-base


+ 265 - 0
.svn/pristine/39/39ba4f56275dbd585143d0ed742a7ddfc8a36ed8.svn-base

@@ -0,0 +1,265 @@
+<template>
+  <div>
+    <div v-if=" obj.a">
+      <div class="tit" >
+        <span>总局数:单/双</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">单</span>
+          <div v-for="(item,index) in  data" v-if="item.odds_code == 'tss'">
+            <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'单','总局数:单/双')" >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">双</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in  data"
+            v-if="item.odds_code == 'tsd'"
+          >
+            <span class="odds" 
+            :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'双','总局数:单/双')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "TS",
+      andShow: "",
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "",
+      match_id: "",
+      data: [],
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /**
+   * 页面初始化完成挂载
+   */
+  mounted() {
+    this.andShow = this.$store.getters.getBallCode;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="TS" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        //console.log(e.odds_code)
+        e.lg_id = this.lg_id;
+        if (e.odds_code.startsWith("TS")) {
+          obj.a = true;
+        } 
+
+        // else if (e.odds_code.startsWith("half")) {
+        //   obj.b = true;
+        // } else if (e.odds_code.startsWith("one")) {
+        //   obj.c = true;
+        // } else if (e.odds_code.startsWith("two_two")) {
+        //   obj.d = true;
+        // } else if (e.odds_code.startsWith("three")) {
+        //   obj.e = true;
+        // } else if (e.odds_code.startsWith("four")) {
+        //   obj.f = true;
+        // }
+      });
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+        this.$forceUpdate();
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+        this.$forceUpdate();
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.playGrouping(this.data);
+          //console.log(this.data);
+        }
+      });
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode,
+.andCode {
+  color: rgb(0, 0, 0);
+  display: flex;
+}
+.playCode .home,
+.playCode .guest {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  width: 50%;
+  font-size: 0.14rem;
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+}
+.playCode .home {
+  width: calc(50% - 1px);
+  padding-right: 0.1rem;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.oddsBox {
+  margin-right: 0.1rem;
+}
+.odds {
+  display: inline-block;
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.home:hover,
+.guest:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+</style>

+ 2 - 0
.svn/pristine/3a/3acbd34b7f96eb50c26420cc6a386ac9eb5f23fb.svn-base

@@ -0,0 +1,2 @@
+import Vue from './node_modules/vue'
+export default new Vue()

+ 102 - 0
.svn/pristine/3b/3b0253604f52862fdf432ca7293e96ea38979e23.svn-base

@@ -0,0 +1,102 @@
+<template>
+    <div>
+        <div class="letPlate">
+            <div class="tit">
+                <span>{{tit}}</span>
+            </div>
+            <div class="playCode">
+                <div class="home flex">
+                    <span class="teamName">单</span>
+                    <div>
+                    <span class="condation">9.5</span>
+                    <span class="odds">1.28</span>
+                    </div>
+                </div>
+                <div class="guest flex">
+                    <span class="teamName">双</span>
+                    <div class="oddsBox">
+                    <span class="odds">1.28</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data(){
+        return{
+            tit:'角球',
+        }
+    },
+    mounted(){
+    }
+}
+</script>
+<style scoped>
+.flex{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.tit{
+    background: #373737;
+    font-size: 0.14rem;
+    padding: 0 0.1rem;
+    height: 0.4rem;
+    line-height: 0.4rem;
+    color: #b4b4b4;
+}
+.playCode{
+    color: rgb(0, 0, 0);
+    display: flex;
+}
+.playCode .home,.playCode .guest{
+    height: 0.4rem;
+    line-height: 0.4rem;
+    width: 50%;
+    background: #fff;
+    padding: 0 0 0 0.1rem;
+}
+.playCode .home{
+    width: calc(50% - 1px);
+    padding-right: 0.1rem;
+    border-right: 1px solid #e4e4e4;
+}
+.oddsBox{
+    margin-right: 0.1rem;
+}
+.odds{
+    display: inline-block;
+    height: 0.3rem;
+    border: 1px solid #e4e4e4;
+    width: 0.5rem;
+    background-color: #fff;
+    text-align: center;
+    line-height: 0.23rem;
+    margin: 0.07rem auto 0.04rem;
+    padding: 0.04rem;
+}
+.odds:hover{
+    background: orange; 
+    color: #fff;
+    border-color: orange;
+}
+.guest{
+    padding-right: 0.1rem;
+}
+.home:hover,.guest:hover{
+        background: #fff5e9;
+}
+.draw{
+    width: 20%;
+    background: #fff;
+    padding: 0 0.1rem;
+    border-right: 1px solid #e4e4e4;
+}
+.condation{
+    display: inline-block;
+    color: #bd4700;
+    margin:0 0.1rem;
+}
+</style>

+ 434 - 0
.svn/pristine/3b/3b0dd2135172ac065999490b646d47d8ed53cb31.svn-base

@@ -0,0 +1,434 @@
+<template>
+  <div>
+    <div v-if="data.length >0 ">
+    <div class="bettingTable" :class="data?'':'dataNo row center'">
+      <div class="list" v-for="(item,index) in data" :key="item.id">
+        <div style="padding-bottom:.1rem;">
+          <div class="list-header row item-center allAlignment">
+            <p
+              class="br05 row center"
+              style="height:.24rem;background:#F00;padding:0 .1rem;"
+            >{{item.playName}}</p>
+            <p
+              @click="deleteList(index,item.id,item.p_code)"
+              class="row center"
+              style="width:.26rem;height:.26rem; border-radius:50%;background:#F76649;"
+            >
+              <img src="@/assets/st-imges/del.png">
+            </p>
+          </div>
+          <div class="list-body">
+            <div class="condition row item-center">
+              <span>{{item.name}}</span>
+              <p style="padding-left:.1rem;">
+                @
+                <span style="color:#F76649">{{item.odds}}</span>
+              </p>
+            </div>
+            <div class="duel row item-center">
+              <p>{{item.home_team}}</p>
+              <span style="color:#F76649;font-size:.12rem;">&emsp;vs&emsp;</span>
+              <p>{{item.guest_team}}</p>&nbsp;
+            </div>
+          </div>
+        </div>
+      </div>
+
+
+      <!-- <div v-if="(i+1)>2"> -->
+      <div v-for="(item,index) in ThroughPlay" :key="index">
+          <div style="width:100%;height:.4rem;padding:0 .2rem;"
+            class="row item-center" >
+            <span>{{item.title}}</span>
+            <span>X{{item.index}}</span>
+          </div>
+          <div class="list-input row item-center allAlignment" style="padding:0 .2rem;">
+            <div
+              class="br05"
+              style="border:.01rem solid #F76649;position: relative;"
+              @click="getKeys(index)"
+            >
+              <input type="text" placeholder="投注额" class="bettingall" oncopy="return false" v-model="item.money"
+                onpaste="return false" @keyup="keyMatch($event,index)"
+              >
+              <img
+                @click="clearBettingMoney(index)"
+                style="position: absolute;width:.2rem;height:.2rem;right:.1rem;top:.05rem;"
+                src="@/assets/st-imges/delbetting.png"
+              >
+            </div>
+            <div
+              class="br05 row item-center"
+              style="border:.01rem solid #BFE2B3;background:#E7FFDA;padding-left: .05rem;"
+            > {{item.money ? (item.money * item.odds).toFixed(2) : '可赢额'}}</div>
+          </div>
+          <div class="key" :style="keys == index?'':'display:none;'">
+            <div>
+              <div class="row average item-center">
+                <p @click="moneyClick(100,index)">+100</p>
+                <p @click="moneyClick(500,index)">+500</p>
+                <p @click="moneyClick(1000,index)">+1000</p>
+              </div>
+              <div class="row average item-center">
+                <p @click="moneyClick(5000,index)">+5000</p>
+                <p @click="moneyClick(10000,index)">+10000</p>
+                <p @click="moneyClick(50000,index)">+50000</p>
+              </div>
+            </div>
+          </div>
+        </div>
+      <!-- </div> -->
+      <div class="statistics">
+        <div>
+          <div class="statistics-list">
+            <p class="row allAlignment">
+              <span>
+                <i style="color:#F76649">{{ThroughPlay.length > 0 ? ThroughPlay.length  :0}}</i>&emsp;所有投注:
+              </span>
+              <span>{{bettingMoney ? bettingMoney :'0.00'}} RMB</span>
+            </p>
+            <p class="row allAlignment">
+              <span>可赢金额:</span>
+              <span style="color:#F76649;font-size:.16rem;">{{canWin ? canWin :'0.00'}}RMB</span>
+            </p>
+          </div>
+          <!-- <div
+            style="height:.5rem;background:#A83131;padding-left:.2rem;margin-top:.2rem;"
+            class="row item-center"
+          >
+            <img style="width:.17rem;height:.15rem;" src="@/assets/st-imges/warning.png">&nbsp;
+            <p style="color:#fff;font-size:.14rem;">您的余额不足。 请您先进行存款</p>
+          </div>
+          <div
+            class="row center"
+            style="height:.5rem;background:rgb(247, 102, 73);color:#fff;margin-top:.2rem;font-size:.14rem;"
+          >赔率信息已更改,请重新投注</div> -->
+          <div class="statistics-btn">
+            <div class="row center" style="font-size:.16rem;'color:#666'" v-if="!logins">请先登录再进去投注</div>
+            <div class="row center submit" style="background:#F76649;color:#fff;" v-else @click="submit()">投注</div>
+            <div class="row center" style="background:#CCC;color:#666;" @click="cancel()">取消</div>
+          </div>
+        </div>
+      </div>
+    </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+export default {
+  name: "eventBettingTable",
+  data() {
+    return {
+      keys: "",
+      logins: false,
+      bettingMoney: 0,//投注金额
+      canWin:0,//可赢金额
+      ThroughPlay:[],
+      data: "",
+    };
+  },
+  methods: {
+    /*----------------------------------*/
+    // 数据提交
+    submit(){
+      let dataList=[];
+      let money = 0,isMoney=false;
+      this.ThroughPlay.forEach(e =>{
+        if(e.money*1 >= 1){
+          isMoney = true;
+          money += e.money;
+          dataList.push({
+              type:e.title,
+              bet_amount:e.money,
+          })
+        }
+      })
+      dataList.push(this.data);
+      //onsole.log(dataList)
+      if (isMoney) {
+        let token = localStorage.getItem("token");
+        this.$http
+          .post(this.$ports.betOrder.Bet, {
+            data: dataList,
+            token,
+            bet_money:money
+          })
+          .then(res => {
+            //console.log('数据',res.data);
+            if (res.data.status == 1) {
+              // this.alldel();
+              this.$store.dispatch("SET_PASSBETTING",[]);
+              this.cash = (this.cash - this.dataNumbe * 1).toFixed(2);
+              this.$dialog.alert({ mes: "亲!你已经投注成功啦。" });
+            } else if (res.data.status == "-4001") {
+              this.isLogin = false;
+              this.$dialog.alert({ mes: "亲!你的登陆已过期。" });
+            } else if (res.data.status == "4204") {
+              this.$dialog.alert({ mes: "亲!你的余额不足。" });
+            }else if(res.data.status == '7027' ){
+              this.$dialog.alert({ mes: "亲!赔率发生变法,请重新选择。" });
+             // this.alldel();
+              this.$store.dispatch("SET_PASSBETTING",[]);
+            }else{
+              this.$dialog.alert({ mes: "错误代码:"+res.data.status});
+            }
+            this.isSubmit = false;
+          });
+      } else {
+        this.$dialog.alert({ mes: "亲!你还未输入投注金额啦。" });
+        this.isSubmit = false;
+      }
+    },
+
+    /*----------------------------------*/
+    //激活键盘
+    getKeys(index) {
+      this.keys = index;
+    },
+
+    /*----------------------------------*/
+    //投注金额处理
+    moneyClick(num, index) {
+      let money = this.ThroughPlay[index].money ? this.ThroughPlay[index].money *1 : 0;
+
+      this.$set(this.ThroughPlay[index],'money',money+num > 999999999 ? 999999999: money+num  );
+      this.calculationAmount()
+      //console.log(money+num);
+    },
+
+    /*----------------------------------*/
+    //计算投注金额
+    calculationAmount(){
+      let money = 0,profit = 0;
+      this.ThroughPlay.forEach(e=>{
+        if(e.money){
+          money += e.money * e.index;
+          profit += e.money * e.odds;
+        }  
+      })
+      this.bettingMoney =money.toFixed(2);
+      this.canWin = profit.toFixed(2);
+    },
+
+    /*------------------------------------*/
+    //输入验证
+    keyMatch(e, i) {
+      e.currentTarget.value = e.currentTarget.value.replace(/[^0-9]/g, "");
+      if(e.currentTarget.value.length > 9){
+        e.currentTarget.value = 999999999
+      }
+      this.$set(this.ThroughPlay[i],'money',e.currentTarget.value)
+      this.calculationAmount()
+      //console.log(this.bettingMoney);
+    },
+
+    /*----------------------------------*/
+    // 清除投注金额
+    clearBettingMoney(index) {
+     this.$set(this.ThroughPlay[index],'money','')
+     this.calculationAmount()
+    },
+
+    /*----------------------------------*/
+    //删除一条数据
+    deleteList(index, id, code) {
+      let betting = this.$store.getters.getPassBetting;
+      for (let i = 0; i < betting.length; i++) {
+        if (code == betting[i].title) {
+          for (let j = 0; j < betting[i].data.length; j++) {
+            if (id == betting[i].data[j].id) {
+              this.data[index].money = "";
+              betting[i].data.splice(j, 1);
+              break;
+            }
+          }
+          break;
+        }
+      }
+      this.$store.dispatch("DEL_TYPE", id);
+      this.$store.dispatch("SET_PASSBETTING", []);
+      this.$store.dispatch("SET_PASSBETTING", betting);
+    },
+
+    /*----------------------------------*/
+    // 取消
+    cancel(){
+      this.$store.dispatch("SET_PASSBETTING", []);
+      
+    }
+  },
+  computed: {
+    getIsLogin() {
+      return this.$public.getItem("token");
+    },
+    getPassBetting() {
+      return this.$store.getters.getPassBetting;
+    },
+
+    // //计算可赢金额
+    // canWin(){
+    //   this.ThroughPlay
+    // }
+  },
+  watch: {
+    getIsLogin(val) {
+      if (val) {
+        this.logins = true;
+      } else {
+        this.logins = false;
+      }
+      //console.log(this.$public.getItem("token"), "token");
+    },
+    getPassBetting(val) {
+      this.data = [];
+      if (this.$store.getters.getPassLimit > 0) {
+        val.forEach(e => {
+          e.data.home_team = 
+          this.data = this.data.concat(e.data);
+          // if(this.$store.getters.getPassLimit > 10){
+          //   this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          //   this.deleteList(this.data.length - 1,this.data[this.data.length-1].id,this.data[this.data.length-1].p_code);
+          //   console.log(this.$store.getters.getBetting,'我的')
+          // }
+        });
+        this.ThroughPlay =[];
+        if(this.data.length >2){
+          for(let i=3 ; i <= this.data.length ;i++ ){
+            this.ThroughPlay.push(this.$public.betPlay(i,this.data));
+          }
+        }
+        console.log( this.ThroughPlay);
+        this.calculationAmount();
+        //console.log('数据更新',this.data);
+      }
+    }
+  },
+  mounted() {
+    if (this.$public.getItem("token")) {
+      this.logins = true;
+    }
+    //
+  }
+};
+</script>
+
+<style scoped>
+img {
+  cursor: pointer;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.bettingTable {
+  width: 100%;
+  background: #e5e5e5;
+}
+.dataNo {
+  background: #777;
+}
+.list {
+  padding: 0 0.2rem;
+  border-bottom: 0.02rem solid #999;
+}
+
+.list img {
+  width: 0.15rem;
+  height: 0.15rem;
+}
+.list-header {
+  min-height: 0.5rem;
+}
+.list-header p {
+  font-size: 0.14rem;
+  color: #fff;
+}
+.list-body {
+  min-height: 0.6rem;
+}
+.list-body > div {
+  min-height: 0.3rem;
+}
+.condition {
+  font-size: 0.16rem;
+  font-weight: bold;
+  color: #666;
+}
+.duel {
+  font-size: 0.14rem;
+  color: #666;
+}
+.list-input {
+  min-height: 0.6rem;
+}
+.list-input > div {
+  width: 48%;
+  height: 0.34rem;
+  color: #999;
+  font-size: 0.14rem;
+}
+.list-input > div input {
+  width: 100%;
+  height: 100%;
+  border: none;
+  border-radius: 0.05rem;
+  background: #fff;
+  padding-left: 0.05rem;
+}
+.key {
+  min-height: 1rem;
+  background: #ccc;
+}
+.key > div {
+  width: 90%;
+  margin: 0 auto;
+}
+.key > div > div {
+  min-height: 0.5rem;
+}
+.key p {
+  width: 30%;
+  height: 0.34rem;
+  background: #fff;
+  border-radius: 0.05rem;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #f76649;
+  font-size: 0.14rem;
+  cursor: pointer;
+  box-shadow: .05rem .05rem .05rem rgba(0, 0, 0, .1)
+}
+.key p:active{
+  background: #e9e9e9;
+}
+.statistics {
+  width: 100%;
+  background: #fff;
+}
+.statistics > div {
+  width: 90%;
+  margin: 0 auto;
+  padding: 0.2rem 0;
+}
+.statistics-list {
+  min-height: 0.6rem;
+  font-size: 0.14rem;
+}
+.statistics-list > p {
+  line-height: 0.3rem;
+}
+.statistics-btn > div {
+  height: 0.35rem;
+  border-radius: 0.05rem;
+  margin-top: 0.1rem;
+  cursor: pointer;
+}
+.submit:active{
+  background: #F77649 !important;
+   box-shadow: -2px 0px 5px 1px rgba(0, 0, 0, 0.05),
+    0px -2px 5px 1px rgba(0, 0, 0, 0.05), 2px 0px 5px 1px rgba(0, 0, 0, 0.05),
+    0px 2px 5px 1px rgba(0, 0, 0, 0.05);
+}
+</style>

BIN=BIN
.svn/pristine/3c/3cb372497da5d4beeb695c8cb69145b808e958dd.svn-base


+ 133 - 0
.svn/pristine/3f/3f9bd06dd3add179305e94e548af2b7d13287e73.svn-base

@@ -0,0 +1,133 @@
+<template>
+  <div class="gameResult">
+    <div class="box">
+      <div class="title">体育投注规则</div>
+      <div class="select">
+        <el-select v-model="physicaLType" size="small" placeholder="请选择体育类型" @change="getRuleInfoData">
+          <el-option
+            v-for="(item, index) of type"
+            :key="index"
+            :value="item.group_name"
+            :label="item.group_name"
+          ></el-option>
+        </el-select>
+      </div>
+      <span class='go-home' @click="goHome">返回首页</span>
+    </div>
+    <div class="content" v-if="contentData" v-loading="loading">
+        <div class="content-title">{{contentData.group_name}}</div>
+        <div class="content-date">最后更新时间:{{contentData.utime}}</div>
+        <div v-html="contentData.content" class="content-info"></div>
+    </div>
+    <div v-else class="no-content">暂无投注规则说明</div>
+    </div>
+</template>
+<script>
+export default {
+    name: "gameResult",
+    data() {
+        return {
+            physicaLType: '一般体育说明',
+            type: [],
+            contentData: {},
+            loading: false,
+            test: '1'
+        }
+    },
+    created() {
+        this.getRuleInfoData();
+    },
+    methods: {
+        // 获取赛事规则
+        getRuleInfoData() {
+            let params = {
+                modular: "体育", // 大类,默认为体育
+                group: this.physicaLType // 体育类型
+            }
+            this.loading = true
+            this.$http.get(this.$ports.home.getMatchRule, params)
+            .then(res => {
+                if(res.data) {
+                    if(res.data.data) {
+                        this.contentData = res.data.data.match_rule
+                        if(res.data.data.rule_menu) {
+                            for(let item of res.data.data.rule_menu) {
+                                console.log('item',item)
+                                this.type = item.group;
+                            }
+                        }
+                    }
+                }
+                this.loading = false
+            })
+            .catch(err => {
+                this.loading = false
+                this.$message.error(err.message)
+            })
+        },
+        goHome() {
+            this.$router.push('/');
+        }
+    }
+    };
+</script>
+<style>
+    .el-select .el-input__inner:focus {
+      border-color: #999999;
+    }
+    .el-select .el-input.is-focus .el-input__inner {
+      border-color: #999999;
+    }
+</style>
+<style scoped>
+    .go-home {
+        display: inline-block;
+        color: #ffffff;
+        margin-right: 20px;
+    }
+    .gameResult {
+        height: 100%;
+        width: 100%;
+        overflow: auto;
+    }
+    .box {
+    display: flex;
+    height: 60px;
+    align-items: center;
+    background: linear-gradient(to bottom, #999999, #6a6a6b);
+    }
+    .title {
+    flex: 1;
+    font-size: 0.3rem;
+    color: #ffffff;
+    margin-left: 50px;
+    }
+    .select {
+    flex: 0 1 300px;
+    }
+    .content {
+        padding: 10px 10px;
+    }
+    .content-title {
+        font-size: 20px;
+        color: #ff9200;
+        font-weight: bold;
+        margin: 10px 40px;
+    }
+    .content-date {
+        font-style: italic;
+        font-size: 13px;
+        margin-left: 40px;
+    }
+    .content-info {
+        padding: 50px 50px;
+    }
+    .no-content {
+        position: relative;
+        font-style: italic;
+        font-size: 15px;
+        text-align: center;
+        top: 50%;
+        margin-top: -8px;
+    }
+</style>

+ 237 - 0
.svn/pristine/42/425148b44cc619ab35b9147dc91c4ceb011b44dd.svn-base

@@ -0,0 +1,237 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div class="tit">
+        <span>半场/全场</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex" v-for="(item,index) in  data">
+          <span class="teamName">{{item.condition}}</span>
+          <div>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'','半场/全场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "HF",
+      data: [], //数据源
+      isData: "", //是否有数据
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "", //
+      match_id: "",
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="HF" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        // e.lg_id = this.lg_id;
+        // if (e.odds_code.startsWith("half_full")) {
+        //   obj.a = true;
+        // } else if (e.odds_code.startsWith("half")) {
+        //   obj.b = true;
+        // }
+      });
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.isData = true;
+          this.playGrouping(this.data);
+        }
+      });
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  color: rgb(0, 0, 0);
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+}
+.playCode .home {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.playCode .home {
+  width: calc(33.33% - 1px);
+  padding: 0 0.1rem;
+  font-size: 0.14rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.oddsBox {
+  margin-right: 0.1rem;
+}
+.odds {
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.home:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.condation {
+  display: inline-block;
+  color: #bd4700;
+  margin: 0 0.1rem;
+}
+</style>

+ 4 - 0
.svn/pristine/42/42da40ce6f9e32fee2ff71498a322efc03ad1cb2.svn-base

@@ -0,0 +1,4 @@
+'use strict'
+module.exports = {
+  NODE_ENV: '"production"'
+}

+ 7 - 0
.svn/pristine/44/449b29e898778138d3fb28978b3038fdb5cd0a30.svn-base

@@ -0,0 +1,7 @@
+'use strict'
+const merge = require('webpack-merge')
+const prodEnv = require('./prod.env')
+
+module.exports = merge(prodEnv, {
+  NODE_ENV: '"development"'
+})

+ 340 - 0
.svn/pristine/47/473e6855c787c76f9933a056f15428b221aca832.svn-base

@@ -0,0 +1,340 @@
+<template>
+  <div>
+    <div class="abstract">
+      <div class="abstract-title pdg20">未结算注单</div>
+      <div class="abstract-date pdg20 row item-center">
+        <div class="row item-center">
+          <p style="color:#666;">开始日期</p>
+          <input type="date">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">结束日期</p>
+          <input type="date">
+        </div>
+        <button @click="category(1)">查询单式投注</button>
+        <button @click="category(2)">查询串式投注</button>
+      </div>
+      <div class="abstract-options row allAlignment">
+        <div class="row">
+          <div class="row center" @click="options(3)" :class="optionsActive==3?'active':''">过去30天</div>
+          <div class="row center" @click="options(2)" :class="optionsActive==2?'active':''">昨日</div>
+          <div class="row center" @click="options(1)" :class="optionsActive==1?'active':''">今日</div>
+        </div>
+      </div>
+      <div class="abstract-box scroll">
+        <yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item>
+              <yd-list-other slot="other">
+                <div
+                  v-for="(item,index) in list"
+                  :key="index"
+                  style="border-left:.01rem solid #ccc;border-top:.01rem solid #ccc;border-right:.01rem solid #ccc;"
+                >
+                  <div class="title row item-center allAlignment">
+                    <p style="width:10%">编号</p>
+                    <p style="width:10%">类别</p>
+                    <p style="width:20%">投注详情</p>
+                    <p style="width:10%">投注类别</p>
+                    <p style="width:22%">选项</p>
+                    <p style="width:10%">投注额</p>
+                    <p style="width:10%">赢 / 输</p>
+                    <p style="width:8%">状态</p>
+                  </div>
+                  <ul class="list row">
+                    <li style="width:10%">{{index+1}}</li>
+                    <li style="width:10%">体育</li>
+                    <li style="width:20%">
+                      <p>{{item.ctime}}</p>
+                      <p>{{item.order_id}}</p>
+                    </li>
+                    <li style="width:10%">{{item.odds_name}}</li>
+                    <li style="width:22%">
+                      <p style="width:100%;text-align: center;">{{item.home_team}}</p>
+                      <p style="width:100%;text-align: center;">vs</p>
+                      <p style="width:100%;text-align: center;">{{item.guest_team}}</p>
+                    </li>
+                    <li style="width:10%">{{item.bet_money}}</li>
+                    <li style="width:10%">{{item.status==0?'未开奖':item.status==1?'中奖':'未开奖'}}</li>
+                    <li style="width:8%">确认</li>
+                  </ul>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "settlementBetting",
+  data() {
+    return {
+      optionsActive: 3,
+      bettingCategory: 1, //投注类别 单注 串式
+      startTime: "",
+      newTime: "",
+      endTime: "",
+      page: 1,
+      pageSize: 10,
+      list: "",
+    };
+  },
+  methods: {
+    category(num) {
+      this.bettingCategory = num;
+      this.list = []
+      this.loadList();
+    },
+     options(num) {
+      let date = new Date();
+      this.optionsActive = num;
+      if (this.optionsActive == 1) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else if (this.optionsActive == 2) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() < 10 ? "0" + date.getMonth() : date.getMonth()
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      }
+    },
+    date_fun() {
+      let date = new Date();
+      let date1 = new Date(date);
+      this.newTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+      this.startTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      this.endTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+    },
+    loadList() {
+      this.$http
+        .post(this.$ports.login.bettingRecord, {
+          token: localStorage.getItem("token"),
+          startTime: this.startTime + " 00:00:00",
+          endTime: this.endTime + " 23:59:59",
+          type: this.bettingCategory,
+          currentPage: this.page,
+          pageSize: 10,
+          result:0,
+        })
+        .then(res => {
+          // console.log(res);
+          if (res) {
+            res.data.data.list.forEach((e, index) => {
+              if (e.status == 0) {
+                res.data.data.list.splice(index, 1);
+              }
+            });
+            this.list = [...this.list, ...res.data.data.list];
+            console.log(this.list)
+          }
+          if (this.pageSize > res.data.data.list.length) {
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+        });
+    }
+  },
+  created() {
+    this.date_fun();
+  },
+  mounted() {
+    this.options(3);
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-mes {
+  padding: 0;
+}
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-other {
+  padding: 0;
+}
+div /deep/ .yd-list-other {
+  display: block;
+}
+.yd-list-theme5 .yd-list-item {
+  padding: 0;
+}
+div /deep/ .yd-list-img {
+  display: none;
+}
+div /deep/ .yd-list-loading {
+  display: none;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.abstract-title {
+  font-size: 0.18rem;
+  color: #fff;
+  height: 0.5rem;
+  background: #999;
+  line-height: 0.5rem;
+}
+.abstract-date {
+  height: 0.8rem;
+  font-size: 0.14rem;
+}
+input {
+  width: 1.7rem;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  color: #666;
+  border: 0.01rem solid #ddd;
+  border-radius: 0.05rem;
+  margin-left: 0.1rem;
+  cursor: pointer;
+}
+input[type="date"]::-webkit-inner-spin-button {
+  visibility: hidden;
+}
+input[type="date"]::-webkit-clear-button {
+  display: none;
+}
+input[type="date"]::-webkit-datetime-edit-fields-wrapper {
+  background-color: #eee;
+}
+input[type="date"]::-webkit-datetime-edit {
+  /* content: '起始时间'; */
+  padding-left: 0.1rem;
+}
+button {
+  background: #999;
+  border: none;
+  width: 1rem;
+  height: 0.4rem;
+  border-radius: 0.05rem;
+  color: #fff;
+  margin-left: 0.2rem;
+  cursor: pointer;
+}
+.abstract-options {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #999;
+}
+.abstract-options > div > div {
+  width: 1rem;
+  height: 0.4rem;
+  color: #fff;
+  background: #ccc;
+  margin-left: 0.01rem;
+  border-radius: 5px 5px 0px 0px;
+  cursor: pointer;
+}
+.abstract-options div.active {
+  background: #666;
+}
+.abstract-box {
+  min-height: 2.8rem;
+  max-height: 6.6rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.abstract-box > div {
+  margin-top: 0.2rem;
+}
+.abstract-box .title {
+  height: 0.4rem;
+  background: #ddd;
+  color: #333;
+}
+.abstract-box .title p {
+  text-align: center;
+}
+.abstract-box .title div {
+  width: 50%;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.abstract-box .list li {
+  width: 50%;
+  height: 1.1rem;
+  background: #fff;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  font-size: 0.14rem;
+  border-top: 0.01rem solid #ccc;
+  border-left: 0.01rem solid #ccc;
+  border-bottom: 0.01rem solid #ccc;
+}
+.abstract-box .list li:nth-child(1) {
+  border-left: none;
+}
+</style>

+ 97 - 0
.svn/pristine/47/474bb9724f24fe200bc370a74a4acadc8dc9dbcf.svn-base

@@ -0,0 +1,97 @@
+<template>
+  <div>
+    <div class="letBallBox">
+      <div class="tit">
+        <span>进球:大 / 小-上半场</span>
+      </div>
+      <div class="playCode">
+        <div class="home">
+          <div class="teamName">
+            <span>大</span>
+          </div>
+          <div class="oddsBox">
+            <span class="condation">0.5</span>
+            <span class="odds">1.28</span>
+          </div>
+          <div class="oddsBox">
+            <span class="condation">0.5</span>
+            <span class="odds">1.28</span>
+          </div>
+        </div>
+        <div class="guest">
+          <div class="teamName">
+            <span>小</span>
+          </div>
+          <div class="oddsBox">
+            <span class="condation"></span>
+            <span class="odds">0.76</span>
+          </div>
+          <div class="oddsBox">
+            <span class="condation"></span>
+            <span class="odds">0.76</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {};
+</script>
+<style scoped>
+.tit {
+  background: #373737;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #b4b4b4;
+}
+.playCode {
+  background: #fff;
+  width: 100%;
+  height: auto;
+}
+.playCode:hover {
+  background: #fff5e9;
+}
+.home,
+.guest {
+  color: rgba(0, 0, 0);
+  display: flex;
+  align-items: center;
+  height: 0.4rem;
+  font-size: 0.14rem;
+}
+.teamName {
+  width: 20%;
+  padding-left: 0.1rem;
+}
+.oddsBox {
+  width: 25%;
+  text-align: right;
+}
+.playCode .odds {
+  display: inline-block;
+  height: 0.3rem;
+  border: 1px solid #e4e4e4;
+  width: 0.5rem;
+  background-color: #fff;
+  text-align: center;
+  line-height: 0.23rem;
+  margin: 7px auto 4px;
+  padding: 0.04rem;
+}
+.playCode .odds:hover {
+  background: orange;
+  color: #fff;
+  border-color: orange;
+}
+.condation {
+  height: 0.4rem;
+  vertical-align: middle;
+  color: #bd4700;
+  padding: 0 0.1rem;
+  font-size: 0.12rem;
+}
+</style>

+ 799 - 0
.svn/pristine/48/4803fc58f867ebe93f93f2c8ffd71d2cb1f964b9.svn-base

@@ -0,0 +1,799 @@
+<template>
+  <div>
+    <div>
+      <!-- 搜索框 -->
+      <div class="serch row item-center allAlignment" v-if="noShow">
+        <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+          <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+        </div>
+        <div class="row item-center">
+          <div class="row item-center">
+            <input
+              class="fz14"
+              type="text"
+              placeholder="请输入联赛和球队名称"
+              v-model="serchTxt"
+              onkeyup="this.value=this.value.replace(/\s+/g,'')"
+              color="#AAA"
+            >
+            <div class="row center serch-img pointer hover" @click="Serch()">
+              <img src="@/assets/st-imges/serch.png" alt>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+            <div class="row center redraw pointer hover br05" @click="red()">
+              <img src="@/assets/st-imges/redraw.png" alt>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StMorningPlate')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+
+
+      <!-- 列表 -->
+      <div v-for="(item,index) in data" :key="item.id">
+        <!-- 联赛 -->
+        <div class="header pdg20 row item-center">{{item.leagueName}}</div>
+        <!-- 表格 -->
+        <div class="list" v-for="(e,i) in item.matchData" :key="e.id">
+          <div class="list-header row item-center pdg20">
+            <div class="list-header-time row allAlignment">
+              <div class="row item-center wrap">
+                <p style="width:100%;">{{e.match_date}}</p>
+                <p style="color:rgb(247, 102, 73);margin-left:.1rem;width:100%;">{{e.match_time}}</p>
+              </div>
+              <div
+                class="list-header-time-num triangle row center"
+                @click="getTournamentPlay(e.match_id)"
+              >{{e.tag}} ></div>
+            </div>
+            <div class="list-header-title row">
+              <div class="row item-center pdg20 average" style="min-height:.5rem">
+                <span>让球</span>
+                <span>大/小</span>
+              </div>
+              <div class="row center" style="min-height:.5rem;">单/双</div>
+            </div>
+          </div>
+          <div class="list-body row pdg20" style="position: relative;">
+            <div class="list-body-name row">
+              <!-- <div class="row center" style="width:30%;color: rgb(68, 100, 36);">
+                    <span>5局</span>
+              </div>-->
+              <div style="width:100%;">
+                <p style="width:100%">{{e.home_team}}</p>
+                <p style="width:100%">{{e.guest_team}}</p>
+              </div>
+            </div>
+            <div class="list-body-center row" style="position: relative;">
+              <div class="row item-center" style="border-right:.01rem solid #ccc;">
+                <!-- 让球 -->
+                <div class="row" style="position: relative;">
+                  <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id">
+                    <!-- 让球主队 -->
+                    <div v-if="itemList.odds_code.startsWith('co')">
+                      <div>
+                        <div
+                          class="row item-center theball rightAlignment"
+                          style="min-height:.4rem;"
+                          v-if="itemList.odds_code == 'coh'"
+                        >
+                          <div>{{itemList.condition}}</div>
+                          <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'让球')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                        <!-- 让球客队 -->
+                        <div
+                          class="row item-center theball guest rightAlignment"
+                          style="min-height:.4rem;"
+                          v-if="itemList.odds_code == 'cog'"
+                        >
+                          <div>{{itemList.condition}}</div>
+                          <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'让球')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                        </div>
+                      </div>
+                    </div>
+                    <!-- 大小 -->
+                    <div v-if="itemList.odds_code.startsWith('tn')">
+                      <div
+                        class="row item-center size rightAlignment"
+                        style="min-height:.4rem;"
+                        v-if="itemList.odds_code == 'tnb'"
+                      >
+                        <div style>
+                          <i>大</i>
+                          <span>{{itemList.condition}}</span>
+                        </div>
+                        <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'大小')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                      </div>
+                      <div
+                        class="row item-center size guest rightAlignment"
+                        style="min-height:.4rem;"
+                        v-if="itemList.odds_code == 'tns'"
+                      >
+                        <div>
+                          <i>小</i>
+                          <span>{{itemList.condition}}</span>
+                        </div>
+                        <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'大小')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div class="row item-center average" style="position: relative;">
+                <!--单双  -->
+                <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id">
+                  <div class="pdg20">
+                    <div class="row allAlignment" v-if="itemList.odds_code.startsWith('ts')">
+                      <div
+                        class="row item-center ballbig rightAlignment"
+                        v-if="itemList.odds_code.endsWith('tss')"
+                      >
+                        <div>{{itemList.condition}}</div>
+                        <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'单双')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                      </div>
+                    </div>
+                    <div class="row allAlignment" v-if="itemList.odds_code.startsWith('ts')">
+                      <div
+                        class="row item-center ballsmall rightAlignment"
+                        v-if="itemList.odds_code.endsWith('tsd')"
+                      >
+                        <div>{{itemList.condition}}</div>
+                        <div class="btn" @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'单双')" :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}">{{itemList.odds}}</div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div @click="promptInfo()" class="right-img">
+              <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+              <br>
+              <img src="@/assets/st-imges/TheScore.png">
+            </div>
+          </div>
+          <!-- <div v-if="e.five">
+            <div class="list-body-name row">
+              <div style="width:70%;">
+                  <p style="width:100%">{{e.home_team}}</p>
+                  <p style="width:100%">{{e.guest_team}}</p>
+              </div>
+            </div>
+          </div>-->
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>      
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "baseballTheBallSize",
+  components:{
+    noData
+  },      
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode, //传入接口的值
+      data: [], //数据
+      noData : false, // 暂无赛事数据显示
+      limit : '',
+      passLimit:'',
+      timers:true,//轮询开关
+      dataList:[],
+      noShow : true,
+      lg_id:'',//联赛    
+    };
+  },
+  methods: {
+    
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    // 跳转组件
+    getTournamentPlay(match_id) {
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10010);
+    },
+    getAJAX(lg_id,search) {
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.$store.getters.getActivity,
+          p_code: this.$store.getters.getPaly_code,
+          game_code: this.$store.getters.getBallCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,
+          lg_id,                                        //需要拷贝
+          search
+        })
+        .then(res => {
+          if (res.data.status == 1 && res.data.data.length >0) {
+            this.noData = false;
+            // console.log('res',res)
+            //this.matchDataDeal(res.data.data[0]);
+            //数据匹配判断是否上一次有数据
+            // if(this.dataList.length){
+            //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+            // }
+            if(res.data.data[0]){
+              this.data = res.data.data[0];
+            }
+            console.log(this.data);
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            let betting = '';
+            if(this.$store.getters.getActivity == 'StStringScene'){
+              betting = this.$store.getters.getPassBetting;  
+            }else{
+              betting = this.$store.getters.getBetting;
+            }                 
+              this.dataGroup(this.data,betting)
+            this.$store.dispatch("GETLOADING", false);
+          }else{
+            this.noData = true;
+          }
+          this.noShow = true;
+          this.$store.dispatch("GETLOADING", false);
+        });
+    },
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },       
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      // console.log(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName)
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let acty =  this.$store.getters.getActivity;
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }                  
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+          _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+           _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+      if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })                  
+      }
+    },    
+    //赛事数据处理
+    matchDataDeal(data) {
+      data.forEach(e => {
+        e.matchData.forEach(res => {
+          res.oddsData.forEach(data => {
+            if (data.odds_code.startsWith("five")) {
+              res.five = true;
+            }
+          });
+        });
+      });
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);     //需要拷贝
+        this.getAJAX('',this.serchTxt)                 //需要拷贝
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if(this.serchTxt != ""){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id =""; 
+       this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = '';
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+        // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str){
+      this.dateClick = str;
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+  created(){
+    this.fun_date();
+  },
+  mounted() {
+        //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+                        //需要拷贝
+    this.$store.dispatch("GETLOADING", true);
+    this.$store.dispatch("SET_BETTING",[]);    
+    this.getAJAX(this.lg_id);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+         _this.getAJAX(_this.lg_id,_this.serchTxt);
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy(){
+    this.timers = false;
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    //获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    },     
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);//设置默认值
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }       
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();  
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },      
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+  }  
+};
+</script>
+
+<style scoped>
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.header {
+  width: 100%;
+  min-height: 0.4rem;
+  background: #ccc;
+  font-size: 0.16rem;
+  color: #333;
+}
+.list {
+  width: 100%;
+}
+.list-header {
+  height: 0.5rem;
+  background: #e5e5e5;
+  font-size: 0.14rem;
+}
+.list-header-time {
+  width: 26%;
+}
+.list-header-time-num {
+  width: 0.5rem;
+  min-height: 0.5rem;
+  background: #bbb;
+  color: #fff;
+  cursor: pointer;
+}
+.list-header-time-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 40%;
+  bottom: -0.05rem;
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.list-header-title {
+  width: 70%;
+  min-height: 0.5rem;
+}
+.list-header-title > div {
+  width: 50%;
+  height: 100%;
+  color: #aaa;
+}
+.list-body {
+  font-size: 0.14rem;
+  min-height: 0.8rem;
+  background: #fcfcfc;
+}
+.list-body:hover {
+  background: #fff5e9;
+}
+.list-body-name {
+  width: 26%;
+  line-height: 0.4rem;
+}
+.list-body-center {
+  width: 70%;
+}
+.list-body-center > div {
+  width: 50%;
+  min-height: 0.5rem;
+}
+.list-body-center > div > div {
+  width: 100%;
+  height: 100%;
+}
+.list-body-center > div > div span {
+  line-height: 0.4rem;
+  text-align: right;
+  color: #f76649;
+}
+.btn {
+  width: 0.48rem !important;
+  height: 0.3rem;
+  text-align: center;
+  line-height: 0.3rem;
+  background: #fcfcfc;
+  border-radius: 0.05rem;
+  border: 0.01rem solid #eee;
+  cursor: pointer;
+}
+.btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.list-header-title p {
+  width: 0.82rem;
+  text-align: center;
+  min-height: 0.5rem;
+  line-height: 0.5rem;
+}
+.theball {
+  position: absolute;
+  left: 10%;
+  top: 2%;
+  width: 0.8rem;
+}
+.size {
+  position: absolute;
+  left: 50%;
+  top: 2%;
+}
+.guest {
+  top: 50%;
+}
+.ballbig {
+  position: absolute;
+  left: 32%;
+  top: 8%;
+  width: 0.8rem;
+}
+.ballsmall {
+  position: absolute;
+  left: 32%;
+  top: 56%;
+  width: 0.8rem;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: 0.1rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+
+
+
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/49/49269101d6a8027959d523c621a7ced85368ab59.svn-base


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/49/49c7cd5bb4fa4bd4276c5d4561b2b6ab7365d5a9.svn-base


+ 180 - 0
.svn/pristine/49/49eed9e589f98acba5286c716e24c67b28956896.svn-base

@@ -0,0 +1,180 @@
+<template>
+    <div class="basketball">
+        <div v-if="basketball.length == 0" class="no-message">暂无数据</div>
+        <div v-for="(item, index) of basketball" :key="index">
+            <el-table  :data="item.match_data">
+                <el-table-column type="expand" style="border: none">
+                    <template slot-scope="props">
+                        <div v-if="props.row.play_data.length == 4">
+                        <el-table style="width:600px;margin:0 auto" 
+                        :data="[].concat(props.row.play_data[2]).concat(props.row.play_data[3])">
+                            <el-table-column label="球队" prop="team_name" width="200"></el-table-column>
+                            <el-table-column label="第一节" prop="sc_1th"></el-table-column>
+                            <el-table-column label="第二节" prop="sc_2th"></el-table-column>
+                            <el-table-column label="第三节" prop="sc_3th"></el-table-column>
+                            <el-table-column label="第四节" prop="sc_4th"></el-table-column>
+                            <el-table-column label="加时" prop="sc_other"></el-table-column>
+                        </el-table>
+                        <div style="padding: 8px 8px;margin: 0 auto">
+                            <span style="font-weight:bold;">猜分:</span>
+                            <span style="display:inline-block;margin-right: 20px;">{{props.row.play_data[0].play_name}}:{{props.row.play_data[0].play_result}}</span>
+                            <span>{{props.row.play_data[1].play_name}}:{{props.row.play_data[1].play_result}}</span>
+                        </div>
+                        </div>
+                        <div v-else style="text-align:center">暂无数据</div>
+                    </template>
+                </el-table-column>
+                <el-table-column :label="item.league_name" width="400" align="center" style="border-left:none">
+                    <template slot-scope="scope">
+                        {{scope.row.match_time}}
+                        <span style="width: 400px;font-weight:bold">
+                            {{scope.row.home_team}}
+                            <span style="color: #ff9200">VS</span>
+                            {{scope.row.guest_team}}
+                        </span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="上半场" align="center" prop="score_half"></el-table-column>
+                <el-table-column label="下半场" align="center" prop="score_below"></el-table-column>
+                <el-table-column label="赛果" align="center" prop="score_result"></el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        name: 'basketball',
+        props: {
+            basketballData: {
+                type: Array,
+                default: ()=>[]
+            },
+            loading: {
+                type: Boolean,
+                default: false
+            }
+        },
+        data() {
+            return {
+                basketball: [],
+                BtLoading: false,
+                show: true,
+                test: '1'
+            }
+        },
+        watch: {
+            basketballData: {
+                handler(val) {
+                    if(val) {
+                        this.basketball = JSON.parse(JSON.stringify(val))
+                    }
+                },
+                deep: true
+            },
+            loading(val) {
+                this.BtLoading = val
+            }
+        },
+        methods: {
+            // 默认展开
+            initShow() {
+                for(let item of this.basketball) {
+                    item.show = !item.show;
+                }
+            },
+            setShow(val, index) {
+                val.show = !val.show
+            },
+        }
+    }
+</script>
+<style>
+    .basketball .el-table {
+        border-top: none;
+    }
+    .basketball .el-table th {
+        padding: 8px 0;
+        background-color: #373737;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 700;
+    }
+    .basketball .sec-table .el-table th {
+        padding: 4px 0;
+        background-color: #e3e3e3;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 500;
+    }
+    
+    .basketball .el-table td {
+        padding: 6px 0;
+    }
+    .basketball .el-table--border th {
+        border: none;
+    }
+</style>
+<style scoped>
+    /* /deep/ .el-table td, .el-table th {
+        padding: 6px 0;
+    } */
+    .game-grid {
+        box-sizing: border-box;
+        width: 800px;
+        border: solid 1px #e3e3e3;
+        border-top: none;
+        border-collapse: collapse;
+    }
+   .game-grid-head {
+       position: relative;
+       width: 100%;
+       height: 40px;
+       line-height: 40px;
+       background-color: #373737;
+       color: #ffffff;
+       font-size: 14px;
+       font-weight: 700;
+       text-align: center;
+   }
+   .img-size {
+       position: absolute;
+       height: 10px;
+       width: 10px;
+       top: 15px;
+       left: 10px;
+   }
+   .game-grid-one {
+       display:table-cell;
+       vertical-align: middle;
+       text-align: center;
+       font-size: 13px;
+       border-collapse: collapse;
+   }
+    .game-grid-cell {
+        display:table-cell;
+        vertical-align: middle;
+        text-align: center;
+        font-size: 13px;
+        border-collapse: collapse;
+        padding: 6px 0;
+        /* border-right: 1px solid #d7d7d7; */
+        border: 1px solid #d7d7d7;
+        border-top: none;
+    }
+    .no-message {
+        text-align: center;
+        margin-top: 50px;
+        padding-right: 100px;
+        font-size: 16px;
+        font-weight: 700;
+    }
+</style>
+<style scoped>
+    .no-message {
+        text-align: center;
+        margin-top: 50px;
+        padding-right: 100px;
+        font-size: 16px;
+        font-weight: 700;
+    }
+</style>

BIN=BIN
.svn/pristine/4d/4db5c36eee06ddf356b5fd8836b829e3b2348573.svn-base


+ 422 - 0
.svn/pristine/4e/4e9ee560418b8fd2e8bc84f76fb5895c269860c7.svn-base

@@ -0,0 +1,422 @@
+<template>
+  <div>
+    <div v-if="data.length >0 " class="bettingTable">
+      <div>
+        <div v-for="(item,index) in data" :key="index" style="border-bottom:.02rem solid #bbb" >
+          <div class="list-header row item-center allAlignment list">
+            <p class="br05 row center" style="padding:.05rem .1rem;background:#F00;">{{item.playName}}</p>
+            <div @click="deleteList(index,item.id,item.p_code)" class="row center"
+              style="width:.26rem;height:.26rem; border-radius:50%;background:#F76649;"  >
+              <img src="@/assets/st-imges/del.png">
+            </div>
+          </div>
+          <div class="list-body list" >
+            <div class="condition row item-center">
+              <span >{{item.name}}</span>
+              <span v-if="item.p_code != 'capot'" style="padding-left:.1rem;">{{item.condition}}</span>
+              <p style="padding-left:.1rem;">
+                @
+                <span style="color:#F76649">{{item.odds}}</span>
+              </p>
+              <!-- <span> <i>01 / 04</i></span> -->
+            </div>
+            <div class="duel row item-center">
+              <p>{{item.home_team}}</p>
+              <span style="color:#F76649;font-size:.12rem;">&emsp;vs&emsp;</span>
+              <p>{{item.guest_team}}</p>&nbsp;
+            </div>
+          </div>
+          <div class="list-input row item-center allAlignment list">
+            <div class="br05" style="border:.01rem solid #F76649;position: relative;">
+              <input type="text" @click="activation(index)" oncopy="return false" onpaste="return false"  @keyup="keyMatch($event,index)" v-model=" item.money "  placeholder="投注额">
+              <img @click="removeData(index)"
+                style="position: absolute;width:.2rem;height:.2rem;right:.1rem;top:.05rem;"
+                src="@/assets/st-imges/delbetting.png"
+              >
+            </div>
+            <div class="br05 canWin row item-center" >{{item.money ? (item.money*item.odds).toFixed(2) :'可赢额' }}</div>
+          </div>
+          <div v-show="state == index" class="key">
+            <div>
+              <div class="row average item-center">
+                <p @click ="addNum(index,100)">+100</p >
+                <p @click ="addNum(index,500)">+500</p>
+                <p @click ="addNum(index,1000)">+1000</p>
+              </div>
+              <div class="row average item-center">
+                <p @click ="addNum(index,5000)">+5000</p>
+                <p @click ="addNum(index,10000)">+10000</p>
+                <p @click ="addNum(index,50000)">+50000</p>
+              </div>
+            </div>
+          </div>
+          <!-- <p style="font-size:.14rem;color:#777">最低限额:10</p> -->
+        </div>
+      </div>
+      <div class="statistics">
+        <div class="statistics-list">
+          <p class="row allAlignment">
+            <span>
+              <i style="color:#F76649">{{data.length}}</i>&emsp;所有投注:
+            </span>
+            <span>{{investment?investment :'0.00' }}RMB</span>
+          </p>
+          <p class="row allAlignment">
+            <span>可赢金额:</span>
+            <span style="color:#F76649;font-size:.16rem;">{{profit?profit:'0.00'}}RMB</span>
+          </p>
+        </div>
+
+        <!-- <div
+          style="height:.5rem;background:#A83131;padding-left:.2rem;margin-top:.2rem;"
+          class="row item-center"
+        >
+          <img style="width:.17rem;height:.15rem;" src="@/assets/st-imges/warning.png">&nbsp;
+          <p style="color:#fff;font-size:.14rem;">您的余额不足。 请您先进行存款</p>
+        </div> -->
+
+        <!-- <div class="row center" style="height:.5rem;background:rgb(247, 102, 73);color:#fff;margin-top:.2rem;font-size:.14rem;">赔率信息已更改,请重新投注</div> -->
+        
+        <div class="statistics-btn">
+          <!-- <div class="row center" style="color:#F00;font-size:.16rem;">投注失败</div> -->
+          <div class="row center" v-if="!login" style="font-size:.16rem;color:#999">请先登陆再进去投注</div>
+          <div class="row center" v-else style="background:#F76649;color:#fff;" @click='submit'>投注</div>
+          <div class="row center" @click="cancel()" style="background:#CCC;color:#666;">取消</div>
+        </div>
+      </div>
+      
+    </div>
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+export default {
+  name: "oddBettingTable",
+  data() {
+    return {
+      data:[],
+      cacheData:[],
+      dataMoney:[],// 
+      state:0,//激活数
+      login:false,
+      investment:'',//投注资金
+      profit:'',//利润(可赢额)
+    };
+  },
+  /***
+  * 方法
+  */
+  methods: {
+    /*-------------------------------------*/
+    //切换激活状态
+    activation(index){
+      this.state = index;
+      //console.log(this.data)
+    },
+
+    /*-------------------------------------*/
+    //小键盘加法
+    addNum(index,num){
+      let money =  this.data[index].money ? this.data[index].money * 1 : 0;
+      //console.log(money)
+       if(money*1 > 999999999){
+        money = 999999999
+      }
+      this.$set(this.data[index],'money', (money*1 + num*1 ) < 999999999 ?  money*1 + num*1 :999999999 )
+      this.calculateMoney();
+    },
+
+    /*---------------------------------------*/
+    //数据提交
+    submit(){
+      let list  =[],dataList=[],objData = [];
+      let money = 0;
+      let limit = JSON.parse(this.$public.getItem('limit'));
+      this.data.forEach(e =>{
+        if(e.money*1 >= 1){
+          list.push(e);
+          money += e.money*1;
+        }
+      })
+      list.forEach((res,index) =>{
+        dataList.push({
+          type: "1",
+          index: index,
+          bet_amount: res.money
+        })
+      })
+      // dataList.push(objData);
+      dataList.push(list);
+      console.log(dataList)
+      if (list.length > 0 ) {
+        if(limit.lower_limit*1 <= money  && limit.upper_limit >= money ){
+          let token = localStorage.getItem("token");
+          this.$http.post(this.$ports.betOrder.Bet, {
+            data: dataList,
+            token,
+            bet_money:money
+          }).then(res => {
+            //console.log('数据',res.data);
+            if (res.data.status == 1) {
+              // this.alldel();
+              this.$store.dispatch("SET_BETTING",[]);
+              this.cash = (this.cash - this.dataNumbe * 1).toFixed(2);
+              this.$dialog.alert({ mes: "亲!你已经投注成功啦。" });
+            } else if (res.data.status == "-4001") {
+              this.isLogin = false;
+              this.$dialog.alert({ mes: "亲!你的登陆已过期。" });
+            } else if (res.data.status == "4204") {
+              this.$dialog.alert({ mes: "亲!你的余额不足。" });
+            }else if(res.data.status == '7027' ){
+              this.$dialog.alert({ mes: "亲!赔率发生变法,请重新选择。" });
+              // this.alldel();
+              this.$store.dispatch("SET_BETTING",[]);
+            }else{
+              this.$dialog.alert({ mes: "错误代码:"+res.data.status});
+            }
+            this.isSubmit = false;
+          });
+        }else if(limit.lower_limit*1  > money ){
+          this.$dialog.alert({ mes: `亲!投注额小于最低投注额${limit.lower_limit}元` });
+        }else if(limit.upper_limit*1 < money ){
+          this.$dialog.alert({ mes: `亲!投注额大于最高投注额${limit.upper_limit}元` });
+        }
+      } else {
+        this.$dialog.alert({ mes: "亲!你还未输入投注金额啦。" });
+        this.isSubmit = false;
+      }
+      
+    },
+    /*--------------------------------------*/
+    //限制输入内容
+    keyMatch(e,index) {
+      e.currentTarget.value = e.currentTarget.value.replace(/[^0-9]/g, "");
+      if(e.currentTarget.value.length > 9){
+        e.currentTarget.value = 999999999
+      }
+     
+      this.$set(this.data[index],'money',e.currentTarget.value);
+      this.calculateMoney();
+    },
+
+    /*-------------------------------------*/
+    //删除一条数据
+    deleteList(index,id,code){
+      let  betting= this.$store.getters.getBetting
+      for(let i=0;i < betting.length ;i++ ){
+        if(code == betting[i].title){
+          for(let j = 0;j < betting[i].data.length ; j++){
+            if(id == betting[i].data[j].id){
+              this.data[index].money ='';
+              betting[i].data.splice(j,1);
+              break;
+            }
+          }
+          break;
+        }
+      }
+      this.$store.dispatch("DEL_TYPE", id);
+      this.$store.dispatch("SET_BETTING",[]);
+      this.$store.dispatch("SET_BETTING",betting);
+      //console.log(betting);
+    },
+
+    /*----------------------------------*/
+    //清除数据
+    removeData(index){
+      this.$set(this.data[index],'money','')
+      this.calculateMoney();
+    },
+
+    /*----------------------------------*/
+    //计算可赢额和投注金额
+    calculateMoney(){
+      let investment = 0
+      let profit = 0
+      this.data.forEach(e=>{
+        if(e.money){
+          investment +=e.money*1;
+          profit += e.money*1 * e.odds*1
+        }
+      })
+      this.investment = investment;
+      this.profit = profit.toFixed(2);
+    },
+    
+    /*----------------------------------*/
+    // 取消
+    cancel(){
+      this.$store.dispatch("SET_BETTING",[]);
+    },
+  },
+  /**
+  * 计算属性
+  */
+  computed: {
+    getBetting(){
+      return this.$store.getters.getBetting
+    },
+    // 判断登录状态
+    getToken(){
+      return this.$store.getters.getToken
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getBetting(val){
+      let dataList = []; 
+      if(this.$store.getters.getLimit > 0){
+        val.forEach(e =>{
+          dataList = dataList.concat(e.data)
+        })
+      }
+      //console.log(this.data)
+      // 清除v-model 的数据
+      if(this.data.length  > dataList.length){
+        this.data.forEach((e,index)=>{
+          let isDel = false;
+          dataList.forEach(res=>{
+            if( e.id == res.id ){
+              isDel = true;
+            }
+          })
+          if(!isDel){
+            this.data[index].money ='';
+          }
+        })
+      }
+      this.data = [];
+      this.data  = dataList;
+      //console.log(this.data);
+    },
+    // 获取登录状态,判断登录
+    getToken(val){
+      this.login = val? true: false
+    }
+  },
+  mounted(){
+    if(localStorage.getItem("token")){
+      this.login = true;
+    }
+  }
+};
+</script>
+
+<style scoped>
+img {
+  cursor: pointer;
+}
+.canWin{
+  border:.01rem solid #BFE2B3;
+  background:#E7FFDA;
+  padding-left: .05rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.bettingTable {
+  min-height: 0.8rem;
+  background: #e5e5e5;
+}
+.dataNo {
+  background: #777;
+}
+.list {
+  width: 90%;
+  margin: 0 auto;
+}
+.list img {
+  width: 0.15rem;
+  height: 0.15rem;
+}
+.list-header {
+  min-height: 0.5rem;
+}
+.list-header p {
+  font-size: 0.14rem;
+  color: #fff;
+}
+.list-body {
+  min-height: 0.6rem;
+}
+.list-body > div {
+  min-height: 0.3rem;
+}
+.condition {
+  font-size: 0.16rem;
+  font-weight: bold;
+  color: #666;
+}
+.duel {
+  font-size: 0.14rem;
+  color: #666;
+}
+.list-input {
+  min-height: 0.6rem;
+}
+.list-input > div {
+  width: 48%;
+  height: 0.35rem;
+  color: #999;
+  font-size: 0.14rem;
+}
+.list-input > div input {
+  width: 100%;
+  height: 100%;
+  border: none;
+  border-radius: 0.05rem;
+  background: #fff;
+  padding-left: 0.05rem;
+}
+.key {
+  min-height: 1rem;
+  background: #ccc;
+}
+.key > div {
+  width: 90%;
+  margin: 0 auto;
+}
+.key > div > div {
+  min-height: 0.5rem;
+}
+.key p {
+  width: 30%;
+  height: 0.34rem;
+  background: #fff;
+  border-radius: 0.05rem;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #f76649;
+  font-size: 0.14rem;
+  cursor: pointer;
+   box-shadow: -2px 0px 5px 1px rgba(0, 0, 0, 0.05),
+    0px -2px 5px 1px rgba(0, 0, 0, 0.05), 2px 0px 5px 1px rgba(0, 0, 0, 0.05),
+    0px 2px 5px 1px rgba(0, 0, 0, 0.05);
+}
+.statistics {
+  min-height: 1.9rem;
+  background: #fff;
+}
+.statistics > div {
+  width: 90%;
+  margin: 0 auto;
+  padding: 0.2rem 0;
+}
+.statistics-list {
+  min-height: 0.6rem;
+  font-size: 0.14rem;
+}
+.statistics-list > p {
+  line-height: 0.3rem;
+}
+.statistics-btn > div {
+  height: 0.34rem;
+  border-radius: 0.05rem;
+  margin-top: 0.1rem;
+  cursor: pointer;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/4f/4fee2a135aa23b2ae771e69dddaafbb757cc8a81.svn-base


+ 370 - 0
.svn/pristine/50/50415648361d3ba4761d44b119fb32492add528a.svn-base

@@ -0,0 +1,370 @@
+<template>
+  <div>
+    <div class="abstract">
+      <div class="abstract-title pdg20">串式注单</div>
+      <div class="abstract-date pdg20 row item-cenrte">
+        <div class="row item-center">
+          <p style="color:#666;">开始日期</p>
+          <input type="date" :max="newTime" v-model="startTime">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">结束日期</p>
+          <input type="date" :max="newTime" v-model="endTime" :min="startTime">
+        </div>
+        <div class="row item-center" style="margin:0.2rem;">
+          <p style="color:#666;">注单状态</p>
+          <select v-model="status" class="select_class">
+            <option value=0 style="height: 0.4rem">全部</option>
+            <option value=1>未结算</option>
+            <option value=2>已结算</option>
+            <option value=-1>无效</option>
+          </select>
+        </div>
+        <button @click="ajaxclick()" style="margin-top:0.2rem">查询</button>
+      </div>
+      <div class="abstract-options row allAlignment">
+        <div class="row">
+          <div class="row center" @click="options(3)" :class="optionsActive==3?'active':''">过去30天</div>
+          <div class="row center" @click="options(2)" :class="optionsActive==2?'active':''">昨日</div>
+          <div class="row center" @click="options(1)" :class="optionsActive==1?'active':''">今日</div>
+        </div>
+      </div>
+      <div class="abstract-box scroll">
+        <yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item>
+              <yd-list-other slot="other">
+                <div
+                  v-for="(item,index) in list"
+                  :key="index"
+                  style="border-left:.01rem solid #ccc;border-top:.01rem solid #ccc;border-right:.01rem solid #ccc;"
+                >
+                <div style="width:100%;height:.6rem;background:#ccc;color:#f76649;border-bottom:.01rem solid #bbb;padding:0 .2rem" class="row center allAlignment">
+                    <p style="color:#777;">{{"时间:"+item.money_time}}</p>
+                    <p style="color:#333;">{{item.batch_id}}</p>
+                    <p>投注额:{{item.money}}元</p>
+                    <p>预期中奖金额:{{item.prize_money}}元</p>
+                    <p :style="item.game_status==0?'color:#aaa;':item.game_status==1&&item.game_status==3?'color:#296':'color:red;'">赢/输:{{item.game_status==0?'审核中':item.game_status==1?'赢':item.game_status==2?'输':'平'}}</p>
+                </div>
+                <div v-for="(items,i) in item.money_buy" :key="i">
+                  <div class="title row item-center allAlignment">
+                    <p style="width:12%">编号</p>
+                    <p style="width:12%">类别</p>
+                    <p style="width:20%">订单详情</p>
+                    <p style="width:12%">投注类别</p>
+                    <p style="width:22%">比赛</p>
+                    <p style="width:12%">赛果</p>
+                    <p style="width:10%">赢 / 输</p>
+                  </div>
+                  <ul class="list row">
+                    <li style="width:12%">{{i+1}}</li>
+                    <li style="width:12%">{{$public.getGameType(items.game_code)}}</li>
+                    <li style="width:20%">
+                      <p>{{item.money_time}}</p>
+                      <p>{{item.order_id}}</p>
+                    </li>
+                    <li style="width:12%"><p style="width:100%;text-align: center;">{{items.odds_name}}</p><p style="width:100%;text-align: center;">{{items.condition}}@{{items.odds}}</p></li>
+                    <li style="width:22%">
+                      <p style="width:100%;text-align:center;">{{items.home_team}}</p>
+                      <p>vs</p>
+                      <p style="width:100%;text-align:center;">{{items.guest_team}}</p>
+                    </li>
+                    <li style="width:12%">{{items.matchresult?items.matchresult:'--'}}</li>
+                    <li style="width:10%">{{items.status==0?'--':items.status==1?'赢':'输'}}</li>
+                  </ul>
+                </div>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+   
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "unitary",
+  data() {
+    return {
+      optionsActive: 3,
+      startTime: "",
+      newTime: "",
+      endTime: "",
+      page: 1,
+      pageSize: 10,
+      list: "",
+      status: 0,
+      statusType: [
+        {label: '全部', value: ''},
+        {label: '已结算', value: 1},
+        {label: '未结算', value: 2},
+        {label: '已失效', value: 3},
+      ]
+    };
+  },
+  methods: {
+        ajaxclick(){
+      // this.list='';
+      // this.page=1;
+      // this.loadList()
+      this.list = ''
+      this.page = 1
+      this.options(this.optionActive);
+    },
+     options(num) {
+      let date = new Date();
+      this.optionsActive = num;
+      if (this.optionsActive == 1) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else if (this.optionsActive == 2) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() < 10 ? "0" + date.getMonth() : date.getMonth()
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      }
+    },
+    date_fun() {
+      let date = new Date();
+      let date1 = new Date(date);
+      this.newTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+      this.startTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      this.endTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+    },
+    loadList() {
+      console.log('status', this.status)
+      this.$http
+        .post(this.$ports.login.bettingRecord, {
+          token: localStorage.getItem("token"),
+          startTime: this.startTime + " 00:00:00",
+          endTime: this.endTime + " 23:59:59",
+          type: 2,
+          currentPage: this.page,
+          pageSize: 10,
+          set_status: this.status
+        })
+        .then(res => {
+          // console.log(res,'res');
+          this.list = [...this.list, ...res.data.data.list];
+          console.log(this.list,'我的返回')
+          if (this.pageSize > res.data.data.list.length) {
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+        });
+    }
+  },
+  created() {
+    this.date_fun();
+  },
+  mounted() {
+    this.options(3);
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-mes {
+  padding: 0;
+}
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-other {
+  padding: 0;
+}
+div /deep/ .yd-list-other {
+  display: block;
+}
+.yd-list-theme5 .yd-list-item {
+  padding: 0;
+}
+div /deep/ .yd-list-img {
+  display: none;
+}
+div /deep/ .yd-list-loading {
+  display: none;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.abstract-title {
+  font-size: 0.18rem;
+  color: #fff;
+  height: 0.5rem;
+  background: #999;
+  line-height: 0.5rem;
+}
+.abstract-date {
+  height: 0.8rem;
+  font-size: 0.14rem;
+}
+input {
+  width: 1.7rem;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  color: #666;
+  border: 0.01rem solid #ddd;
+  border-radius: 0.05rem;
+  margin-left: 0.1rem;
+  cursor: pointer;
+}
+input[type="date"]::-webkit-inner-spin-button {
+  visibility: hidden;
+}
+input[type="date"]::-webkit-clear-button {
+  display: none;
+}
+input[type="date"]::-webkit-datetime-edit-fields-wrapper {
+  background-color: #eee;
+}
+input[type="date"]::-webkit-datetime-edit {
+  /* content: '起始时间'; */
+  padding-left: 0.1rem;
+}
+button {
+  background: #999;
+  border: none;
+  width: 0.6rem;
+  height: 0.4rem;
+  border-radius: 0.05rem;
+  color: #fff;
+  margin-left: 0.2rem;
+  cursor: pointer;
+}
+.abstract-options {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #999;
+}
+.abstract-options > div > div {
+  width: 1rem;
+  height: 0.4rem;
+  color: #fff;
+  background: #ccc;
+  margin-left: 0.01rem;
+  border-radius: 5px 5px 0px 0px;
+  cursor: pointer;
+}
+.abstract-options div.active {
+  background: #666;
+}
+.abstract-box {
+  min-height: 2.8rem;
+  max-height: 6.6rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.abstract-box > div {
+  margin-top: 0.2rem;
+}
+.abstract-box .title {
+  height: 0.4rem;
+  background: #ddd;
+  color: #333;
+}
+.abstract-box .title p {
+  text-align: center;
+}
+.abstract-box .title div {
+  width: 50%;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.abstract-box .list li {
+  width: 50%;
+  height: 1.1rem;
+  background: #fff;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  font-size: 0.14rem;
+  border-top: 0.01rem solid #ccc;
+  border-left: 0.01rem solid #ccc;
+  border-bottom: 0.01rem solid #ccc;
+}
+.abstract-box .list li:nth-child(1) {
+  border-left: none;
+}
+.select_class {
+    width: 1.7rem;
+    height: 0.4rem;
+    font-size: 0.14rem;
+    color: #666;
+    border: 0.01rem solid #ddd;
+    border-radius: 0.05rem;
+    margin-left: 0.1rem;
+    padding-left: 0.1rem;
+    cursor: pointer;
+}
+</style>

BIN=BIN
.svn/pristine/50/50bb7482b90b6f6f9319b595cd075b106daa27d3.svn-base


+ 461 - 0
.svn/pristine/51/5147c6950a2ef71bb362d65b297f170266508405.svn-base

@@ -0,0 +1,461 @@
+<template>
+  <div>
+    <div v-if=" obj.a">
+      <div class="tit">
+        <span>独赢</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'ch'">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="draw flex" v-if="andShow == 'zq'">
+          <span class="teamName">和局</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'cd'">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'和','独赢')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div class="oddsBox" v-for="(item,index) in data" v-if="item.odds_code == 'cg'">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="obj.b">
+      <div class="tit">
+        <span>独赢-上半场</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'ch_h'">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="draw flex" v-if="andShow == 'zq'">
+          <span class="teamName">和局</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'cd_h'">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'和','独赢-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'cg_h'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if=" obj.c">
+      <div class="tit">
+        <span>独赢-第一节</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'ch_1'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢-第一节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'cg_1'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢-第一节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if=" obj.d">
+      <div class="tit">
+        <span>独赢-第二节</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'ch_2'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢-第二节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'cg_2'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢-第二节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if=" obj.e">
+      <div class="tit">
+        <span>独赢-第三节</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'ch_3'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢-第三节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'cg_3'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢-第三节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if=" obj.f">
+      <div class="tit">
+        <span>独赢-第四节</span>
+      </div>
+      <div :class="andShow == 'zq'?'andCode' :'playCode'">
+        <div class="home flex">
+          <span class="teamName">{{home_team}}</span>
+          <div
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'ch_4'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,home_team,'独赢-第四节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">{{guest_team}}</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'cg_4'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,guest_team,'独赢-第四节')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "C",
+      andShow: "",
+      data: [],
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: {},
+      match_id: "",
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /**
+   * 页面初始化完成挂载
+   */
+  mounted() {
+    this.andShow = this.$store.getters.getBallCode;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="C" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        console.log('e', e)
+        e.lg_id = this.lg_id;
+        if (e.odds_code == 'ch' || e.odds_code == 'cg') {
+          obj.a = true;
+        } else if (e.odds_code.endsWith("_h")) {
+          obj.b = true;
+        } else if (e.odds_code.endsWith("_1")) {
+          obj.c = true;
+        } else if (e.odds_code.endsWith("_2")) {
+          obj.d = true;
+        } else if (e.odds_code.endsWith("_3")) {
+          obj.e = true;
+        } else if (e.odds_code.endsWith("_4")) {
+          obj.f = true;
+        }
+      });
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+        this.$forceUpdate();
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+        this.$forceUpdate();
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit(){
+      return this.$store.getters.getLimit
+    },
+    //获取投注数据数量
+    getLimit(){
+      return this.$store.getters.getLimit
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+       this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.playGrouping(this.data);
+          //console.log(this.data);
+        }
+      });
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val){
+      this.limit = val
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode,
+.andCode {
+  color: #333;
+  font-size: 0.14rem;
+  display: flex;
+  justify-content: space-between !important;
+}
+.playCode > div,
+.andCode > div {
+  padding: 0 0.1rem !important;
+  width: 50%;
+  min-height: 0.4rem;
+}
+.playCode .home,
+.playCode .guest {
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+}
+.andCode .home,
+.andCode .guest {
+  background: #fff;
+}
+.andCode .home {
+  padding-right: 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.playCode .home {
+  padding-right: 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+/* .oddsBox {
+  margin-right: 0.1rem;
+} */
+.odds {
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.home:hover,
+.guest:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+</style>

+ 329 - 0
.svn/pristine/53/534d92360353795c35bf4ba95c551c090f605668.svn-base

@@ -0,0 +1,329 @@
+<template>
+  <div>
+    <div class="abstract">
+      <div class="abstract-title pdg20">取款</div>
+      <div class="abstract-date pdg20 row item-center">
+        <div class="row item-center">
+          <p style="color:#666;">开始日期</p>
+          <input type="date" :max="newTime" v-model="startTime">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">结束日期</p>
+          <input type="date" :max="newTime" v-model="endTime" :min="startTime">
+        </div>
+        <button @click="ajaxclick()">查询</button>
+      </div>
+      <div class="abstract-options row allAlignment">
+        <div class="row">
+          <div class="row center" @click="options(3)" :class="optionsActive==3?'active':''">过去30天</div>
+          <div class="row center" @click="options(2)" :class="optionsActive==2?'active':''">昨日</div>
+          <div class="row center" @click="options(1)" :class="optionsActive==1?'active':''">今日</div>
+        </div>
+      </div>
+      <div class="abstract-box scroll">
+        <yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item>
+              <yd-list-other slot="other">
+                <div
+                  v-for="(item,index) in list" :key="index"
+                  style="border-left:.01rem solid #ccc;border-top:.01rem solid #ccc;border-right:.01rem solid #ccc;"
+                >
+                  <div class="title row item-center allAlignment">
+                    <p style="width:8%">编号</p>
+                    <p style="width:12%">操作时间</p>
+                    <p style="width:12%">通过时间</p>
+                    <p style="width:12%">打款时间</p>
+                    <p style="width:12%">银行卡号</p>
+                    <p style="width:12%">银行信息</p>
+                    <p style="width:12%">金额</p>
+                    <p style="width:12%">资金剩余</p>
+                    <p style="width:8%">审核</p>
+                  </div>
+                  <ul class="list row allAlignment" style="width:100%;">
+                    <li style="width:8%">{{index+1}}</li>
+                    <li style="width:12%">{{item.apply_time}}</li>
+                    <li style="width:12%">{{item.pass_time}}</li>
+                    <li style="width:12%">{{item.give_time}}</li>
+                    <li style="width:12%">{{item.bank_no}}</li>
+                    <li style="width:12%">{{item.bank_info}}</li>
+                    <li style="width:12%">{{item.money}}</li>
+                    <li style="width:12%">{{item.money_cash}}</li>
+                    <li style="width:8%" :style="item.status==0?'color:#ccc':item.status==1?'color:#4caf50':'color:red'">{{item.status==0?'待审核':item.status==1?'通过':'未通过'}}</li>
+                  </ul>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "withdrawals",
+  data() {
+    return {
+      optionsActive: 3,
+      startTime: "",
+      newTime: "",
+      endTime: "",
+      page: 1,
+      pageSize: 10,
+      list: ""
+    };
+  },
+  methods: {
+        ajaxclick(){
+      this.list='';
+      this.page=1;
+      this.loadList()
+    },
+     options(num) {
+      let date = new Date();
+      this.optionsActive = num;
+      if (this.optionsActive == 1) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else if (this.optionsActive == 2) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() < 10 ? "0" + date.getMonth() : date.getMonth()
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      }
+    },
+    date_fun() {
+      let date = new Date();
+      let date1 = new Date(date);
+      this.newTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+      this.startTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      this.endTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+    },
+    loadList() {
+      this.$http
+        .post(this.$ports.login.withdrawalsRecord, {
+          token: localStorage.getItem("token"),
+          startTime: this.startTime + " 00:00:00",
+          endTime: this.endTime + " 23:59:00",
+          currentPage: this.page,
+          pageSize: 10
+        })
+        .then(res => {
+          // console.log(res);
+          if (res) {
+            res.data.data.list.forEach((e, index) => {
+              if (e.status == 0) {
+                res.data.data.list.splice(index, 1);
+              }
+            });
+            this.list = [...this.list, ...res.data.data.list];
+          }
+          if (this.pageSize > res.data.data.list.length) {
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+        });
+    }
+  },
+  created() {
+    this.date_fun();
+  },
+  mounted() {
+    this.options(3)
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-mes {
+  padding: 0;
+}
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-other {
+  padding: 0;
+}
+div /deep/ .yd-list-other {
+  display: block;
+}
+.yd-list-theme5 .yd-list-item {
+  padding: 0;
+}
+div /deep/ .yd-list-img {
+  display: none;
+}
+div /deep/ .yd-list-loading {
+  display: none;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.abstract-title {
+  font-size: 0.18rem;
+  color: #fff;
+  height: 0.5rem;
+  background: #999;
+  line-height: 0.5rem;
+}
+.abstract-date {
+  height: 0.8rem;
+  font-size: 0.14rem;
+}
+input {
+  width: 1.7rem;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  color: #666;
+  border: 0.01rem solid #ddd;
+  border-radius: 0.05rem;
+  margin-left: 0.1rem;
+  cursor: pointer;
+}
+input[type="date"]::-webkit-inner-spin-button {
+  visibility: hidden;
+}
+input[type="date"]::-webkit-clear-button {
+  display: none;
+}
+input[type="date"]::-webkit-datetime-edit-fields-wrapper {
+  background-color: #eee;
+}
+input[type="date"]::-webkit-datetime-edit {
+  /* content: '起始时间'; */
+  padding-left: 0.1rem;
+}
+button {
+  background: #999;
+  border: none;
+  width: 0.6rem;
+  height: 0.4rem;
+  border-radius: 0.05rem;
+  color: #fff;
+  margin-left: 0.2rem;
+  cursor: pointer;
+}
+.abstract-options {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #999;
+}
+.abstract-options > div > div {
+  width: 1rem;
+  height: 0.4rem;
+  color: #fff;
+  background: #ccc;
+  margin-left: 0.01rem;
+  border-radius: 5px 5px 0px 0px;
+  cursor: pointer;
+}
+.abstract-options div.active {
+  background: #666;
+}
+.abstract-box {
+  min-height: 2.8rem;
+  max-height: 6.6rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.abstract-box > div {
+  margin-top: 0.2rem;
+}
+.abstract-box .title {
+  height: 0.4rem;
+  background: #ddd;
+  color: #333;
+}
+.abstract-box .title p {
+  text-align: center;
+}
+.abstract-box .title div {
+  width: 50%;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.abstract-box .list li {
+  width: 50%;
+  height: 0.4rem;
+  background: #fff;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  font-size: 0.14rem;
+  border-top: 0.01rem solid #ccc;
+  border-left: 0.01rem solid #ccc;
+  border-bottom: 0.01rem solid #ccc;
+}
+.abstract-box .list li:nth-child(1) {
+  border-left: none;
+}
+</style>

+ 713 - 0
.svn/pristine/53/53e8ae3c753d4030f182a4b23c2ccb176b1e86b8.svn-base

@@ -0,0 +1,713 @@
+<template>
+  <div>
+    <div class="serch row item-center allAlignment" v-if="noShow">
+      <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+        <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+      </div>
+      <div class="row item-center">
+        <div class="row item-center">
+          <input
+            class="fz14"
+            type="text"
+            placeholder="请输入联赛和球队名称"
+            v-model="serchTxt"
+            onkeyup="this.value=this.value.replace(/\s+/g,'')"
+            color="#AAA"
+          >
+          <div class="row center serch-img pointer hover" @click="Search()">
+            <img src="@/assets/st-imges/serch.png" alt>
+          </div>
+        </div>
+        <div class="row item-center">
+          <div class="row center clear pointer hover br05 fz14" @click="clearSearchTxt()">清除</div>
+          <div class="row center redraw pointer hover br05" @click="red()">
+            <img src="@/assets/st-imges/redraw.png" alt>
+          </div>
+        </div>
+      </div>
+    </div>
+           <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+    <div class="singleAndDouble" v-for="(item,index) in data" :key="index">
+      <div class="singleAndDouble-header pdg20 row">
+        <div style="width:25%;min-height:.5rem;font-size:.16rem;" class="row item-center">{{item.leagueName}}</div>
+        <div style="width:37%;height:100%" class="singleAndDouble-header-title">
+          <div class="row center">全场</div>
+          <div class="row item-center allAlignment" style="padding:0 .7rem;color:#999">
+            <p>1</p>
+            <p>X</p>
+            <p>2</p>
+          </div>
+        </div>
+        <div style="width:37%;height:100%" class="singleAndDouble-header-title">
+          <div class="row center">上半场</div>
+          <div class="row item-center allAlignment" style="padding:0 .7rem;color:#999">
+            <p>1</p>
+            <p>X</p>
+            <p>2</p>
+          </div>
+        </div>
+      </div>
+      <div
+        class="singleAndDouble-body row pdg20"
+        style="border-bottom:.01rem solid #ddd"
+        v-for="(items,i) in item.matchData"
+        :key="i"
+      >
+        <div style="width:25%;" class="row item-center">
+          <div
+            style="width:.8rem;text-align:center;margin-right:.1rem;height:100%;line-height:.2rem;padding:.05rem 0;"
+          >
+            <p>{{items.match_date}}</p>
+            <p style="font-size:.12rem;color:#F76649">{{items.match_time}}</p>
+            <p>
+              <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
+            </p>
+          </div>
+          <div>
+            <p>{{items.home_team}}</p>
+            <p style="margin-top:.1rem;">{{items.guest_team}}</p>
+          </div>
+        </div>
+        <!-- 全场 -->
+        <div
+          style="width:37%;padding:0 .2rem;border-right:.01rem solid #ddd;"
+          class="row item-center"
+        >
+          <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" style="position: relative;">
+            <div
+              v-if="itemList.odds_code == 'ch' || itemList.odds_code == 'cg' || itemList.odds_code == 'cd'"
+              :class="itemList.odds_code == 'ch' ?'list-left':itemList.odds_code  == 'cg'?'list-center':'list-right'"
+            >
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'ch'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'独赢')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'cg'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'独赢')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'cd'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'和','独赢')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+            </div>
+          </div>
+        </div>
+        <!-- 半场 -->
+        <div style="width:37%;padding:0 .2rem;" class="row item-center">
+          <div v-for="(itemList,idx) in items.oddsData" :key="itemList.id" style="position: relative;">
+            <div
+              v-if="itemList.odds_code == 'ch_h'  || itemList.odds_code == 'cg_h' || itemList.odds_code == 'cd_h'"
+              :class="itemList.odds_code == 'ch_h'?'list-left':itemList.odds_code == 'cg_h' ?'list-center':'list-right'"
+            >
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'ch_h'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'独赢-上半场')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'cg_h'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'独赢-上半场')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+              <p
+                class="singleAndDouble-list-btn"
+                v-if="itemList.odds_code == 'cd_h'"
+                @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'和','独赢-上半场')"
+                :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+              >{{itemList.odds?itemList.odds:'-'}}</p>
+            </div>
+          </div>
+          <!-- <p class="singleAndDouble-list-btn">{{items.half.odd?items.half.odd:'-'}}</p>
+          <p class="singleAndDouble-list-btn">{{items.half.odd?items.half.odd:'-'}}</p>
+          <p class="singleAndDouble-list-btn">{{items.half.event?items.half.event:'-'}}</p>-->
+        </div>
+        <div @click="promptInfo()" class="right-img">
+          <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+          <br>
+          <img src="@/assets/st-imges/TheScore.png">
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "OnlyWin1X2",
+  components:{
+    noData
+  },
+  data() {
+    return {
+      data: [],
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode,
+      timers:true,
+      noData : false, //无数据显示
+      limit : '',
+      passLimit:'',
+      lg_id:'',//联赛  需要拷贝
+      dataList:[],
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      noShow:true, // 无数据时不显示
+    };
+  },
+  mounted() {
+     //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+    //需要拷贝
+
+
+    this.$store.dispatch("GETLOADING", true);
+    this.getAJAX(this.lg_id);
+    this.$store.dispatch("SET_BETTING",[]);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        this.getAJAX(_this.lg_id,_this.serchTxt);
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  methods: {
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+
+    getAJAX(lg_id,search) {
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      }else{
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.$store.getters.getActivity,
+          p_code: this.$store.getters.getPaly_code,
+          game_code: this.$store.getters.getBallCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,
+          lg_id,
+          search,
+        })
+        .then(res => {
+          if (res.data.status == 1 && res.data.data.length > 0) {
+            this.noData = false;
+          //  //数据匹配判断是否上一次有数据
+          //   if(this.dataList.length){
+          //     this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+          //   }
+            this.data = res.data.data[0];
+            let betting = '';
+            //console.log(this.data,'res')
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            if(this.$store.getters.getActivity == 'StStringScene'){
+              betting = this.$store.getters.getPassBetting;
+            }else{
+              betting = this.$store.getters.getBetting;
+            }               
+              this.dataGroup(this.data,betting)
+            // console.log('data',this.data)
+            this.$store.dispatch("GETLOADING", false);
+          }else{
+            this.noData = true;
+          
+          }
+            this.noShow = true;
+            this.$store.dispatch("GETLOADING", false);  
+        });
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },    
+    // 修改选中样式
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;     
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      let acty =  this.$store.getters.getActivity;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }        
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+          _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }            
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+      if(this.limit < 10){
+                this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })      
+      //   if(this.$store.getters.getActivity == 'StStringScene'){
+      //     this.data[idx].matchData.forEach((val,i) =>{
+      //       val.oddsData.forEach(item =>{
+      //         // 当isTrue值为true时,点击时置为false
+      //         if(val.match_id == match_id){
+      //           // 当isTrue值为true时,点击时置为false
+      //           if(item.isTrue == true){
+      //               item.isTrue = false;
+      //             }
+      //         }
+      //         if(item.id == id){
+      //           this.$forceUpdate();
+      //           this.$set(item, "isTrue", item.isTrue ? false : true);
+      //         }
+      //       })
+      //     })
+      // }else{
+      //   this.data[idx].matchData.forEach((val, i) => {
+      //     val.oddsData.forEach(item => {
+      //       if (item.id == id) {
+      //         this.$forceUpdate();
+      //         this.$set(item, "isTrue", item.isTrue ? false : true);
+      //       }
+      //     });
+      //   });
+      // }
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })             
+      }
+    },
+    //搜索按钮被点击
+    Search() {
+      //判断搜索框内是否有值,没有值中断函数
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]); //需要拷贝
+        this.getAJAX('',this.serchTxt)
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if(this.serchTxt){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";      
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = ''
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+  // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+     //日期按钮按下调用
+     dateActive(str){
+      this.dateClick = str;
+      this.data = ''
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    }                
+  },
+  watch: {
+    getActy(val) {
+      // this.activity = val;
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }       
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+    // 删除选中数据
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },           
+  },
+   created(){
+    this.fun_date();
+  },
+};
+</script>
+<style scoped>
+.list-left {
+  position: absolute;
+  left: 0.35rem;
+  bottom: -0.15rem;
+}
+.list-center {
+  position: absolute;
+  left: 2rem;
+  bottom: -0.15rem;
+}
+.list-right {
+  position: absolute;
+  left: 1.15rem;
+  bottom: -0.15rem;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.singleAndDouble-header {
+  min-height: 0.5rem;
+  background: #e5e5e5;
+}
+.singleAndDouble-header-title div {
+  height: 0.25rem;
+}
+.singleAndDouble-body {
+  position: relative;
+  background: #fff;
+}
+.singleAndDouble-body:hover {
+  background: #fff5e9;
+}
+.singleAndDouble-list-btn {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.singleAndDouble-list-btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: 0.05rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+* {
+  font-size: 0.14rem;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+
+
+
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

+ 145 - 0
.svn/pristine/56/56fbdb705764b6dfafcd8ddf5336eb3152afff87.svn-base

@@ -0,0 +1,145 @@
+'use strict'
+const path = require('path')
+const utils = require('./utils')
+const webpack = require('webpack')
+const config = require('../config')
+const merge = require('webpack-merge')
+const baseWebpackConfig = require('./webpack.base.conf')
+const CopyWebpackPlugin = require('copy-webpack-plugin')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const ExtractTextPlugin = require('extract-text-webpack-plugin')
+const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
+
+const env = require('../config/prod.env')
+
+const webpackConfig = merge(baseWebpackConfig, {
+  module: {
+    rules: utils.styleLoaders({
+      sourceMap: config.build.productionSourceMap,
+      extract: true,
+      usePostCSS: true
+    })
+  },
+  devtool: config.build.productionSourceMap ? config.build.devtool : false,
+  output: {
+    path: config.build.assetsRoot,
+    filename: utils.assetsPath('js/[name].[chunkhash].js'),
+    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
+  },
+  plugins: [
+    // http://vuejs.github.io/vue-loader/en/workflow/production.html
+    new webpack.DefinePlugin({
+      'process.env': env
+    }),
+    new UglifyJsPlugin({
+      uglifyOptions: {
+        compress: {
+          warnings: false
+        }
+      },
+      sourceMap: config.build.productionSourceMap,
+      parallel: true
+    }),
+    // extract css into its own file
+    new ExtractTextPlugin({
+      filename: utils.assetsPath('css/[name].[contenthash].css'),
+      // Setting the following option to `false` will not extract CSS from codesplit chunks.
+      // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
+      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 
+      // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
+      allChunks: true,
+    }),
+    // Compress extracted CSS. We are using this plugin so that possible
+    // duplicated CSS from different components can be deduped.
+    new OptimizeCSSPlugin({
+      cssProcessorOptions: config.build.productionSourceMap
+        ? { safe: true, map: { inline: false } }
+        : { safe: true }
+    }),
+    // generate dist index.html with correct asset hash for caching.
+    // you can customize output by editing /index.html
+    // see https://github.com/ampedandwired/html-webpack-plugin
+    new HtmlWebpackPlugin({
+      filename: config.build.index,
+      template: 'index.html',
+      inject: true,
+      minify: {
+        removeComments: true,
+        collapseWhitespace: true,
+        removeAttributeQuotes: true
+        // more options:
+        // https://github.com/kangax/html-minifier#options-quick-reference
+      },
+      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
+      chunksSortMode: 'dependency'
+    }),
+    // keep module.id stable when vendor modules does not change
+    new webpack.HashedModuleIdsPlugin(),
+    // enable scope hoisting
+    new webpack.optimize.ModuleConcatenationPlugin(),
+    // split vendor js into its own file
+    new webpack.optimize.CommonsChunkPlugin({
+      name: 'vendor',
+      minChunks (module) {
+        // any required modules inside node_modules are extracted to vendor
+        return (
+          module.resource &&
+          /\.js$/.test(module.resource) &&
+          module.resource.indexOf(
+            path.join(__dirname, '../node_modules')
+          ) === 0
+        )
+      }
+    }),
+    // extract webpack runtime and module manifest to its own file in order to
+    // prevent vendor hash from being updated whenever app bundle is updated
+    new webpack.optimize.CommonsChunkPlugin({
+      name: 'manifest',
+      minChunks: Infinity
+    }),
+    // This instance extracts shared chunks from code splitted chunks and bundles them
+    // in a separate chunk, similar to the vendor chunk
+    // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
+    new webpack.optimize.CommonsChunkPlugin({
+      name: 'app',
+      async: 'vendor-async',
+      children: true,
+      minChunks: 3
+    }),
+
+    // copy custom static assets
+    new CopyWebpackPlugin([
+      {
+        from: path.resolve(__dirname, '../static'),
+        to: config.build.assetsSubDirectory,
+        ignore: ['.*']
+      }
+    ])
+  ]
+})
+
+if (config.build.productionGzip) {
+  const CompressionWebpackPlugin = require('compression-webpack-plugin')
+
+  webpackConfig.plugins.push(
+    new CompressionWebpackPlugin({
+      asset: '[path].gz[query]',
+      algorithm: 'gzip',
+      test: new RegExp(
+        '\\.(' +
+        config.build.productionGzipExtensions.join('|') +
+        ')$'
+      ),
+      threshold: 10240,
+      minRatio: 0.8
+    })
+  )
+}
+
+if (config.build.bundleAnalyzerReport) {
+  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
+  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
+}
+
+module.exports = webpackConfig

BIN=BIN
.svn/pristine/57/5776c25b9df33b8d1452b4aa444f73c1ec7c0e90.svn-base


+ 533 - 0
.svn/pristine/58/58c329ac1dbc67cc95aaf8b64e6e94af610cf7be.svn-base

@@ -0,0 +1,533 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div v-if="obj.a ">
+        <div class="tit">
+          <span>让盘</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldh'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让盘')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldg'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让盘')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+     <div v-if="obj.b ">
+        <div class="tit">
+          <span>让盘-第一节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldh_1'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-上半场')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldg_1'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-上半场')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.c">
+        <div class="tit">
+          <span>让盘-第二节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldh_2'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让盘-第一节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'ldg_2'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让盘-第二节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!--  <div v-if="obj.d ">
+        <div class="tit">
+          <span>让球-第二节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'two_concede_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第二节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'two_concede_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第二节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.e">
+        <div class="tit">
+          <span>让球-第三节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'three_concede_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第三节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'three_concede_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第三节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.f ">
+        <div class="tit">
+          <span>让球-第四节</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'four_concede_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-第四节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'four_concede_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-第四节')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.g ">
+        <div class="tit">
+          <span>让球-前五局</span>
+        </div>
+        <div class="playCode">
+          <div class="row item-center">
+            <div class="teamName wrap">{{home_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'five_concede_home'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,home_team,'让球-前五局')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="teamName wrap">{{guest_team}}</div>
+            <div class="row allAlignment">
+              <div
+                class="row center obbsBox rightAlignment"
+                v-for="(item,index) in data"
+                v-if="item.odds_code == 'five_concede_guest'"
+              >
+                <span class="condation">{{item.condition}}</span>
+                <div
+                  class="odds row center"
+                  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                  @click="betMethod(index,item.id,guest_team,'让球-前五局')"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>-->
+    </div> 
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "LD",
+      data: [], //数据源
+      isData: "", //是否有数据
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "", //
+      match_id: "", //赛事id
+      limit: "", //投注数量
+      lg_id: ""
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+        if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="LD" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+
+        e.lg_id = this.lg_id;
+        if (e.odds_code.startsWith("ld")) {
+          obj.a = true;
+        }else if (e.odds_code.endsWith("_1")) {
+          obj.b = true;
+        }else if (e.odds_code.endsWith("_2")) {
+          obj.c = true;
+        }
+        // else if (e.odds_code.startsWith("one")) {
+        //   obj.c = true;
+        // } else if (e.odds_code.startsWith("two")) {
+        //   obj.d = true;
+        // } else if (e.odds_code.startsWith("three")) {
+        //   obj.e = true;
+        // } else if (e.odds_code.startsWith("four")) {
+        //   obj.f = true;
+        // } else if (e.odds_code.startsWith("five")) {
+        //   obj.g = true;
+        // }
+      });
+      this.obj = obj;
+
+    },
+
+    /*-------------------------------------------*/
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        if (this.limit < 10) {
+          this.$set(this.data[index], "isTrue", true);
+        }
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    //获取玩法数据
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    //玩法数据处理和监听
+    getGameRatio(val) {
+      this.lg_id = val.lg_id;
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          console.log(this.data,'wp')
+          this.isData = true;
+          this.playGrouping(this.data);
+        }
+      });
+
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            let id = this.$store.getters.getDeleteType;
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+  min-height: 0.8rem;
+}
+.playCode > div {
+  min-height: 0.4rem;
+  font-size: 0.14rem;
+}
+.obbsBox {
+  width: 1.3rem;
+}
+.teamName {
+  width: 1.5rem;
+}
+.odds {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+
+.odds:hover,
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.condation {
+  color: #f4755b;
+  font-weight: bold;
+  margin-right: 0.1rem;
+}
+
+.guest .odds span {
+  line-height: 0.44rem;
+}
+</style>

BIN=BIN
.svn/pristine/59/5906265575e26f42b1eb7e694a9249805c83c5ef.svn-base


+ 259 - 0
.svn/pristine/5c/5cb256fc22683455190b0a0b22895ffa489caa5a.svn-base

@@ -0,0 +1,259 @@
+<template>
+  <div>
+    <div v-if="obj.a">
+      <div class="tit">
+        <span>总进球数</span>
+      </div>
+      <div class="playCode">
+        <div
+          class="item flex"
+          v-for="(item,index) in data"
+          v-if="item.odds_code.startsWith('tg') && !item.odds_code.endsWith('_h')"
+        >
+          <span class="teamName">{{item.condition}}</span>
+          <div @click="betMethod(index,item.id,'','总进球数')">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="obj.b">
+      <div class="tit">
+        <span>总进球数-上半场</span>
+      </div>
+      <div class="playCode">
+        <div
+          class="item flex"
+          v-for="(item,index) in data"
+          v-if="item.odds_code.endsWith('_h')"
+        >
+          <span class="teamName">{{item.condition}}</span>
+          <div @click="betMethod(index,item.id,'','总进球数-上半场')">
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "TG",
+      data: [], //数据源
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "", //
+      match_id: "",
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="TG" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        e.lg_id = this.lg_id;
+        if (e.odds_code.startsWith("tg") && !e.odds_code.endsWith("_h")) {
+          obj.a = true;
+        } else if (e.odds_code.endsWith("_h")) {
+          obj.b = true;
+        }
+      });
+      data.sort((a, z) => {
+        console.log(a.condition[0]);
+        if(a.condition[0] == 0){
+          return -100;
+        }else{
+          return -a.condition[0];
+        }
+      });
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let ballId = this.$store.getters.getBallCode;
+      let _this = this;
+      //console.log(this.home_team,this.guest_team)
+      let teamName = {
+        home:this.home_team,
+        guest:this.guest_team
+      };
+      this.$public.publicBetMethod(this.data,this.title,id,index,betting,teamName,playName,name,this.match_id,ballId,this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      //console.log(this.$store.getters.getGameRatio)
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+     // console.log(val,'我的')
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.playGrouping(this.data);
+        }
+      });
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  display: flex;
+}
+.playCode .item,
+.playCode .guest {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  width: 25%;
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+}
+.playCode .item {
+  width: calc(25% - 1px);
+  padding: 0 0.1rem;
+  font-size: 0.14rem;
+  border-right: 1px solid #e4e4e4;
+}
+.playCode .item:nth-last-child(1) {
+  border-right: none;
+}
+.oddsBox {
+  margin-right: 0.1rem;
+}
+.odds {
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.item:hover,
+.guest:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.teamName {
+  color: #f76649;
+  font-weight: bold;
+}
+</style>

+ 339 - 0
.svn/pristine/5d/5dc04b3c473dd29be358e602bb7ff81fa2d0931d.svn-base

@@ -0,0 +1,339 @@
+<template>
+  <div>
+    <div class="abstract">
+      <div class="abstract-title pdg20">盈利</div>
+      <div class="abstract-date pdg20 row item-center">
+        <div class="row item-center">
+          <p style="color:#666;">开始日期</p>
+          <input type="date" :max="newTime" v-model="startTime">
+        </div>
+        <div class="row item-center" style="margin:0 .2rem;">
+          <p style="color:#666;">结束日期</p>
+          <input type="date" :max="newTime" v-model="endTime" :min="startTime">
+        </div>
+        <button @click="ajaxClick()">查询</button>
+      </div>
+      <div class="abstract-options row allAlignment">
+        <div class="row">
+          <div class="row center" @click="options(3)" :class="optionsActive==3?'active':''">过去30天</div>
+          <div class="row center" @click="options(2)" :class="optionsActive==2?'active':''">昨日</div>
+          <div class="row center" @click="options(1)" :class="optionsActive==1?'active':''">今日</div>
+        </div>
+      </div>
+      <div class="abstract-box scroll">
+        <yd-infinitescroll :callback="loadList" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item>
+              <yd-list-other slot="other">
+                <div
+                  v-for="(item,index) in list"
+                  :key="index"
+                  style="border-left:.01rem solid #ccc;border-top:.01rem solid #ccc;border-right:.01rem solid #ccc;"
+                >
+                  <div class="title row item-center allAlignment">
+                    <p style="width:20%">编号</p>
+                    <p style="width:25%">更新日期 / 时间</p>
+                    <p style="width:20%">交易号</p>
+                    <!-- <p style="width:12%">游戏玩法</p>
+                    <p style="width:18%">赛事</p>-->
+                    <p style="width:20%">金额</p>
+                    <p style="width:15%">状态</p>
+                  </div>
+                  <ul class="list row allAlignment" style="width:100%;">
+                    <li style="width:20%">{{index+1}}</li>
+                    <li style="width:25%">{{item.money_time}}</li>
+                    <li style="width:20%">{{item.order_id}}</li>
+                    <!-- <li style="width:12%">足球-让球</li>
+                    <li style="width:18%">乌拉圭vs冰岛</li>-->
+                    <li style="width:20%">{{item.getmoney}}</li>
+                    <li style="width:15%">已核实</li>
+                  </ul>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "loss",
+  data() {
+    return {
+      optionsActive: 3, //选项卡激活
+      startTime: "",
+      newTime: "",
+      endTime: "",
+      page: 1,
+      pageSize: 20,
+      list: ""
+    };
+  },
+  methods: {
+    ajaxclick() {
+      this.list = "";
+      this.page = 1;
+      this.loadList();
+    },
+    options(num) {
+      let date = new Date();
+      this.optionsActive = num;
+      if (this.optionsActive == 1) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() < 10 ? "0" + date.getDate() : date.getDate()
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else if (this.optionsActive == 2) {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${
+          date.getDate() - 1 < 10
+            ? "0" + (date.getDate() - 1)
+            : date.getDate() - 1
+        }`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      } else {
+        this.startTime = `${date.getFullYear()}-${
+          date.getMonth() < 10 ? "0" + date.getMonth() : date.getMonth()
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.endTime = `${date.getFullYear()}-${
+          date.getMonth() + 1 < 10
+            ? "0" + (date.getMonth() + 1)
+            : date.getMonth() + 1
+        }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+        this.page = 1;
+        this.list = "";
+        this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+        this.loadList();
+      }
+    },
+    // 初始化时间
+    date_fun() {
+      let date = new Date();
+      let date1 = new Date(date);
+      this.newTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+      this.startTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      this.endTime = `${date1.getFullYear()}-${
+        date1.getMonth() + 1 < 10
+          ? "0" + (date1.getMonth() + 1)
+          : date1.getMonth() + 1
+      }-${date1.getDate() < 10 ? "0" + date1.getDate() : date1.getDate()}`;
+      date1.setMonth(date.getMonth() - 3);
+    },
+    // 请求发送
+    loadList() {
+      this.$http
+        .post(this.$ports.login.ProfitAndLossRecord, {
+         currentPage: this.page,
+          pageSize: this.pageSize,
+          startTime: this.startTime + " 00:00:00", //此处是补全开始时间的时间
+          endTime:this.endTime + ' 23:59:59',
+          token: localStorage.getItem("token"),
+          money_type: 1
+        })
+        .then(res => {
+          console.log(res);
+          if (res) {
+            let arr=[]
+            res.data.data.list.forEach((e, index) => {
+              e.gain_money = parseFloat(e.gain_money)
+              if((e.gain_money - e.money)<0){
+                e.getmoney = e.gain_money - e.money
+                e.getmoney = e.getmoney.toFixed(2)
+                arr.push(e)
+              }
+            });
+            this.list = [...this.list, ...arr];
+            console.log(this.list);
+          }
+          if (this.pageSize > res.data.data.list.length) {
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+        });
+    },
+    // 点击查询
+    ajaxClick() {
+      this.page = 1;
+      this.list = "";
+      this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+      this.loadList();
+    }
+  },
+  created() {
+    this.date_fun();
+  },
+  mounted() {
+    this.options(3);
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-mes {
+  padding: 0;
+}
+div /deep/ .yd-list-theme5 .yd-list-item .yd-list-other {
+  padding: 0;
+}
+div /deep/ .yd-list-other {
+  display: block;
+}
+.yd-list-theme5 .yd-list-item {
+  padding: 0;
+}
+div /deep/ .yd-list-img {
+  display: none;
+}
+div /deep/ .yd-list-loading {
+  display: none;
+}
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.abstract-title {
+  font-size: 0.18rem;
+  color: #fff;
+  height: 0.5rem;
+  background: #999;
+  line-height: 0.5rem;
+}
+.abstract-date {
+  height: 0.8rem;
+  font-size: 0.14rem;
+}
+input {
+  width: 1.7rem;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  color: #666;
+  border: 0.01rem solid #ddd;
+  border-radius: 0.05rem;
+  margin-left: 0.1rem;
+  cursor: pointer;
+}
+input[type="date"]::-webkit-inner-spin-button {
+  visibility: hidden;
+}
+input[type="date"]::-webkit-clear-button {
+  display: none;
+}
+input[type="date"]::-webkit-datetime-edit-fields-wrapper {
+  background-color: #eee;
+}
+input[type="date"]::-webkit-datetime-edit {
+  /* content: '起始时间'; */
+  padding-left: 0.1rem;
+}
+button {
+  background: #999;
+  border: none;
+  width: 0.6rem;
+  height: 0.4rem;
+  border-radius: 0.05rem;
+  color: #fff;
+  margin-left: 0.2rem;
+  cursor: pointer;
+}
+.abstract-options {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #999;
+}
+.abstract-options > div > div {
+  width: 1rem;
+  height: 0.4rem;
+  color: #fff;
+  background: #ccc;
+  margin-left: 0.01rem;
+  border-radius: 5px 5px 0px 0px;
+  cursor: pointer;
+}
+.abstract-options div.active {
+  background: #666;
+}
+.abstract-box {
+  min-height: 2.8rem;
+  max-height: 6.6rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.abstract-box > div {
+  margin-top: 0.2rem;
+}
+.abstract-box .title {
+  height: 0.4rem;
+  background: #ddd;
+  color: #333;
+}
+.abstract-box .title p {
+  text-align: center;
+}
+.abstract-box .title div {
+  width: 50%;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.abstract-box .list li {
+  width: 50%;
+  height: 0.4rem;
+  background: #fff;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  font-size: 0.14rem;
+  border-top: 0.01rem solid #ccc;
+  border-left: 0.01rem solid #ccc;
+  border-bottom: 0.01rem solid #ccc;
+}
+.abstract-box .list li:nth-child(1) {
+  border-left: none;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/5e/5e545bc6089b5a25f662cc948c335c7f039bf73c.svn-base


+ 628 - 0
.svn/pristine/5e/5edcbe6d15e491ae5992cc9888fb5a32801f9cab.svn-base

@@ -0,0 +1,628 @@
+<template>
+  <div>
+    <div class="header">
+      <div class="title">
+        <div @click="returnEvent()" class="row item-center">
+          <i class="backSingPage"></i>
+          <span class="header-title triangle">滚球{{title}}</span>
+          <span style="color:#333;margin-left:.3rem;">{{data.leagueName}}</span>
+        </div>
+        <div>
+          <i></i>
+          <div class="redraw">
+            <i class="refresh"></i>
+          </div>
+        </div>
+      </div>
+
+      <!-- 足球头部 -->
+      <div class="tennisHead" style="padding:0.1rem;">
+        <!-- <div style="padding:0.1rem;"> -->
+        <!-- <div class="match"> -->
+        <!-- <div class="tit">
+              <span>{{data.leagueName}}</span>
+        </div>-->
+        <div class="ballTable">
+          <div class="listHead row allAlignment">
+            <div class="txt">
+              <div class="spanCol">第{{scoreDetails.schedule == "1"?'一' : scoreDetails.schedule =="2" ? "二": scoreDetails.schedule =="3" ? "三": scoreDetails.schedule=="4" ? "四":"五" }}节</div>
+              <!-- <div class="delay">天气原因延期</div> -->
+            </div>
+            <div class="headerTop row rightAlignment">
+              <span :class="{spanCol:scoreDetails.schedule == 1}" >1</span>
+              <span :class="{spanCol:scoreDetails.schedule == 2}" >2</span>
+              <span :class="{spanCol:scoreDetails.schedule == 3}" >3</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 4}" >4</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 5}" >5</span>
+              <span class="mg-5">分数</span>
+              <span class="mg-5">盘</span>
+              <span class="mg-5">总局数</span>
+            </div>
+          </div>
+          <div class="row allAlignment list">
+            <div class="row">
+              <!-- <div class="ballhold" style="color: rgb(197, 210, 60);">•</div> -->
+              <div class="team" style="text-align:left;">{{data.home_team}}</div>
+            </div>
+            <div class="score row rightAlignment">
+              <span :class="{spanCol:scoreDetails.schedule == 1}" > {{scoreDetails.sc_1th_H}}</span>
+              <span :class="{spanCol:scoreDetails.schedule == 2}" > {{scoreDetails.sc_2th_H}}</span>
+              <span :class="{spanCol:scoreDetails.schedule == 3}" > {{scoreDetails.sc_3th_H}}</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 4}" > {{scoreDetails.sc_4th_H}}</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 5}" > {{scoreDetails.sc_5th_H}}</span>
+              <span v-if="scoreDetails" class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">{{scoreDetails.spot_H}}</span>
+              <span  v-if="scoreDetails" class="mg-5 mark">{{scoreDetails.disc_H}}</span>
+              <span  v-if="scoreDetails" class="mg-5 mark sumCl">{{scoreDetails.game_num_H}}</span>
+            </div>
+          </div>
+          <div class="row allAlignment list">
+            <div class="row">
+              <!-- <span class="ballhold" style="color:#fff;">•</span> -->
+              <span class="team" style="text-align:left;">{{data.guest_team}}</span>
+            </div>
+            <div class="score row rightAlignment">
+              <span :class="{spanCol:scoreDetails.schedule == 1}" > {{scoreDetails.sc_1th_C}}</span>
+              <span :class="{spanCol:scoreDetails.schedule == 2}" > {{scoreDetails.sc_2th_C}}</span>
+              <span :class="{spanCol:scoreDetails.schedule == 3}" > {{scoreDetails.sc_3th_C}}</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 4}" > {{scoreDetails.sc_4th_C}}</span>
+              <span v-if="scoreDetails.best >3" :class="{spanCol:scoreDetails.schedule == 5}" > {{scoreDetails.sc_5th_C}}</span>
+           
+              <span v-if="scoreDetails" class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">{{scoreDetails.spot_C}}</span>
+              <span  v-if="scoreDetails" class="mg-5 mark">{{scoreDetails.disc_C}}</span>
+              <span  v-if="scoreDetails" class="mg-5 mark sumCl">{{scoreDetails.game_num_C}}</span>
+            </div>
+          </div>
+          <div></div>
+        </div>
+        <!-- </div>
+        </div>-->
+      </div>
+
+      <div class="welcome row NavSlide">
+        <nav class="scroll">
+          <div class="row center" v-for="(itme,$index) in key" @click="toggleNav($index)">
+            <span :class="{active:$index == active}">{{itme}}</span>
+          </div>
+        </nav>
+      </div>
+    </div>
+    <div class="cont">
+      <!-- 让局 -->
+      <div v-show=" Single =='让局'|| isAll">
+        <theBureau/>
+        <!-- <concede/> -->
+      </div>
+      
+      <!-- <letBall/> -->
+      <!-- 独赢 -->
+      <div v-show=" Single =='独赢' || isAll">
+        <winAlone/>
+      </div>
+      <!-- 波胆 -->
+      <div v-show=" Single =='波胆'|| isAll">
+        <waveBladder/>
+      </div>
+      <!-- 总局数:单/双 -->
+      <div v-show="Single == '总局数:单/双'|| isAll">
+        <BureauOddEven/>
+        <!-- <teamTotalScoreSize/> -->
+      </div>
+      <!-- 让盘 -->
+      <div v-show=" Single =='让盘'|| isAll">
+        <thePlate/>
+        <!-- <teamTotalScoreSize/> -->
+      </div>
+   
+      <!-- 总局数:大/小 -->
+      <div v-show=" Single =='总局数:大/小'|| isAll">
+        <BureauSizeOfThe/>
+        <!-- <teamTotalScoreSize/> -->
+      </div>
+      <!-- 角球 -->
+      <!-- <corner/> -->
+      <!-- 进球 -->
+      <!-- <goal/> -->
+      <!-- 进球半场 -->
+      <!-- <goalHalfCourt/> -->
+      <!-- 让盘  -->
+      <!-- <letPlate/> -->
+      <!-- 球队得分 -->
+      <score/>
+    </div>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+// import letBall from "@/components/betting/letBall";
+import goalsSize from "@/components/betting/goalsSize";
+import teamGoalsSize from "@/components/betting/teamGoalsSize";
+import teamTotalScoreSize from "@/components/betting/teamTotalScoreSize";
+import scoreSingleDouble from "@/components/betting/scoreSingleDouble";
+import winAlone from "@/components/betting/winAlone";
+import sumGoal from "@/components/betting/sumGoal";
+import waveBladder from "@/components/betting/waveBladder";
+import goalEntry from "@/components/betting/goalEntry";
+// import corner from "@/components/betting/corner";
+import halfCount from "@/components/betting/halfCount";
+import concede from "@/components/betting/concede";
+// import goal from "@/components/betting/goal";
+// import goalHalfCourt from "@/components/betting/goalHalfCourt";
+// import letPlate from "@/components/betting/letPlate";
+import totalScore from "@/components/betting/totalScore";
+import score from "@/components/betting/score";
+import theBureau from "@/components/betting/theBureau"; //让局
+import BureauOddEven from "@/components/betting/BureauOddEven"; //总局数单双
+import BureauSizeOfThe from "@/components/betting/BureauSizeOfThe"; //总局数大小
+import TopGame from "@/components/betting/TopGame"; //冠军
+import thePlate from "@/components/betting/thePlate"; //让盘
+export default {
+  data() {
+    return {
+      activity: "", //活动代码
+      active: 0, // 投注页是否打开
+      ballCode: "", //球类代码
+      matchId: "", //赛事idd
+      data: [], //赛事数据源
+      scoreDetails:'',//
+      previousStorage: "", //前一次data储存数据
+      title: "", //
+      key: "", //玩法名字
+      Single: "", //
+      isAll: true, //
+      timers: true,
+    };
+  },
+  components: {
+    // letBall,
+    goalsSize,
+    winAlone,
+    sumGoal,
+    waveBladder,
+    goalEntry,
+    // corner,
+    halfCount,
+    concede,
+    // goal,
+    // goalHalfCourt,
+    // letPlate,
+    totalScore,
+    score,
+    scoreSingleDouble,
+    teamGoalsSize,
+    teamTotalScoreSize,
+    BureauOddEven,
+    BureauSizeOfThe,
+    theBureau,
+    TopGame,
+    thePlate
+  },
+  /**
+   * 页面加载完成挂载
+   */
+  mounted() {
+   
+    this.activity = this.$store.getters.getActivity;
+    this.ballCode = this.$store.getters.getBallCode;
+    this.matchId = this.$store.getters.getMatchId;
+    this.$store.dispatch("SET_BETTING", []); //设置默认值
+    this.getAjax();
+    this.gteTitle(this.ballCode, this.activity);
+    this.$store.dispatch("SET_BETTINGTYPE", 1);
+    let _this = this;
+    this.$public.ajaxTimerFun(timing => {
+      if (_this.timers) {
+        _this.getAjax();
+      } else {
+        clearInterval(timing);
+      }
+    }, 10000);
+ 
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    /*------------------------------------------------ */
+    //玩法数据请求
+    getAjax() {
+      let type = this.activity == "StRollBall" ? 2 : 1;
+      let data = {
+        game_code: this.ballCode,
+        matchID: this.matchId,
+        status: type,
+        oddsType: this.activity
+      };
+      this.$http.get(this.$ports.gambling.matchOdds, data).then(res => {
+        if (res.data.status == 1) {
+          this.data = res.data.data;
+          let arrayData = [];
+          let palyCode = this.$store.getters.getPlayAlias;
+          let key = ["所有盘口"];
+          // console.log(this.data.p_code_array);
+          // console.log('1231231',palyCode);
+          this.data.p_code_array.forEach((e, index) => {
+            let palyData = [];
+            //组合玩法title
+            palyCode.forEach(p => {
+              // console.log(e,this.ballCode );
+              if (e == p.odds_code && p.game_code == this.ballCode) {
+                key.push(p.odds_name);
+              }
+            });
+            //玩法数据分类
+            this.data.oddsData.forEach(val => {
+              if (e == val.p_code) {
+                palyData.push(val);
+              }
+              arrayData[index] = palyData;
+            });
+          });
+        
+          //处理赛事比分信息
+          this.scoreDetails = JSON.parse(this.data.result_mark);
+          this.scoreDetails.schedule = this.scoreDetails.schedule.replace(/[^0-9]/ig,"");
+          console.log(this.scoreDetails);
+          let numArray = [];
+        //  this.scoreDetails.ps.forEach((e,index)=>{
+        //     if(e.p=='ft'){
+        //       this.scoreDetails.ft = e;
+        //       numArray.push(index);
+        //     }
+        //     if(e.p=='ftg'){
+        //       this.scoreDetails.ftg = e;
+        //       numArray.push(index);
+        //     }
+        //     if(e.p=='p'){
+        //       this.scoreDetails.p = e;
+        //       numArray.push(index);
+        //     }
+        //   })
+
+          numArray.forEach((e,index)=>{
+            if(index == 1){
+              if(numArray[0] < numArray[1]){
+                this.scoreDetails.ps.splice(e - 1,1)
+              }else{
+                this.scoreDetails.ps.splice(e,1)
+              }
+            }else if(index == 2){
+              if(numArray[1] < numArray[2]){
+                this.scoreDetails.ps.splice(e - 2,1)
+              }else if(numArray[1] > numArray[2] && numArray[0] < numArray[2]){
+                this.scoreDetails.ps.splice(e - 1,1)
+              }else if(numArray[1] > numArray[2] && numArray[0] > numArray[2]){
+                this.scoreDetails.ps.splice(e,1)
+              }
+            }else{
+              this.scoreDetails.ps.splice(e,1)
+            }
+          })
+
+          // console.log(arrayData);
+          //更新数据和上一次的数据匹配
+          if (
+            this.previousStorage &&
+            this.previousStorage.match_id == this.data.match_id &&
+            this.previousStorage.oddsData.length > 0
+          ) {
+            this.$public.oddsDataUpdate(
+              arrayData,
+              this.previousStorage.oddsData,
+              2
+            );
+          }
+          this.data.oddsData = arrayData;
+          //储存临时数据
+          this.previousStorage = this.data;
+          //rising=上升、falling=下降
+          this.$store.dispatch("GETGAMERATIO", this.data);
+          this.key = key;
+          // console.log(key);
+          console.log("wq", this.data);
+        }
+      });
+    },
+
+    /*---------------------------------------------- */
+    //获取头部title数据
+    gteTitle(data, type) {
+      if (data == "zq") {
+        this.title = "足球";
+      } else if (data == "lq") {
+        this.title = "蓝球";
+      } else if (data == "wq") {
+        this.title = "网球";
+      } else if (data == "bq") {
+        this.title = "棒球";
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 切换玩法类型
+     */
+    returnEvent: function() {
+      this.$store.dispatch("SET_CONTROLROUTING", "10003");
+      // this.$store.dispatch("SET_RETURN_EVENT",1);
+      //console.log(this.$store.getters.getReturnEvent);
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {},
+  /**
+   * 监听器
+   */
+  watch: {}
+};
+</script>
+<style scoped>
+.header {
+  background: #4b4b4b;
+}
+.header .title {
+  font-size: 0.18rem;
+  /* color: #f76649; */
+  padding: 0 0.2rem;
+  /* font-weight: 700; */
+  height: 0.6rem;
+  line-height: 0.4rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.header-title {
+  display: inline-block;
+  padding: 0 0.05rem;
+  height: 0.4rem;
+  text-align: center;
+  line-height: 0.4rem;
+  background: #ededed;
+  color: #f4755b;
+  border-radius: 0.05rem;
+}
+.header-title::after {
+  border-width: 0.08rem;
+  border-left-color: #ededed;
+  border-top-color: #ededed;
+  transform: rotate(135deg);
+  right: -9%;
+  top: 28%;
+}
+.title .backSingPage {
+  display: inline-block;
+  background: url("../assets/st-imges/returnimg.png") no-repeat;
+  /* filter: brightness(2); */
+  background-size: 100% 100%;
+  height: 0.28rem;
+  width: 0.28rem;
+  vertical-align: middle;
+  margin-right: 0.16rem;
+  cursor: pointer;
+}
+.title {
+  background: #ababab;
+  color: #333;
+}
+.title .backSingPage:hover,
+.refresh:hover {
+  filter: brightness(2);
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+  cursor: pointer;
+  text-align: center;
+  border-radius: 0.05rem;
+}
+.redraw:hover {
+  background: #959595;
+  color: #fff;
+}
+.refresh {
+  background: url("../assets/st-imges/redraw.png") no-repeat;
+  background-size: 100% 100%;
+  display: inline-block;
+  width: 0.2rem;
+  height: 0.2rem;
+}
+/* 普通赛事头部 */
+.ordinaryHead {
+  background: url("../assets/st-imges/football.png") no-repeat;
+  background-size: 100% 100%;
+  /* padding: 0.04rem; */
+  height: 0.6rem;
+  line-height: 0.6rem;
+}
+.ordinaryHead .match {
+  color: #fff;
+}
+.ordinaryHead .match .info {
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.NavSlide {
+  width: 100%;
+  overflow: hidden;
+  font-size: 0.16rem;
+  height: 0.4rem;
+  background: #898989;
+  color: #cdcdcd;
+}
+.NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+.NavSlide div {
+  text-align: center;
+  /* font-size: 0.28rem; */
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  color: #fff;
+  cursor: pointer;
+}
+.active {
+  color: #f76649;
+  font-weight: 700;
+}
+.scroll::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+}
+.list {
+  line-height: 0.4rem;
+  padding: 0 0.1rem;
+  color: #fff;
+}
+.header {
+  background: #4b4b4b;
+}
+.header .title {
+  font-size: 0.18rem;
+  color: #fe9200;
+  padding: 0 0.2rem;
+  font-weight: 700;
+  height: 0.6rem;
+  line-height: 0.4rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.title .backSingPage {
+  display: inline-block;
+  background: url("../assets/st-imges/returnimg.png") no-repeat;
+  background-size: 100% 100%;
+  height: 0.28rem;
+  width: 0.28rem;
+  vertical-align: middle;
+  margin-right: 0.16rem;
+  cursor: pointer;
+}
+.title .backSingPage:hover,
+.refresh:hover {
+  filter: brightness(1.5);
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+  cursor: pointer;
+  text-align: center;
+  border-radius: 0.05rem;
+}
+.redraw:hover {
+  background: #959595;
+  color: #fff;
+}
+.refresh {
+  background: url("../assets/st-imges/redraw.png") no-repeat;
+  background-size: 100% 100%;
+  display: inline-block;
+  width: 0.2rem;
+  height: 0.2rem;
+}
+/* 网球头部 */
+.tennisHead {
+  background: url("../assets/st-imges/tennisball.png") no-repeat;
+  background-size: 100% 100%;
+  width: 100%;
+  height: auto;
+}
+.match {
+  color: #fff;
+  height: auto;
+}
+.match .tit {
+  height: 0.32rem;
+  line-height: 0.32rem;
+  /* margin-top: -4px; */
+}
+.ballTable {
+  background: rgba(0, 0, 0, 0.2);
+}
+.listHead {
+  padding: 0 0.1rem;
+  line-height: 0.5rem;
+  background: rgba(0, 0, 0, 0.15);
+  color: #fff;
+}
+.listHead .spanCol{
+  color: orange;
+}
+
+.sumCl {
+  color: #ff0;
+}
+.welcome {
+  height: 0.5rem;
+  line-height: 0.5rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #898989;
+  color: #fff;
+}
+.headerTop {
+  width: 50%;
+}
+.score {
+  width: 50%;
+}
+.score span {
+  display: inline-block;
+  width: 0.3rem;
+  text-align: center;
+}
+.score span.mg-5 {
+  width: 0.7rem;
+}
+.headerTop span {
+  display: inline-block;
+  width: 0.3rem;
+  text-align: center;
+}
+.headerTop span.mg-5 {
+  width: 0.7rem;
+}
+.mark {
+  background: hsla(0, 0%, 100%, 0.25);
+}
+.list {
+  background: hsla(0, 0%, 100%, 0.2);
+}
+</style>

+ 739 - 0
.svn/pristine/5f/5f046a6255c9541b3e8606768fb8e10058af7cc6.svn-base

@@ -0,0 +1,739 @@
+<template>
+  <div>
+    <div class="serch row item-center allAlignment" v-if="noShow">
+      <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+        <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+      </div>
+      <div class="row item-center">
+        <div class="row item-center">
+          <input
+            class="fz14"
+            type="text"
+            placeholder="请输入联赛和球队名称"
+            v-model="serchTxt"
+            onkeyup="this.value=this.value.replace(/\s+/g,'')"
+            color="#AAA"
+          >
+          <div class="row center serch-img pointer hover" @click="Serch()">
+            <img src="@/assets/st-imges/serch.png" alt>
+          </div>
+        </div>
+        <div class="row item-center">
+          <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+          <div class="row center redraw pointer hover br05" @click="red()">
+            <img src="@/assets/st-imges/redraw.png" alt>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 日期 -->
+    <div
+      v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')"
+      class="date row item-center pdg20"
+    >
+      <nav class="row datebox scroll allAlignment">
+        <p
+          @click="dateActive(item.id)"
+          :class="dateClick == item.id?'dateShow':''"
+          v-for="(item,index) in date"
+          :key="item.id"
+        >{{item.title}}</p>
+      </nav>
+    </div>
+
+    <div class="singleAndDouble" v-for="(item,index) in data" :key="item.id">
+      <div style="height:.4rem;background:#ccc;font-size:.16rem;" class="row item-center pdg20">{{item.leagueName}}</div>
+      <div v-for="(items,i) in item.matchData" :key="items.id">
+        <!-- 此处循环第一层 -->
+
+        <div class="singleAndDouble-header pdg20 row" style="height:.4rem;width:100%">
+          <div style="width:8%;font-size:.16rem" class="row item-center">全场</div>
+          <div class="row item-center"><p style="margin-right:.1rem;">{{items.match_date}}</p><p style="color:#F76649;">{{items.match_time}}</p></div>
+        </div>
+        <!-- 列表 -->
+        <div class="singleAndDouble-body row pdg20" style="border-bottom:.01rem solid #ddd">
+          <div style="width:16%;" class="row item-center">
+            <div class="namep">
+              <p>{{items.home_team}}</p>
+              <p>{{items.guest_team}}</p>
+              <p>和局</p>
+            </div>
+          </div>
+          <div style="width:82%;">
+     
+              <div class="row item-center average" style="width:100%;">
+                <div class="singleAndDouble-list-btn"  v-for="(a,k) in items.oddsData" 
+                :key="a.id" v-if="a.condition[0]- a.condition[2] > 0"
+                  @click="selection(index,i,k,a.id,a.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'波胆')"
+                  :class="{col:a.isTrue,rising:a.change == 'rising',falling:a.change == 'falling'}"
+                ><i style="color:#f76649;">{{a.condition}}</i><br />{{a.odds}}</div>
+              </div>
+              <div class="row item-center average" style="width:100%;">
+                <div
+                  class="singleAndDouble-list-btn"
+                  v-for="(a,k) in items.oddsData"
+                  :key="k"
+                  v-if="a.condition[0]- a.condition[2] < 0"
+                  @click="selection(index,i,k,a.id,a.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'波胆')"
+                  :class="{col:a.isTrue,rising:a.change == 'rising',falling:a.change == 'falling'}"
+                ><i style="color:#f76649;">{{a.condition}}</i><br />{{a.odds}}</div>
+              </div>
+              <div class="row item-center average" style="width:100%;">
+                <div
+                  class="singleAndDouble-list-btn"
+                  v-for="(a,k) in items.oddsData"
+                  :key="a.id"
+                  v-if="a.condition[0]- a.condition[2] == 0 || a.condition == '其他'"
+                  @click="selection(index,i,k,a.id,a.p_code,items.match_id,items.home_team,items.guest_team,'','波胆')"
+                  :class="{col:a.isTrue,rising:a.change == 'rising',falling:a.change == 'falling'}"
+                ><i style="color:#f76649;">{{a.condition}}</i><br />{{a.odds}}</div>
+                <div v-for="a in 4" :key="a" style="width: 0.48rem;height: 0.38rem; margin: .025rem;"></div>
+              </div>
+   
+          </div>
+          <div @click="promptInfo()" class="right-img">
+            <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+            <br>
+            <img src="@/assets/st-imges/TheScore.png">
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+import noData from "@/components/noData";
+export default {
+  name: "WaveBravery",
+  components: {
+    noData
+  },
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      data: [],
+      pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity, //传入接口的值
+      ballCode: this.$store.getters.getBallCode,
+      serchTxt: "",
+      timers: true,
+      noData: false, // 无数据显示
+      limit: "",
+      passLimit:'',
+      dataList: [],
+      noShow:false,
+      lg_id:'',//联赛 
+    };
+  },
+  mounted() {
+     //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+    this.$store.dispatch("GETLOADING", true);
+    this.getAJAX(this.lg_id);
+    this.$store.dispatch("SET_BETTING", []);
+    let _this = this;
+    this.$public.ajaxTimerFun(timing => {
+      if (_this.timers) {
+        _this.getAJAX(_this.lg_id,_this.serchTxt);
+      } else {
+        
+        clearInterval(timing);
+      }
+    });
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  methods: {
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    getAJAX(lg_id,search) {
+      if (this.$store.getters.getActivity == "StStringScene") {
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      } else {
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.activity,
+          p_code: this.pCode,
+          game_code: this.ballCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,
+          lg_id,                                        //需要拷贝
+          search
+        }) .then(res => {
+          //console.log(res.data)
+          if (res.data.status == 1 && res.data.data.length>0) {
+            this.noData = false;            //no
+            this.dataSort(res.data.data[0]);
+          //  //数据匹配判断是否上一次有数据
+          //   if(this.dataList.length){
+          //     this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+          //   }
+          // console.log();
+            this.data = res.data.data[0];
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            let betting = '';
+            if (this.$store.getters.getActivity == "StStringScene") {
+                betting = this.$store.getters.getPassBetting;
+            }else{
+                betting = this.$store.getters.getBetting;
+            }
+           this.dataGroup(this.data,betting);
+          }else{
+            this.noData = true;
+          }
+          this.noShow = true;    //true
+          this.$store.dispatch("GETLOADING", false);
+        });
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting) {
+      if (betting != null && betting.length > 0) {
+        data.forEach(e => {
+          e.matchData.forEach(k => {
+            k.oddsData.forEach(item => {
+              betting.forEach(i => {
+                i.data.forEach(j => {
+                  if (j.id == item.id) {
+                    item.isTrue = true;
+                  }
+                });
+              });
+            });
+          });
+        });
+      }
+    },
+    // 数据排序
+    dataSort(data) {
+      let flag = true;
+      if (data) {
+        // 将主队,客队,和和区分开来,还有其他
+        data.forEach(a => {
+          a.matchData.forEach((b, k) => {
+            let arr = [],home = [],goust = [],other;
+            b.oddsData.forEach((c, i) => {
+              let odds_code = c.odds_code;
+              if (odds_code == "bo") {
+                other = c;
+              }else{
+                if (odds_code[1] < odds_code[2]) {
+                  //客队
+                  goust.push(c);
+                } else if (odds_code[1] > odds_code[2]) {
+                  //主队
+                  home.push(c);
+                } else if (odds_code[1] == odds_code[2]) {
+                  //和局
+                  arr.push(c);
+                }
+              }
+            });
+
+            //客队排序
+            goust.sort((a, z) => {
+              let str1 = a.condition.split("-");
+              let str2 = z.condition.split("-");
+              if (str1[1] - str2[1] != 0) {
+                return str1[1] - str2[1];
+              } else {
+                return str1[0] - str2[0];
+              }
+            });
+
+            //主队排序
+            home.sort((a, z) => {
+              let str1 = a.condition.split("-");
+              let str2 = z.condition.split("-");
+              if (str1[0] - str2[0] != 0) {
+                return str1[0] - str2[0];
+              } else {
+                return str1[1] - str2[1];
+              }
+            });
+
+            //和排序
+            arr.sort((a, z) => {
+              let str1 = a.condition.split("-");
+              let str2 = z.condition.split("-");
+              return str1[0] - str2[0];
+            });
+
+            b.oddsData = [...home, ...goust, ...arr];
+            // b.oddsData = [...home, ...goust, ...arr];
+            b.oddsData.push(other);
+            // console.log(b.oddsData)
+          });
+        });
+      }
+    },
+    // 修改样式
+    // 选中
+    selection(
+      idx,
+      i,
+      index,
+      id,
+      p_code,
+      match_id,
+      homeName,
+      guestName,
+      name,
+      playName
+    ) {
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let acty = this.$store.getters.getActivity;
+      let teamName = {
+        home: homeName,
+        guest: guestName
+      };
+      if (this.$store.getters.getActivity == "StStringScene") {
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }            
+        this.$public.strandPublicBetting(
+          this.data,
+          p_code,
+          id,
+          idx,
+          i,
+          index,
+          betting,
+          acty,
+          match_id,
+          playName,
+          name,
+          ballId,
+          homeName,
+          guestName,
+          this.passLimit,
+          function(data, type) {
+            if (type) {
+              _this.$dialog.toast({
+                mes: "亲,超出表格上限啦。",
+                timeout: 2000
+              });
+            }
+            _this.$store.dispatch("SET_PASSBETTING", []);
+            _this.$store.dispatch("SET_PASSBETTING", data);
+          }
+        );
+      } else {
+        let betting = this.$store.getters.getBetting;
+        this.$public.publicBetting(
+          this.data,
+          p_code,
+          id,
+          idx,
+          i,
+          index,
+          betting,
+          acty,
+          match_id,
+          teamName,
+          playName,
+          name,
+          ballId,
+          this.limit,
+          function(data, type) {
+            if (type) {
+              _this.$dialog.toast({
+                mes: "亲,超出表格上限啦。",
+                timeout: 2000
+              });
+            }
+            _this.$store.dispatch("SET_BETTING", []);
+            _this.$store.dispatch("SET_BETTING", data);
+          }
+        );
+      }
+      // 串场为单串
+      if (this.limit < 10) {
+        this.data[idx].matchData.forEach((val, i) => {
+          val.oddsData.forEach(item => {
+            if (this.$store.getters.getActivity == "StStringScene") {
+              if(this.passLimit < 10){
+                if (val.match_id == match_id) {
+                  // 当isTrue值为true时,点击时置为false
+                  if (item.id == id) {
+                    //console.log(item.isTrue)
+                    if (item.isTrue == true) {
+                      this.$forceUpdate();
+                      item.isTrue = false;
+                    } else if ((item.isTrue = false)) {
+                      this.$forceUpdate();
+                      item.isTrue = true;
+                    } else {
+                      this.$forceUpdate();
+                      this.$set(item, "isTrue", item.isTrue ? false : true);
+                    }
+                  } else {
+                    if (item.isTrue == true) {
+                      item.isTrue = false;
+                    }
+                  }
+                }
+              }else{
+                if(item.id == id){
+                  this.$forceUpdate();
+                  this.$set(item, "isTrue", false);
+                }
+              }
+            } else {
+              if (item.id == id) {
+                this.$forceUpdate();
+                this.$set(item, "isTrue", item.isTrue ? false : true);
+              }
+            }
+          });
+        });
+      } else {
+        this.data[idx].matchData.forEach(val => {
+          val.oddsData.forEach(item => {
+            if (item.id == id) {
+              this.$set(item, "isTrue", false);
+            }
+          });
+        });
+      }
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);
+        this.getAJAX('',this.serchTxt)
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if (this.serchTxt != "") {
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id =""; 
+      this.$store.dispatch("SET_LEAGUEDATA",[]);
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = '';
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+    // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(
+        date.getFullYear(),
+        date.getMonth() + 1,
+        0
+      ).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title = years + " - " + month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str) {
+      this.dateClick = str;
+      this.data = '';
+      this.getAJAX(this.lg_id,this.serchTxt);
+    }
+  },
+  created() {
+    this.fun_date();
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    },        
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      if (val != "StStringScene") {
+        this.$store.dispatch("SET_PASSBETTING", []);
+      }
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },    
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },
+  }
+};
+</script>
+<style scoped>
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.singleAndDouble-header {
+  height: 0.4rem;
+  background: #e5e5e5;
+}
+.singleAndDouble-header-title p {
+  font-size: 0.12rem;
+}
+.singleAndDouble-body {
+  position: relative;
+  background: #fff;
+}
+.namep > p{
+  height: .38rem;
+  margin: .025rem;
+  line-height: .38rem;
+}
+.singleAndDouble-body:hover {
+  background: #fff5e9;
+}
+.singleAndDouble-list-btn {
+     width: 0.48rem !important;
+    height: 0.44rem;
+    text-align: center;
+    background: #fcfcfc;
+    margin: .025rem;
+    border-radius: 0.05rem;
+    border: 0.01rem solid #eee;
+    cursor: pointer;
+}
+.singleAndDouble-list-btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.18rem;
+  bottom: 30%;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+* {
+  font-size: 0.14rem;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

+ 68 - 0
.svn/pristine/60/60271bbe343220c35b43ec9b92c0220afe9af41d.svn-base

@@ -0,0 +1,68 @@
+{
+  "name": "sports",
+  "version": "1.0.0",
+  "description": "A Vue.js project",
+  "author": "",
+  "private": true,
+  "scripts": {
+    "dev": "webpack-dev-server --inline --open --progress --config build/webpack.dev.conf.js",
+    "start": "npm run dev",
+    "build": "node build/build.js"
+  },
+  "dependencies": {
+    "axios": "^0.18.0",
+    "element-ui": "^2.12.0",
+    "vant": "^1.5.7",
+    "vue": "^2.5.2",
+    "vue-router": "^3.0.1",
+    "vue-ydui": "^1.2.6",
+    "vuex": "^3.1.0",
+    "webpack-dev-server": "^2.9.1"
+  },
+  "devDependencies": {
+    "autoprefixer": "^7.1.2",
+    "babel-core": "^6.22.1",
+    "babel-helper-vue-jsx-merge-props": "^2.0.3",
+    "babel-loader": "^7.1.1",
+    "babel-plugin-syntax-jsx": "^6.18.0",
+    "babel-plugin-transform-runtime": "^6.22.0",
+    "babel-plugin-transform-vue-jsx": "^3.5.0",
+    "babel-polyfill": "^6.26.0",
+    "babel-preset-env": "^1.3.2",
+    "babel-preset-stage-2": "^6.22.0",
+    "chalk": "^2.0.1",
+    "copy-webpack-plugin": "^4.0.1",
+    "css-loader": "^0.28.0",
+    "extract-text-webpack-plugin": "^3.0.0",
+    "file-loader": "^1.1.4",
+    "friendly-errors-webpack-plugin": "^1.6.1",
+    "html-webpack-plugin": "^2.30.1",
+    "node-notifier": "^5.1.2",
+    "optimize-css-assets-webpack-plugin": "^3.2.0",
+    "ora": "^1.2.0",
+    "portfinder": "^1.0.13",
+    "postcss-import": "^11.0.0",
+    "postcss-loader": "^2.0.8",
+    "postcss-url": "^7.2.1",
+    "rimraf": "^2.6.0",
+    "semver": "^5.3.0",
+    "shelljs": "^0.7.6",
+    "uglifyjs-webpack-plugin": "^1.1.1",
+    "url-loader": "^0.5.8",
+    "vue-loader": "^13.3.0",
+    "vue-style-loader": "^3.0.1",
+    "vue-template-compiler": "^2.5.2",
+    "webpack": "^3.6.0",
+    "webpack-bundle-analyzer": "^2.9.0",
+    "webpack-merge": "^4.1.0"
+  },
+  "engines": {
+    "node": ">= 6.0.0",
+    "npm": ">= 3.0.0"
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not ie <= 8"
+  ]
+}

BIN=BIN
.svn/pristine/60/60649015c00d857951ec4957dcc3a2965c22a77d.svn-base


+ 674 - 0
.svn/pristine/61/613d4d9999228137b4c48b1eebda32b74fcab2b5.svn-base

@@ -0,0 +1,674 @@
+<template>
+  <div>
+    <div class="header">
+      <div class="title">
+        <div @click="returnEvent()" class="row item-center">
+          <i class="backSingPage"></i>
+          <span class="header-title triangle">滚球{{title}}</span>
+          <span style="color:#333;margin-left:.3rem;">{{data.leagueName}}</span>
+        </div>
+        <div>
+          <i></i>
+          <div class="redraw">
+            <i class="refresh"></i>
+          </div>
+        </div>
+      </div>
+      <!-- 篮球头部 -->
+      <div class="match">
+        <div class="live">
+          <!-- <div class="tit">{{data.leagueName}}</div> -->
+          <div class="info">
+
+            <div class="infoBody flex">
+              <div class="matchTime" style="width:20%;">
+                <span class="scene">第{{headInfo.schedule == 1 ? '一': 
+                  headInfo.schedule == 2 ? '二': headInfo.schedule == 3 ? '三': 
+                  headInfo.schedule == 4 ? '四':'加时赛' }}节</span>
+                <span class="time">{{headInfo.r_time}}</span>
+              </div>
+              <div class="flex" style="width:80%;">
+                <div class="right_info_row_qt">第一节</div>
+                <div class="right_info_row_qt">第二节</div>
+                <div class="right_info_row_qt">第三节</div>
+                <div class="right_info_row_qt">第四节</div>
+                <div class="right_info_row_qt">加时赛</div>
+                <div class="right_info_row_qt scence">上半场</div>
+                <div class="right_info_row_qt scence">下半场</div>
+                <div class="right_info_row_qt scence">总计</div>
+              </div>
+            </div>
+
+            <div class="infoRow">
+              <div class="infoItem flex">
+                <div style="width:20%;">
+                  <span class="team">{{data.home_team}}</span>
+                </div>
+                <div class="infoBox" style="width:80%">
+                  <div :class="{ col:headInfo.schedule == 1 }" class="infoNum">{{headInfo.sc_1th_H}}</div>
+                  <div :class="{ col:headInfo.schedule == 2 }" class="infoNum">{{headInfo.sc_2th_H}}</div>
+                  <div :class="{ col:headInfo.schedule == 3 }" class="infoNum">{{headInfo.sc_3th_H}}</div>
+                  <div :class="{ col:headInfo.schedule == 4 }" class="infoNum">{{headInfo.sc_4th_H}}</div>
+                  <div class="infoNum">{{headInfo.overtime_H}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.half_H}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.full_H}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.whole_H}}</div>
+                </div>
+              </div>
+
+              <div class="infoItem flex">
+                <div style="width:20%;">
+                  <span class="team">{{data.guest_team}}</span>
+                </div>
+                <div class="infoBox" style="width:80%">
+                  <div :class="{ col:headInfo.schedule == 1 }" class="infoNum">{{headInfo.sc_1th_C}}</div>
+                  <div :class="{ col:headInfo.schedule == 2 }" class="infoNum">{{headInfo.sc_2th_C}}</div>
+                  <div :class="{ col:headInfo.schedule == 3 }" class="infoNum">{{headInfo.sc_3th_C}}</div>
+                  <div :class="{ col:headInfo.schedule == 4 }" class="infoNum ">{{headInfo.sc_4th_C}}</div>
+                  <div class="infoNum">{{headInfo.overtime_C}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.half_C}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.full_C}}</div>
+                  <div class="infoNum scenceNum">{{headInfo.whole_C}}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="welcome row NavSlide">
+        <nav class="scroll">
+          <div class="row center" v-for="(itme,$index) in key" @click="toggleNav($index)">
+            <span :class="{active:$index == active}">{{itme}}</span>
+          </div>
+        </nav>
+      </div>
+    </div>
+    <div class="cont">
+      <!-- <div class="letball"> -->
+      <!-- 让球 -->
+      <div v-show=" Single =='让球'|| Single =='让分'|| isAll">
+        <concede/>
+      </div>
+      <!-- 进球:大/小 -->
+      <div v-show=" Single =='进球:大/小'|| isAll">
+        <goalsSize/>
+      </div>
+      <!-- 总分:大/小 -->
+      <div v-show=" Single =='总分:大/小'|| isAll">
+        <totalScore/>
+      </div>
+      <!-- <letBall/> -->
+      <!-- 独赢 -->
+      <div v-show=" Single =='独赢盘'|| isAll">
+        <winAlone/>
+      </div>
+      <!-- 波胆 -->
+      <div v-show=" Single =='波胆'|| isAll">
+        <waveBladder/>
+      </div>
+      <!-- 总进球 -->
+      <div v-show=" Single =='总进球数'|| isAll">
+        <sumGoal/>
+      </div>
+      <!-- 首粒入球-- -->
+      <div v-show=" Single =='球队得分:最后一位数'|| isAll">
+        <teamLastScore/>
+      </div>
+      <!-- 半场/全场 -->
+      <div v-show=" Single =='半场/全场'|| isAll">
+        <halfCount/>
+      </div>
+      <!-- 总分:单双 -->
+      <div v-show="( Single =='总分:单/双'|| Single =='进球:单/双' )|| isAll">
+        <scoreSingleDouble/>
+      </div>
+      <!-- 球队进球数:大/小  篮球没有进球数-->
+      <!-- <div v-show=" Single =='球队进球数:大/小'|| isAll">
+        <teamGoalsSize/>
+      </div> -->
+      <!-- 球队得分:大/小 -->
+      <div v-show=" Single =='球队得分:大/小'|| isAll">
+        <teamTotalScoreSize/>
+      </div>
+      <!-- 角球 -->
+      <!-- <corner/> -->
+      <!-- 进球 -->
+      <!-- <goal/> -->
+      <!-- 进球半场 -->
+      <!-- <goalHalfCourt/> -->
+      <!-- 让盘  -->
+      <!-- <letPlate/> -->
+      <!-- 球队得分 -->
+      <score/>
+    </div>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+// import letBall from "@/components/betting/letBall";
+import goalsSize from "@/components/betting/goalsSize";
+import teamGoalsSize from "@/components/betting/teamGoalsSize";
+import teamTotalScoreSize from "@/components/betting/teamTotalScoreSize";
+import scoreSingleDouble from "@/components/betting/scoreSingleDouble";
+import winAlone from "@/components/betting/winAlone";
+import sumGoal from "@/components/betting/sumGoal";
+import waveBladder from "@/components/betting/waveBladder";
+import teamLastScore from "@/components/betting/teamLastScore";
+// import corner from "@/components/betting/corner";
+import halfCount from "@/components/betting/halfCount";
+import concede from "@/components/betting/concede";
+// import goal from "@/components/betting/goal";
+// import goalHalfCourt from "@/components/betting/goalHalfCourt";
+// import letPlate from "@/components/betting/letPlate";
+import totalScore from "@/components/betting/totalScore";
+import score from "@/components/betting/score";
+export default {
+  data() {
+    return {
+      activity: "", //活动代码
+      active: 0, // 投注页是否打开
+      ballCode: "", //球类代码
+      matchId: "", //赛事idd
+      data: [], //赛事数据源
+      previousStorage: "", //前一次data储存数据
+      title: "", //
+      key: "", //玩法名字
+      Single: "", //
+      isAll: true, //
+      timers: true,
+      headInfo:'',//滚球头部数据
+    };
+  },
+  components: {
+    // letBall,
+    goalsSize,
+    winAlone,
+    sumGoal,
+    waveBladder,
+    teamLastScore,
+    // corner,
+    halfCount,
+    concede,
+    // goal,
+    // goalHalfCourt,
+    // letPlate,
+    totalScore,
+    score,
+    scoreSingleDouble,
+    teamGoalsSize,
+    teamTotalScoreSize
+  },
+  /**
+   * 页面加载完成挂载
+   */
+  mounted() {
+    this.activity = this.$store.getters.getActivity;
+    this.ballCode = this.$store.getters.getBallCode;
+    this.matchId = this.$store.getters.getMatchId;
+    this.$store.dispatch("SET_BETTING", []); //设置默认值
+    this.getAjax();
+    this.gteTitle(this.ballCode, this.activity);
+    this.$store.dispatch("SET_BETTINGTYPE", 1);
+    let _this = this;
+    this.$public.ajaxTimerFun(timing => {
+      if (_this.timers) {
+        _this.getAjax();
+      } else {
+        clearInterval(timing);
+      }
+    }, 10000);
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    /*------------------------------------------------ */
+    //玩法数据请求
+    getAjax() {
+      let type = this.activity == "StRollBall" ? 2 : 1;
+      let data = {
+        game_code: this.ballCode,
+        matchID: this.matchId,
+        status: type,
+        oddsType: this.activity
+      };
+      this.$http.get(this.$ports.gambling.matchOdds, data).then(res => {
+        if (res.data.status == 1) {
+          this.data = res.data.data;
+          this.headInfo = JSON.parse(this.data.result_mark);
+          this.headInfo.schedule = this.headInfo.schedule.replace(/[^0-9]/ig,"");
+          let arrayData = [];
+          let palyCode = this.$store.getters.getPlayAlias;
+          let key = ["所有盘口"];
+
+          this.data.p_code_array.forEach((e, index) => {
+            let palyData = [];
+            //组合玩法title
+            palyCode.forEach(p => {
+              if (e == p.odds_code && p.game_code == this.ballCode) {
+                key.push(p.odds_name);
+              }
+            });
+            //玩法数据分类
+            this.data.oddsData.forEach(val => {
+              if (e == val.p_code) {
+                palyData.push(val);
+              }
+              arrayData[index] = palyData;
+            });
+          });
+          // console.log(arrayData);
+          //更新数据和上一次的数据匹配
+          if (
+            this.previousStorage &&
+            this.previousStorage.match_id == this.data.match_id &&
+            this.previousStorage.oddsData.length > 0
+          ) {
+            this.$public.oddsDataUpdate(
+              arrayData,
+              this.previousStorage.oddsData,
+              2
+            );
+          }
+          this.data.oddsData = arrayData;
+          //储存临时数据
+          this.previousStorage = this.data;
+          //rising=上升、falling=下降
+          this.$store.dispatch("GETGAMERATIO", this.data);
+          this.key = key;
+          // console.log(key);
+          //console.log(arrayData);
+        }
+      });
+    },
+
+    /*---------------------------------------------- */
+    //获取头部title数据
+    gteTitle(data, type) {
+      if (data == "zq") {
+        this.title = "足球";
+      } else if (data == "lq") {
+        this.title = "蓝球";
+      } else if (data == "wq") {
+        this.title = "网球";
+      } else if (data == "bq") {
+        this.title = "棒球";
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    },
+
+    /*--------------------------------------------- */
+    /**
+     * 切换玩法类型
+     */
+    returnEvent: function() {
+      this.$store.dispatch("SET_CONTROLROUTING", "10001");
+      // this.$store.dispatch("SET_RETURN_EVENT",1);
+      //console.log(this.$store.getters.getReturnEvent);
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {},
+  /**
+   * 监听器
+   */
+  watch: {}
+};
+</script>
+<style scoped>
+.header {
+  background: #4b4b4b;
+}
+.header .title {
+  font-size: 0.18rem;
+  /* color: #f76649; */
+  padding: 0 0.2rem;
+  /* font-weight: 700; */
+  height: 0.6rem;
+  line-height: 0.4rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.header-title {
+  display: inline-block;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  text-align: center;
+  line-height: 0.4rem;
+  background: #ededed;
+  color: #f4755b;
+  border-radius: 0.05rem;
+}
+.header-title::after {
+  border-width: 0.08rem;
+  border-left-color: #ededed;
+  border-top-color: #ededed;
+  transform: rotate(135deg);
+  /* right: -12%; */
+  top: 28%;
+}
+.title .backSingPage {
+  display: inline-block;
+  background: url("../assets/st-imges/returnimg.png") no-repeat;
+  /* filter: brightness(2); */
+  background-size: 100% 100%;
+  height: 0.28rem;
+  width: 0.28rem;
+  vertical-align: middle;
+  margin-right: 0.16rem;
+  cursor: pointer;
+}
+.title {
+  background: #ababab;
+  color: #333;
+}
+.title .backSingPage:hover,
+.refresh:hover {
+  filter: brightness(2);
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+  cursor: pointer;
+  text-align: center;
+  border-radius: 0.05rem;
+}
+.redraw:hover {
+  background: #959595;
+  color: #fff;
+}
+.refresh {
+  background: url("../assets/st-imges/redraw.png") no-repeat;
+  background-size: 100% 100%;
+  display: inline-block;
+  width: 0.2rem;
+  height: 0.2rem;
+}
+/* 普通赛事头部 */
+.ordinaryHead {
+  background: url("../assets/st-imges/football.png") no-repeat;
+  background-size: 100% 100%;
+  /* padding: 0.04rem; */
+  height: 0.6rem;
+  line-height: 0.6rem;
+}
+.ordinaryHead .match {
+  color: #fff;
+}
+.ordinaryHead .match .info {
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.NavSlide {
+  width: 100%;
+  overflow: hidden;
+  font-size: 0.16rem;
+  height: 0.4rem;
+  background: #898989;
+  color: #cdcdcd;
+}
+.NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+.NavSlide div {
+  text-align: center;
+  /* font-size: 0.28rem; */
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  color: #fff;
+  cursor: pointer;
+}
+/* #NavSlide p a{
+      color: #E5E5E5;
+      text-decoration: none;
+    } */
+.active {
+  color: #f76649;
+  font-weight: 700;
+}
+.scroll::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+}
+
+/* 棒球头部 */
+.bqHead {
+  background: url("../assets/st-imges/baseball.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.zqHead {
+  color: #fff;
+  background: url("../assets/st-imges/football.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.bqHead .pd-10 {
+  padding: 0.1rem;
+}
+.bqHead .tit {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.match .info {
+  background: rgba(0, 0, 0, 0.5);
+  height: 0.52rem;
+  line-height: 0.52rem;
+  font-size: 15px;
+  text-align: center;
+  font-size: 0.18rem;
+}
+.match .info .pk,
+.match .tit .scene {
+  font-weight: bold;
+  color: rgb(254, 146, 0);
+}
+.tit .time {
+  color: #bd4700;
+}
+.welcome {
+  height: 0.36rem;
+  line-height: 0.36rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #4e4e4e;
+  color: black;
+}
+
+
+
+
+.flex{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.header{
+    background: #4b4b4b;
+}
+.header .title{
+    font-size: 0.18rem;
+    color: #fe9200;
+    padding: 0 0.2rem;
+    font-weight: 700;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.title .backSingPage{
+    display:inline-block;
+    background: url("../assets/st-imges/arrow_left.png") no-repeat;
+    background-size: 100% 100%;
+    height: 0.21rem;
+    width: 0.2rem;
+    vertical-align: middle;
+    margin-right: 0.16rem;
+    cursor: pointer;
+}
+.title .backSingPage:hover,.refresh:hover{
+    filter: brightness(100);
+}
+.redraw{
+    width: 0.3rem;
+    height: 0.3rem;
+    background: #666;
+    cursor: pointer;
+    text-align: center;
+    border-radius: 0.05rem;
+}
+.redraw:hover{
+    background: #959595;
+    color: #fff;
+}
+.refresh{
+    background: url("../assets/st-imges/redraw.png") no-repeat;
+    background-size: 100% 100%;
+    display: inline-block;
+    width: 0.2rem;
+    height: 0.2rem;
+}
+/* 篮球头部 */
+.header .match{
+    background: #c28d47;
+    background-image: url("./../assets/st-imges/basketball.png") no-repeat;
+    background-size: 100% 100%;
+    color: #fff;
+}
+.header .match .live{
+    padding: 0.06rem;
+}
+/* .live .tit{
+    height: 30px;
+    line-height: 30px;
+    font-size: 0.14rem;
+} */
+.match .info{
+    margin-top: 0.1rem;
+    position: relative;
+    height: auto;
+    background: rgba(0,0,0,.5);
+    line-height: 52px;
+    font-size: 15px;
+    text-align: center;
+}
+.infoBody{
+    background: #000;
+    opacity: .85;
+    height: 0.52rem;
+    padding-left: 0.1rem;
+    font-size: 0.14rem;
+}
+.matchTime span{
+    display: inline-block;
+}
+.matchTime .scene{
+    color: #ff9200;
+    margin-right: 0.06rem;
+}
+.matchTime .time{
+    color: #b4b4b4;
+
+}
+.right_info_row_qt{
+    width: 0.75rem;
+    font-size: 0.12rem;
+    text-align: center;
+    padding: 0.04rem;
+    color: #787878;
+    box-sizing: border-box;
+    font-weight: 700;
+    font-family: serif;
+}
+.infoRow{
+    padding-left: 0.1rem;
+}
+.scence{
+    width: 0.75rem;
+    padding: 0;
+    /* padding-top: 0.19rem; */
+}
+.infoItem{
+    height: 0.5rem;
+    line-height: 0.24rem;
+    width: auto
+}
+.infoBox{
+    width: 2.73rem;
+    height:0.5rem;
+        display: flex;
+    align-items: center;
+    justify-content: space-between;
+    /* right: 0; */
+    /* position: absolute; */
+}
+.infoBox > div{
+    width: .75rem;
+}
+.infoNum{
+    width: 0.25rem;
+    font-size: 0.13rem;
+    line-height: 0.28rem;
+    padding: 0;
+    height: 100%;
+    line-height: 0.5rem;
+    color: #fff;
+    font-weight: 400;
+    text-align: center;
+    font-family: sans-serif;
+
+}
+.scenceNum{
+    background: hsla(0,0%,100%,.16);
+    width: 0.52rem;
+    margin-left: 1px;
+}
+.infoItem .team{
+    font-size: 0.16rem;
+}
+.col{
+    color: #ff9200;
+}
+.ycol{
+    color:#dcbc4c;
+}
+</style>

BIN=BIN
.svn/pristine/61/618438dd494e8c90073e2274815157ca91371e06.svn-base


+ 635 - 0
.svn/pristine/61/61d89094111e07848ac52d21e20759d01311789c.svn-base

@@ -0,0 +1,635 @@
+<template>
+  <div>
+    <div class="serch row item-center allAlignment">
+      <div class="row item-center">
+        <div class="row item-center">
+          <input
+            class="fz14"
+            type="text"
+            placeholder="请输入球队名称"
+            v-model="serchTxt"
+            onkeyup="this.value=this.value.replace(/\s+/g,'')"
+            color="#AAA"
+          >
+          <div class="row center serch-img pointer hover" @click="Serch()">
+            <img src="@/assets/st-imges/serch.png" alt>
+          </div>
+        </div>
+        <div class="row item-center">
+          <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+        </div>
+      </div>
+      <div class="row center redraw pointer hover br05" @click="red()">
+        <img src="@/assets/st-imges/redraw.png" alt>
+      </div>
+    </div>
+    <div class="theBallSize">
+      <div class="theBallSize-list" v-for="(item,index) in data" :key="index">
+        <div class="theBallSize-list-title row allAlignment item-center pdg20">
+          <span>{{item.leagueName}}</span>
+        </div>
+        <!-- 标题栏 -->
+        <div v-for="(items,i) in item.matchData" :key="i">
+          <div class="theBallSize-list-hader row pdg20">
+            <div style="width:22%" class="row item-center allAlignment">
+              <p style="width:100%;padding-right:.2rem;" class="row item-center average">
+                <i>{{items.title}}</i>
+                <span>{{items.match_process}}</span>
+                <span style="color:#F76649" v-if="items.a_time !=null">{{items.a_time == 0 ? '' : items.a_time}}</span>
+                <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
+              </p>
+              <p
+                style="font-size:.14rem;color:#fff"
+                class="theBallSize-list-hader-num row center triangle"
+                @click="getTournamentPlay(items.match_id)"
+              >{{items.tag}} ></p>
+            </div>
+            <div style="width:35%" class="theBallSize-list-full">
+              <div class="row center">全场</div>
+              <div class="row allAlignment item-center" style="color:#999; padding:0 0.08rem">
+                <div class="row center list-left">
+                  <span>让球</span>
+                </div>
+                <div class="row center list-right">
+                  <span>大小</span>
+                </div>
+              </div>
+            </div>
+            <div style="width:35%" class="theBallSize-list-full">
+              <div class="row center">上半场</div>
+              <div class="row allAlignment item-center pdg20" style="color:#999;padding:0 0.08rem">
+                <div class="row center list-left">
+                  <span>让球</span>
+                </div>
+                <div class="row center list-right">
+                  <span>大小</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="theBallSize-list-body row pdg20" style="position: relative;">
+            <div class="column allAlignment theBallSizeTeam">
+              <span>
+                <span style="color:#f76649;margin-right:5px;">{{items.home_score}}</span>
+                {{items.home_team}}
+              </span>
+              <span>
+                <span style="color: #f76649;margin-right:5px;">
+                  {{items.guest_score}}
+                </span>
+                {{items.guest_team}}
+                </span>
+            </div>
+            <!-- 全场 -->
+            <div
+              class="row allAlignment"
+              style="width:35%;padding: 0.08rem .25rem;border-right:.01rem solid #ededed"
+            >
+              <!--让球 -->
+              <div class="column allAlignment">
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'coh'"
+                >
+                  <div class="row center conditions">
+                    <span>{{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}" @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'cog'"
+                >
+                  <div class="row center conditions">
+                    <span>{{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}" @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+              </div>
+              <!-- 大小 -->
+              <div class="column allAlignment">
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'gsb'"
+                >
+                  <div class="conditions row center">
+                    <span>大 {{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}"  @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'大','滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'gss'"
+                >
+                  <div class="conditions row center">
+                    <span>小 {{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}" @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'小','滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!--半场 -->
+            <div class="row allAlignment" style="width:35%;padding: 0.08rem .25rem;">
+              <!--让球 -->
+              <div class="column allAlignment">
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'coh_h'"
+                >
+                  <div class="row center conditions">
+                    <span>{{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}" @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.home_team,'滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'cog_h'"
+                >
+                  <div class="row center conditions">
+                    <span>{{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}" @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,items.guest_team,'滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+              </div>
+              <!-- 大小 -->
+              <div class="column allAlignment">
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'gsb_h'"
+                >
+                  <div class="conditions row center">
+                    <span>大{{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}"  @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'大','滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+                <div
+                  class="row rightAlignment"
+                  v-for="(e,idx) in items.oddsData"
+                  v-if="e.odds_code == 'gss_h'"
+                >
+                  <div class="conditions row center">
+                    <span>小 {{e.condition}}</span>
+                  </div>
+                  <div class="theBallSize-list-txt" :class="{col:e.isTrue,rising:e.change == 'rising',falling:e.change == 'falling'}"  @click="selection(index,i,idx,e.id,e.p_code,items.match_id,items.home_team,items.guest_team,'小','滚球')">
+                    <span>{{e.odds}}</span>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div @click="promptInfo()" class="right-img">
+              <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+              <br>
+              <img src="@/assets/st-imges/TheScore.png">
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>    
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "theBallSize", 
+  components:{
+    noData
+  },
+  data() {
+    return {
+      serchTxt: "",
+      data: [], //数据
+      pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity, //传入接口的值
+      ballCode: this.$store.getters.getBallCode,
+      noData : false, //暂无数据显示      
+      timers:true,
+      lg_id:'',//联赛
+      limit:'',
+    }
+  },
+  methods: {
+    //   let BallCode = this.$store.getters.getBallCode;
+    //   let code =  10011;//默认足球
+    //   if(BallCode == 'lq'){
+    //     code = 10012;
+    //   }else if(BallCode == 'bq'){
+    //     code = 10013;
+    //   }else if(BallCode == 'wq'){
+    //     code = 10014;
+    //  }
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    //
+    getAjax(lg_id,search){
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      }else{
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http.get(this.$ports.home.gameList,{
+        type: this.$store.getters.getActivity,
+        game_code: this.$store.getters.getBallCode,
+        lg_id,                                        //需要拷贝
+        search
+      }).then(res =>{
+        // console.log(res.data)
+          if(res.data.status == 1 && res.data.data.length > 0){
+            this.noData = false;
+            this.data = res.data.data[0]
+            // console.log(this.data)
+            this.dataGroup(this.data)
+          }else{
+            this.noData = true;
+          } 
+          this.$store.dispatch("GETLOADING", false);              
+      })
+    },
+    // 进入添加选中效果
+    dataGroup(data){
+      let betting = this.$store.getters.getBetting;
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },     
+    // 修改选中样式
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      // console.log(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName)
+      //调用投注公共方法
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;     
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      let acty =  this.$store.getters.getActivity;
+      let betting = this.$store.getters.getBetting;
+      this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+        if(type){
+          _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+        }            
+        _this.$store.dispatch("SET_BETTING",[]);
+        _this.$store.dispatch("SET_BETTING",data);
+      })
+      // 串场为单串
+      if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          })
+        })      
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })             
+      }
+      //console.log('111',this.$store.getters.getBetting)
+    },    
+    getTournamentPlay(match_id) {
+     // console.log(match_id)
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10011);
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);     //需要拷贝
+        this.getAjax('',this.serchTxt)                 //需要拷贝
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+      if (this.serchTxt != "") {
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAjax();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = '';
+        this.getAjax();
+      }
+    },
+  },
+  mounted() {
+        //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+    this.getAjax(this.lg_id);
+    this.$store.dispatch("SET_BETTING",[]);     
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAjax(_this.lg_id,_this.serchTxt);
+      }else{
+      clearInterval(timing)
+      }
+    })
+
+  },
+  computed:{
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+     // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },       
+  },
+  watch:{
+    getActy(val) {
+      // this.activity = val;
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);
+    },
+    // 删除选中数据
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },
+     getLimit(val){
+       this.limit = val;
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+    },           
+  },
+  beforeDestroy(){
+    this.timers = false
+  }
+  };
+</script>
+
+<style scoped>
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.theBallSize {
+  position: relative;
+}
+.date {
+  height: 0.4rem;
+  background: #fff;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 88%;
+  margin: 0 0.2rem;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  height: 0.4rem;
+}
+.datebox p {
+  width: 1rem;
+  padding: 0.2rem 0;
+}
+.theBallSize-list-title {
+  width: 100%;
+  height: 0.4rem;
+  background: #898989;
+  font-size: 0.16rem;
+  color: #fff;
+}
+.theBallSize-list-title img {
+  width: 0.22rem;
+  height: 0.22rem;
+  margin-left: 0.2rem;
+}
+.theBallSize-list-hader {
+  height: 0.5rem;
+  background: #e5e5e5;
+  font-size: 0.14rem;
+}
+.theBallSize-list-hader-num {
+  width: 0.8rem;
+  height: 0.5rem;
+  background: #bbb;
+}
+.theBallSize-list-hader-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 40%;
+  bottom: -0.05rem;
+  transform: rotate(45deg);
+}
+.theBallSize-list-full div {
+  height: 50%;
+  line-height: 100%;
+}
+.theBallSize-list-body {
+  background: #fcfcfc;
+  font-size: 0.14rem;
+  border-bottom: 1px solid #e5e5e5;
+}
+.theBallSizeTeam {
+  width: 22%;
+  padding: 0.15rem 0;
+  min-height: 0.9rem;
+  flex-wrap: wrap;
+}
+.theBallSize-list-box {
+  padding: 0.1rem 0.08rem;
+}
+.theBallSize-list-box div {
+  height: 0.3rem;
+  line-height: 0.3rem;
+}
+.theBallSize-list-box span {
+  display: inline-block;
+  width: 0.7rem;
+}
+.theBallSize-list-txt {
+  width: 0.48rem !important;
+  height: 0.3rem;
+  text-align: center;
+  line-height: 0.3rem;
+  background: #fcfcfc;
+  border-radius: 0.05rem;
+  border: 0.01rem solid #eee;
+  cursor: pointer;
+  margin: 0 0.08rem;
+}
+.list-left {
+  width: 0.8rem;
+}
+.list-right {
+  width: 1.4rem;
+}
+.conditions {
+  color: #f76649;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #ddd;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff;
+}
+.pointer {
+  cursor: pointer;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: .4rem;
+  bottom: .15rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
.svn/pristine/65/65d0dc72f232fbafe5f36fd277714e6e97933bc8.svn-base


+ 21 - 0
.svn/pristine/65/65d7ef17fbfc12ea204603982b25e5db355a96cd.svn-base

@@ -0,0 +1,21 @@
+# vue_sports
+
+> A Vue.js project
+
+## Build Setup
+
+``` bash
+# install dependencies
+npm install
+
+# serve with hot reload at localhost:8080
+npm run dev
+
+# build for production with minification
+npm run build
+
+# build for production and view the bundle analyzer report
+npm run build --report
+```
+
+For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

+ 1339 - 0
.svn/pristine/66/6632c1682b14c57dd17bcf8916b3996b4bb1d68d.svn-base

@@ -0,0 +1,1339 @@
+<template>
+  <div>
+    <div class="header-top">
+      <!-- 头部块 -->
+      <div class="headerA-top row vertical-center">
+        <div class="middle row allAlignment">
+          <div class="row item-center headerA-top-left">
+            <h1 class="row headerA-title">
+              <p style="color:#F76649;">HX</p>
+              <span style="color:#FFFFFF">669</span>
+            </h1>
+            <!-- 头部优惠导航 -->
+            <ul class="row headerA-nav">
+              <li
+                v-for="(item,index) in List"
+                :key="index"
+                style="margin-left:.3rem"
+                class="row item-center pointer"
+                :class="num==index?'active triangle':''"
+                @click="listActive(index)"
+              >{{item.title}}</li>
+            </ul>
+          </div>
+          <!-- 登录块 -->
+          <div class="headerA-login">
+            <!-- 用户是否登录判断 -->
+            <div v-show="userIsLogin==false" class="row item-center login" style="height:100%">
+              <!-- 用户名密码 -->
+              <div class="row center" style="width:2rem;position: relative;">
+                <input
+                  v-model="account"
+                  onkeyup="this.value=this.value.replace(/\s+/g,'')"
+                  class="fz14"
+                  style="border-radius:.05rem 0 0 .05rem;"
+                  placeholder="用户名"
+                  type="text"
+                >
+                <span
+                  style="font-size:.14rem;color:red;position: absolute;left:1rem;bottom:-.25rem;display: inline-block;width:2rem;"
+                >{{info}}</span>
+              </div>
+              <div class="headerA-login-pwd row center">
+                <input
+                  class="fz14"
+                  type="password"
+                  v-model="password"
+                  onkeyup="this.value=this.value.replace(/\s+/g,'')"
+                  placeholder="用户密码"
+                  style
+                >
+                <button
+                  @click="login()"
+                  class="row center headerA-login-txt pointer"
+                  style="border-radius:0 .05rem .05rem 0;"
+                >登录</button>
+                <span class="fz16">忘记密码?</span>
+              </div>
+              <div
+                @click="regShowClick()"
+                class="row center pointer"
+                style="width:1rem;margin-left:.2rem;background:#888;border-radius:.05rem;"
+              >
+                <p style="font-size:.18rem;color:#DDD;">注册</p>
+              </div>
+            </div>
+            <!-- 用户已登录用户信息块 -->
+            <div
+              v-show="userIsLogin==true"
+              class="row item-center loginTo"
+              style="height:100%;padding-right:.5rem;"
+            >
+              <div class="row item-center">
+                <p>你好,{{user.userName}}</p>
+                <span
+                  style="color:#3DB8FF;margin-left:.1rem;cursor: pointer;"
+                  @click="escLogin()"
+                >[退出]</span>
+                <div style="width:1px;background:#ccc;height:.3rem;margin:0 .23rem;"></div>
+                <p>
+                  余额:
+                  <span style="color:#F76649">{{user.balance}}</span>
+                </p>
+              </div>
+              <!-- 钱包 消息 用户信息 按钮 及hover激活样式 -->
+              <div class="row item-center headerA-img pointer">
+                <div class="row item-center">
+                  <img
+                    @mouseover="imgMT(1)"
+                    @mouseout="imgOUT()"
+                    :src="imgNum==1?img.walletHover:img.wallet"
+                    alt
+                  >
+                  <div class="userIcon">
+                    <p>
+                      盈利:
+                      <span style="color:#02D36A">50.00</span>
+                    </p>
+                    <p>
+                      亏损:
+                      <span style="color:#F76649">-20.00</span>
+                    </p>
+                  </div>
+                </div>
+                <div class="row item-center" @click="PersonalCenterTo()">
+                  <img
+                    @mouseover="imgMT(2)"
+                    @mouseout="imgOUT()"
+                    :src="imgNum==2?img.userHover:img.user"
+                    alt
+                  >
+                  <div class="userIcon">点击前往个人中心。</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 头部导航 -->
+      <div class="headerA-bottom row vertical-center">
+        <div class="middle">
+          <!-- 激活 -->
+          <ul class="row headerA-list item-center">
+            <li class="pointer row center" v-for="(item,index) in navList" @click="navActive(index,item.type_code)"
+              :key="index"
+              :class="{active:nav_code == item.type_code }"
+            >{{item.name}}</li>
+          </ul>
+        </div>
+      </div>
+    </div>
+    <div class="row vertical-center" style="padding-top:.08rem; margin-top:1.5rem">
+      <!-- 左侧赛事数据展示 及 激活样式    /* height: 8.52rem; */ -->
+      <div class="middle row">
+        <div class="mainLeft scroll">
+          <div class="mainLeft-scroll">
+            <div v-for="(item,index) in leftData" :key="index">
+              <div>
+                <div class="mainLeft-title fz16 row item-center allAlignment">
+                  <div class="row item-center">
+                    <img v-if="item.code=='zq'" src="@/assets/st-imges/footballimg.png">
+                    <img v-if="item.code=='lq'" src="@/assets/st-imges/basketballimg.png">
+                    <img v-if="item.code=='bq'" src="@/assets/st-imges/baseballimg.png">
+                    <img v-if="item.code=='wq'" src="@/assets/st-imges/tennisimg.png">
+                    {{item.code=='zq'?'足球':''}}
+                    {{item.code=='lq'?'篮球':''}}
+                    {{item.code=='bq'?'棒球':''}}
+                    {{item.code=='wq'?'网球':''}}
+                  </div>
+                  <span class="mainLeft-title-num">{{item.num}}</span>
+                </div>
+                <ul class="mainLeft-list pointer" v-for="(items,i) in item.list" :key="i">
+                  <li
+                    class="row allAlignment hover fz14"
+                    :class="items.active==true?'active':''"
+                    @click="mainLeftClick(item.code,items.odds_code,item.code,i)"
+                  >
+                    <p>{{items.title}}</p>
+                    <p>{{items.num}}</p>
+                  </li>
+                </ul>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <!-- 中间数据展示区 -->
+        <div :class="zoom==false?'mainactive':'main'">
+          <!-- 此处为后加入组件所在位置 -->
+          <div class="scroll main-center">
+            <!-- 挡板组件 -->
+            <div class="load" v-if="lodShow">
+              <loading/>
+            </div>
+            <div v-show="!lodShow">
+              <!-- 让球大小 -->
+              <div v-if="play_code == 'CO'">
+                <div v-if="ballType=='zq'">
+                  <theBallSize/>
+                </div>
+                <div v-else-if="ballType=='lq'">
+                  <basketballTheBallSize/>
+                </div>
+                <div v-else-if="ballType=='bq'">
+                  <baseballTheBallSize/>
+                </div>
+                <div v-else-if="ballType=='wq'">
+                  <tennisThePlateTheBureau/>
+                </div>
+              </div>
+              <!-- 独赢 -->
+              <div v-if="play_code == 'C'">
+                <OnlyWin/>
+              </div>
+              <!-- 总进球数 -->
+              <div v-if="play_code == 'TG'">
+                <totalGoal/>
+              </div>
+              <!-- 半场/全场 -->
+              <div v-if="play_code == 'HF'">
+                <Fullhalf/>
+              </div>
+              <!-- 波胆 -->
+              <div v-if="play_code == 'B'">
+                <WaveBravery/>
+              </div>
+              <!-- 冠军 -->
+              <div v-if="play_code == 'kemp'">
+                <champion/>
+              </div>
+              <!-- 进球单双 -->
+              <div v-if="play_code == 'TS'">
+                <singleAndDouble/>
+              </div>
+              <!-- 球队最先/最后进球 -->
+              <div v-if="play_code == 'FLB'">
+                <startAndEnd/>
+              </div> 
+              <!-- 滚球足球 -->
+              <div v-if="play_code == 'StRollBall'">
+                <footballRollBall/>
+              </div>
+              <!-- 滚球篮球 -->
+              <div v-if="play_code == 10001">
+                <BasketballRollBall/>
+              </div>
+              <!-- 滚球棒球 -->
+              <div v-if="play_code == 10002">
+                <baseballRollBall/>
+              </div>
+              <!-- 滚球网球 -->
+              <div v-if="play_code == 10003">
+                <tennisRollBall/>
+              </div>
+              <!-- 普通赛事赔率玩法 -->
+              <div v-if="play_code == 10010">
+                <playBetting/>
+              </div>
+
+              <!-- 足球滚球赛事赔率玩法 -->
+              <div v-if="play_code == 10011">
+                <zqRollBall/>
+              </div>
+
+              <!-- 篮球滚球赛事赔率玩法 -->
+              <div v-if="play_code == 10012">
+                <lqRollBall/>
+              </div>
+
+              <!-- 棒球滚球赛事赔率玩法 -->
+              <div v-if="play_code == 10013">
+                <bqRollBall/>
+              </div>
+
+              <!-- 网球滚球赛事赔率玩法 -->
+              <div v-if="play_code == 10014">
+                <wqRollBall/>
+              </div>
+              <!-- <WaveBravery /> -->
+              <!-- 联赛选择表 -->
+              <div v-if="play_code == 10015">
+                <elasticFrame/>
+              </div>
+            </div>
+            </div>
+        </div>
+        <!-- 右侧功能部分 -->
+        <div class="scroll" :class="zoom?'mainright':'mainrightactive'">
+          <!-- 直播区块 -->
+          <div class="mainright-liveSystem">
+            <div
+              class="row center allAlignment"
+              style="padding:0 .2rem;height:.5rem;color:#EEE;background:linear-gradient(180deg,rgba(153,153,153,1) 0%,rgba(86,86,86,1) 100%);font-size:.18rem;"
+            >
+              直播中心
+              <p
+                class="mainright-liveSystem-btn pointer row center hover br05"
+                @click="zoomClick()"
+              >
+                <img src="@/assets/st-imges/suoxiao.png" alt>
+              </p>
+            </div>
+            <liveTable />
+            
+          </div>
+          <!-- 投注单区块 -->
+          <div class="mainright-betting">
+            <div
+              class="bettinbox row item-center"
+              :class="bettingList?'bettinboxactive':'bettinboxinactive'"
+              style
+            >投注单</div>
+            <div v-show="Limit == 0">
+              <div
+                class="row center"
+                style="height:1.2rem;background:#666;color:#999;font-size:.16rem"
+              >暂无相关数据</div>
+            </div>
+            <!-- 单注投注表 -->
+            <div v-show="isBetting == 1">
+              <oddBettingTable/>
+            </div>
+            <!-- 串式投注表 -->
+            <div v-show="isBetting == 2">
+              <eventBettingTable/>
+            </div>
+          </div>
+          <!-- 联系我们 -->
+          <div class="mainright-contactUs">
+            <div class="mainright-contactUs-title row item-center">联系我们</div>
+            <div class="mainright-contactUs-box">
+              <div class="contactUs row center">
+                <div class="contactUs-txt triangle fz14">
+                  <div class="row item-center">
+                    <div>
+                      <img src="@/assets/st-imges/dianhua.png" alt>
+                    </div>
+                    <div class="fz14" style="margin-left:.15rem; line-height: .25rem;">
+                      <p>客服热线:</p>
+                      <p>0063-9958276789</p>
+                    </div>
+                  </div>
+                  <div class="row item-center" style="margin-top:.16rem;">
+                    <div>
+                      <img src="@/assets/st-imges/xinfeng.png" alt>
+                    </div>
+                    <div class="fz14" style="margin-left:.15rem;line-height: .25rem;">
+                      <p>电邮地址:</p>
+                      <p>HX669.com@gmail.com</p>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 页尾 -->
+    <div style="background:linear-gradient(180deg,rgba(153,153,153,1) 0%,rgba(86,86,86,1) 100%);">
+      <!-- <div class="middle bottomA-top row fz14" style="margin:0 auto">
+        <div class="bottomA-top-left">
+          <h3>其他相关链接</h3>
+          <ul>
+            <li>关于我们</li>
+            <li>网站导览</li>
+            <li>博彩责任</li>
+            <li>规则与条款</li>
+            <li>隐私权政策</li>
+            <li>代理加盟</li>
+          </ul>
+        </div>
+        <div class="bottomA-top-center">
+          <h3>是否需要帮助?</h3>
+          <ul>
+            <li>存款帮助</li>
+            <li>取款帮助</li>
+            <li>常见问题</li>
+            <li>在线客服</li>
+            <li>联系我们</li>
+          </ul>
+        </div>
+        <div class="bottomA-top-right">
+          <h3>支付方式</h3>
+          <p>享受畅通无阻的存提款体验,我们的支付方式快速又安全。</p>
+          <p>HX669支持全球主要支付方式!</p>
+          <ul class="row item-center allAlignment" style="width:4.8rem;height:1.5rem;">
+            <li>
+              <img style="width:.8rem;height:.4rem" src="@/assets/st-imges/icon_quick_pay.png" alt>
+            </li>
+            <li>
+              <img style="width:1.2rem;height:.5rem" src="@/assets/st-imges/icon_alipay.png" alt>
+            </li>
+            <li>
+              <img style="width:1rem;height:.4rem" src="@/assets/st-imges/icon_qqpay.png" alt>
+            </li>
+            <li>
+              <img style="width:1rem;height:.4rem" src="@/assets/st-imges/icon_wxpay.png" alt>
+            </li>
+          </ul>
+        </div>
+      </div> -->
+      <div
+        class="middle bottomA-bottom fz14 row center"
+        style="margin:0 auto"
+      >HX669属于HX669有限公司注册 版权所有©2019</div>
+    </div>
+    <div class="bigLoading" v-if="bigLoad">
+      <bigLoading/>
+    </div>
+    <registered class="reg" v-if="regShow"/>
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import liveTable from "@/components/liveTable";
+import navLIstData from "@/assets/navLIstData";
+import oddBettingTable from "@/components/oddBettingTable";
+import eventBettingTable from "@/components/eventBettingTable";
+import champion from "@/components/champion";
+import startAndEnd from "@/components/startAndEnd";
+import theBallSize from "@/components/theBallSize";
+import singleAndDouble from "@/components/singleAndDouble";
+import playBetting from "@/components/playBetting";
+import tennisRollBall from "@/components/tennisRollBall";
+import footballRollBall from "@/components/footballRollBall";
+import OnlyWin from "@/components/OnlyWin";
+import totalGoal from "@/components/totalGoal";
+import Fullhalf from "@/components/Fullhalf";
+import WaveBravery from "@/components/WaveBravery";
+import zqRollBall from "@/components/zqRollBall";
+import lqRollBall from "@/components/lqRollBall";
+import bqRollBall from "@/components/bqRollBall";
+import wqRollBall from "@/components/wqRollBall";
+import BasketballRollBall from "@/components/BasketballRollBall";
+import baseballRollBall from "@/components/baseballRollBall";
+import basketballTheBallSize from "@/components/basketballTheBallSize";
+import baseballTheBallSize from "@/components/baseballTheBallSize";
+import tennisThePlateTheBureau from "@/components/tennisThePlateTheBureau";
+import elasticFrame from "@/components/elasticFrame";
+import loading from "@/components/loading";
+import bigLoading from "@/components/bigLoading";
+import registered from "@/components/registered";
+export default {
+  data() {
+    return {
+      info: "", //登录时错误提示
+      account: "", //用户名
+      password: "", //密码
+      zoom: true, //缩放
+      bettingList: true, //投注数据
+      userIsLogin: false, //  用户是否登录
+      user: { userName: "", balance: 0 }, // 用户信息
+      userData: "", //用户数据
+      img: {
+        user: require("@/assets/st-imges/user.png"),
+        userHover: require("@/assets/st-imges/user-hover.png"),
+        wallet: require("@/assets/st-imges/wallet.png"),
+        walletHover: require("@/assets/st-imges/wallet-hover.png"),
+        eaml: require("@/assets/st-imges/emal.png"),
+        eamlHover: require("@/assets/st-imges/emal-hover.png")
+      }, //头部图片
+      List: [
+        { title: "体育赛事", num: 0 },
+        // { title: "优惠", num: 1 },
+        // { title: "手机版", num: 2 }
+      ], // 头部导航列表
+      imgNum: 0, //头部图片hover效果
+      num: 0, //头部导航激活样式
+      navList: [
+        { name: "滚球", type_code: "StRollBall", id: 0 },
+        { name: "即将", type_code: "StSoon", id: 1 },
+        { name: "今日", type_code: "StToday", id: 2 },
+        { name: "早盘", type_code: "StMorningPlate", id: 3 },
+        { name: "串场", type_code: "StStringScene", id: 4 }
+        // { name: "冠军",type_code:'StChampion', id: 5 }
+      ],
+      leftData: "", //左侧导航数据
+      dataIndex: "StMorningPlatezq0", //左侧导航数据下标
+      ball_code: "", //球类代码
+      nav_code: "StMorningPlate", //活动代码默认早盘
+      play_code: "CO", //滚球玩法代码默认'StRollBall'
+      ballType: "zq", //球类型
+      timers: true, //
+      isBetting: 0, //显示投注窗默契不显示1=单式、2串式
+      lodShow: false, // 小挡板显示,
+      bigLoad: false, //大挡板显示
+      regShow: false, //注册显示
+      Limit:'',//
+      
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    // 登录
+    login() {
+      // appip_source = '来源';
+      // appuip_user = '1008'
+      if (this.account.length > 0 && this.password.length > 0) {
+        this.$http
+          .post(this.$ports.login.login, {
+            account: this.account,
+            password: this.password
+          })
+          .then(res => {
+            if (res.data.status == 1) {
+              this.info = "";
+              this.$public.setItem("user",res.data.data[0]);
+              //投注限制
+              this.$public.setItem("limit",JSON.stringify(res.data.data[0].bet_money_limit));
+              localStorage.setItem("token", res.data.data[0].token);
+              this.$store.dispatch("SET_TOKEN", res.data.data[0].token);
+              this.$dialog.toast({ mes: "登录成功!", timeout: 2000 });
+              this.userIsLogin = true;
+              this.user.userName = res.data.data[0].name;
+              this.user.balance = res.data.data[0].cash;
+              this.timers = true;
+             
+            } else {
+              this.userIsLogin = false;
+              this.info = res.data.msg;
+            }
+          });
+      } else {
+        this.userIsLogin = false;
+        this.info = "账号或密码有误";
+      }
+    },
+    // 退出登录
+    // escLogin() {
+    //   localStorage.setItem("token", "");
+    //   localStorage.setItem("user", "");
+    //   this.$dialog.toast({ mes: "退出登录", timeout: 1000 });
+    //   this.userIsLogin = false;
+    //   this.timers = false;
+    // },
+    escLogin() {
+      this.$http
+        .post(this.$ports.login.loginOut, {
+          token: localStorage.getItem("token")
+        })
+        .then(res => {
+          if (res.data.msg === "成功") {
+            this.$dialog.toast({ mes: "退出登录成功", timeout: 2000 });
+            localStorage.setItem("token", "");
+            localStorage.setItem("name", "");
+            localStorage.setItem("balance", "");
+            this.userIsLogin = false;
+            this.$router.push("/");
+          } else {
+            this.$dialog.toast({ mes: "退出登录失败", timeout: 2000 });
+          }
+        });
+    },
+    // 跳转到个人中心必须要在登录成功状态
+    PersonalCenterTo() {
+      if (this.userIsLogin == true) {
+        this.$router.push("/PersonalCenter");
+      } else {
+        this.$dialog.toast({ mes: "未登录,请登录。", timeout: 1500 });
+      }
+    },
+    //左侧激活
+    /*---------------------------------------*/
+    mainLeftClick(code, odds_code, type, index) {
+      console.log('状态',code,odds_code,type,index);
+      let activity = this.$store.getters.getActivity
+      if (type) {
+        this.ballType = type;
+      } else {
+        this.ballType = "zq";
+      }
+      if (this.dataIndex == activity+type + index) return false;
+      this.$store.dispatch("SET_LEAGUEDATA",[]);
+      //console.log(type);
+      this.$store.dispatch("SET_BALL_CODE", type);
+      this.dataIndex = activity+type + index;
+      if (odds_code) {
+        this.$store.dispatch("SET_PALY_CODE", odds_code);
+        this.$store.dispatch("SET_CONTROLROUTING", odds_code);
+      } else {
+        let activity_code = "StRollBall"; //默认足球StRollBall
+        if (type == "lq") {
+          activity_code = 10001;
+        } else if (type == "bq") {
+          activity_code = 10002;
+        } else if (type == "wq") {
+          activity_code = 10003;
+        }
+        this.$store.dispatch("SET_CONTROLROUTING", activity_code);
+      }
+      this.leftData.forEach(e => {
+        //if(e.code == code ){
+        e.list.forEach(res => {
+          if (res.odds_code == odds_code && e.code == code) {
+            this.$set(res, "active", true);
+          } else {
+            this.$set(res, "active", false);
+          }
+        });
+      });
+    },
+
+    // 头部激活
+    /*--------------------------------------*/
+    listActive(index) {
+      this.num = index;
+    },
+
+    //活动
+    /*--------------------------------------*/
+    navActive(index, type_code) {
+      // console.log(index, type_code);
+      if (this.nav_code == type_code) return false;
+      this.nav_code = type_code;
+      this.$store.dispatch("SETACTIVITY", type_code);
+      if (this.nav_code != "StRollBall") {
+        this.$store.dispatch("SET_BALL_CODE", 'zq');
+        this.ballType = "zq";
+        this.$store.dispatch("SET_PALY_CODE",'CO');
+        this.$store.dispatch("SET_CONTROLROUTING",'CO');
+        let isBreak = false;
+        for(let i = 0; i < navLIstData.Other.length;i++ ){
+          for(let j = 0 ; j<navLIstData.Other[i].list.length; j++){
+            if(navLIstData.Other[i].list[j].active){
+              this.$set(navLIstData.Other[i].list[j], "active", false);
+              isBreak = true;
+              break;
+            }
+          }
+          if(isBreak)break;         
+        }
+        this.$set(navLIstData.Other[0].list[0], "active", true);
+
+      } else if (this.nav_code == "StRollBall") {
+        this.$store.dispatch("SET_BALL_CODE", 'zq');
+        this.ballType = "zq";
+        this.$store.dispatch("SET_CONTROLROUTING", "StRollBall");
+          navLIstData.RollBall.forEach((res,index)=>{
+            this.$set(res.list[0],"active", false);
+          })
+          this.$set(navLIstData.RollBall[0].list[0],"active", true);
+      }
+      if (type_code == "StStringScene") {
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      } else {
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.getAjax(this.nav_code);
+    },
+
+    //主页右侧缩放
+    /*-----------------------------------*/
+    zoomClick() {
+      this.zoom = !this.zoom;
+    },
+
+    //后面要放弃此方法
+    imgMT(index) {
+      this.imgNum = index;
+    },
+    //后面要放弃此方法
+    imgOUT() {
+      this.imgNum = 0;
+    },
+
+    /*----------------------------------- */
+    //普通活动数据组合
+    dataCombination(data) {
+      this.pointsBallFinishing(0, data.zq);
+      this.pointsBallFinishing(1, data.lq);
+      this.pointsBallFinishing(2, data.bq);
+      this.pointsBallFinishing(3, data.wq);
+    },
+
+    /*------------------------------------*/
+    //分球处理
+    pointsBallFinishing(num, data) {
+      let obj = navLIstData.Other;
+      if (data.length > 0) {
+        obj[num].num = data[0].game_num;
+        data.forEach(res => {
+          obj[num].list.forEach(e => {
+            if (e.odds_code == res.p_code) {
+              e.num = res.code_num;
+            }
+          });
+        });
+      } else {
+        obj[num].num = 0;
+        obj[num].list.forEach(e => {
+          e.num = 0;
+        });
+      }
+    },
+
+    /*-------------------------------------*/
+    //滚球数据组合
+    rollBallData(e) {
+      let obj = navLIstData.RollBall;
+      let zq = e.zq,lq = e.lq, wq = e.wq,bq = e.bq;
+      obj[0].num = zq.length > 0 ? zq[0].game_num : 0;
+      obj[0].list[0].num = zq.length > 0 ? zq[0].game_num : 0;
+      obj[1].num = lq.length > 0 ? lq[0].game_num : 0;
+      obj[1].list[0].num = lq.length > 0 ? lq[0].game_num : 0;
+      obj[2].num = bq.length > 0 ? bq[0].game_num : 0;
+      obj[2].list[0].num = bq.length > 0 ? bq[0].game_num : 0;
+      obj[3].num = wq.length > 0 ? wq[0].game_num : 0;
+      obj[3].list[0].num = wq.length > 0 ? wq[0].game_num : 0;
+      this.leftData = obj;
+      //console.log(this.leftData);
+    },
+
+    /*--------------------------------------- */
+    //获取导航球类和玩法数量
+    getAjax(type) {
+      //console.log(type);
+      this.leftData = [];
+      this.$http.get(this.$ports.home.gameList, { type }).then(res => {
+        let zq = [],lq = [],bq = [],wq = [];
+        //console.log(res);
+        if (res.data.status == 1) {
+          if (res.data.data.length > 0) {
+            res.data.data.forEach(e => {
+              if (e.game_code == "zq") {
+                zq.push(e);
+              } else if (e.game_code == "lq") {
+                lq.push(e);
+              } else if (e.game_code == "bq") {
+                bq.push(e);
+              } else if (e.game_code == "wq") {
+                wq.push(e);
+              }
+            });
+            let obj = { zq, lq, bq, wq };
+            if (type == "StRollBall") {
+              
+              this.rollBallData(obj);
+            } else {
+              this.dataCombination(obj);
+              this.leftData = navLIstData.Other;
+            }
+          } else {
+            if (type == "StRollBall") {
+              this.leftData = navLIstData.RollBall;
+            } else {
+              this.leftData = navLIstData.initOther;
+            }
+          }
+        }
+        if (this.leftData.length > 0) {
+          this.bigLoad = false;
+        }
+      });
+    },
+
+    /*------------------------------------------- */
+    //获取玩法别名
+    getAjaxanme: function() {
+      this.$http
+        .get(this.$ports.gambling.getOddsCode, {
+          type: "p_code"
+        })
+        .then(res => {
+          this.$store.dispatch("SET_PLAYALIAS", res.data.data);
+          // console.log(res.data.data);
+        });
+    },
+    // 获取个人中心用户信息
+    getUserData() {
+      this.$http
+        .post(this.$ports.login.getAgent, {
+          token: localStorage.getItem("token")
+        })
+        .then(res => {
+          if (res.data.data) {
+            this.userData = res.data.data;
+            this.userIsLogin = true;
+            this.user.userName = res.data.data.name;
+            this.user.balance = res.data.data.cash;
+          } else {
+            this.timers = false;
+            this.userIsLogin = false;
+            this.user.userName ='';
+            this.user.balance = '';
+            localStorage.setItem("token", "");
+            this.$dialog.alert({
+              mes: "您好,您的登录已过期,请您前往登录",
+              timeout: 1500
+            });
+            localStorage.setItem("token", "");
+            this.userIsLogin = false;
+            this.timers = false;
+          }
+        });
+    },
+    //每隔2分钟获取用户信息,用于判断用户是否登录过期
+    getUserDataTime() {
+      let _this = this;
+      this.$public.ajaxTimerFun(timing => {
+        if (_this.timers) {
+          _this.getUserData();
+        } else {
+          clearInterval(timing);
+        }
+      }, 1000 * 10);
+    },
+    //注册框的展示
+    regShowClick() {
+      this.$store.dispatch("GETRGSHOW", true);
+    },
+   
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    //获取获取路由码数据
+    getControlRouting() {
+      return this.$store.getters.getControlRouting;
+    },
+    //获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    },
+    getLodShow() {
+      return this.$store.getters.getLoading;
+    },
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // 获取注册框状态
+    getRgShow() {
+      return this.$store.getters.getRgShow;
+    },
+
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    //监听页面路由
+    getControlRouting(val) {
+      // console.log(val);
+      this.play_code = val;
+    },
+    //是否显示投注窗口
+    getLimit(val) { // val的值为选中数
+      this.Limit = val;
+      if (val > 0) {
+        this.isBetting = 1;
+      }
+    },
+    getPassLimit(val){
+      this.Limit = val;
+      if(val > 0){
+        this.isBetting =2;
+      }
+    },
+    getLodShow(val) {
+      //console.log("val", val);
+      this.lodShow = val;
+    },
+    getActy(val) {
+      this.bigLoad = true;
+      this.lodShow = false;
+      this.isBetting = this.$store.getters.getBettingType;
+    },
+    getRgShow(val) {
+      this.regShow = val;
+    },
+    // getToken(val) {
+    //   if (val) {
+    //     let userInfo = JSON.parse(this.$public.getItem("user"));
+    //     this.userIsLogin = true;
+    //     this.user.userName = userInfo[0].name;
+    //     this.user.balance = userInfo[0].cash;
+    //   }
+    // }
+  },
+  /**
+   * 页面初始化完成挂载
+   */
+  mounted() {
+    // //活动代码activity SETACTIVITY
+    // this.nav_code = this.$store.getters.getActivity;
+    // //玩法代码
+    // this.play_code = this.$store.getters.getPaly_code;
+    // //球类代码
+    // this.ball_code = this.$store.getters.getBallCode;
+    //左侧默认数据
+    this.getAjax(this.nav_code);
+    //获取玩法代码
+    this.getAjaxanme();
+    // if (localStorage.getItem("token")) {
+    //   let userInfo = localStorage.getItem("user") != null ? JSON.parse(localStorage.getItem("user")) :'' ;
+    //   this.userIsLogin = true;
+    //   this.user.userName = userInfo[0].name;
+    //   this.user.balance = userInfo[0].cash;
+    // }
+
+   
+
+    //登录后获取用户信息
+    if (localStorage.getItem("token")) {
+      this.getUserDataTime();
+      this.getUserData();
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  components: {
+    oddBettingTable,
+    eventBettingTable,
+    champion,
+    startAndEnd,
+    theBallSize,
+    singleAndDouble,
+    playBetting,
+    tennisRollBall,
+    footballRollBall,
+    OnlyWin,
+    totalGoal,
+    Fullhalf,
+    WaveBravery,
+    zqRollBall,
+    lqRollBall,
+    bqRollBall,
+    wqRollBall,
+    WaveBravery,
+    BasketballRollBall,
+    baseballRollBall,
+    baseballTheBallSize,
+    basketballTheBallSize,
+    tennisThePlateTheBureau,
+    elasticFrame,
+    loading,
+    bigLoading,
+    registered,
+    liveTable,
+  }
+};
+</script>
+
+<style scoped>
+.header-top {
+  position: fixed;
+  left: 0;
+  top: 0;
+  z-index: 9;
+  width: 100%;
+}
+
+.fz16 {
+  font-size: 0.16rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #f76649;
+}
+.pointer {
+  cursor: pointer;
+}
+.headerA-top {
+  height: 1rem;
+  background: linear-gradient(
+    180deg,
+    rgba(153, 153, 153, 1) 0%,
+    rgba(86, 86, 86, 1) 100%
+  );
+}
+.headerA-bottom {
+  height: 0.5rem;
+  background: #444444;
+}
+.headerA-title {
+  font-size: 0.42rem;
+  margin-left: 0.3rem;
+}
+.headerA-nav {
+  font-size: 0.24rem;
+  height: 100%;
+  color: #fff;
+}
+.headerA-nav li {
+  height: 100%;
+}
+.headerA-nav li.active {
+  font-weight: bold;
+}
+.triangle.active::after {
+  border-width: 0.1rem;
+  border-left-color: #444;
+  border-top-color: #444;
+  left: 37%;
+  bottom: -0.12rem;
+  transform: rotate(45deg);
+}
+.headerA-login {
+  height: 100%;
+}
+.headerA-login > div {
+  height: 0.4rem;
+}
+.headerA-login div input {
+  width: 2rem;
+  height: 100%;
+  border: none;
+  background: #eeeeee;
+  color: #999;
+  padding-left: 0.2rem;
+}
+.headerA-login-pwd {
+  width: 3rem;
+  margin-left: 0.1rem;
+  position: relative;
+}
+.headerA-login-pwd span {
+  color: #f76649;
+  position: absolute;
+  left: 1rem;
+  bottom: -0.25rem;
+  cursor: pointer;
+}
+.headerA-login-txt {
+  width: 1rem;
+  height: 0.4rem;
+  background: #f76649;
+  border: none;
+  color: #ffffff;
+  font-size: 0.18rem;
+}
+
+.headerA-login-txt:active {
+  background: #a83131;
+}
+.headerA-top-left {
+  width: 55%;
+}
+.headerA-list {
+  padding-left: 1.88rem;
+  height: 100%;
+  color: #ccc;
+  font-size: 0.18rem;
+}
+.headerA-list li {
+  width: 0.8rem;
+  height: 100%;
+}
+.headerA-list li:hover {
+  color: #fff;
+  font-weight: bold;
+}
+.headerA-list li.active {
+  color: #fff;
+  font-weight: bold;
+  position: relative;
+}
+.headerA-list li.active::after {
+  content: "";
+  display: inline-block;
+  width: 0.3rem;
+  height: 0.04rem;
+  background: #f76649;
+  position: absolute;
+  left: 32%;
+  bottom: 0;
+}
+.loginTo > div {
+  height: 100%;
+  font-size: 0.18rem;
+  color: #fff;
+}
+
+.headerA-img img {
+  width: 0.3rem;
+  height: 0.3rem;
+  margin-left: 0.2rem;
+}
+.headerA-img {
+  margin-left: 0.5rem;
+}
+.headerA-img > div {
+  position: relative;
+}
+
+.mainLeft {
+  width: 2.8rem;
+  height: 8.2rem;
+  overflow-y: auto;
+  overflow-x: hidden;
+}
+.mainLeft-scroll {
+  height: 100%;
+  width: 2.7rem;
+  background: #ccc;
+}
+.mainLeft-title {
+  height: 0.6rem;
+  color: #eee;
+  background: linear-gradient(
+    180deg,
+    rgba(153, 153, 153, 1) 0%,
+    rgba(86, 86, 86, 1) 100%
+  );
+  padding: 0 0.1rem 0 0.2rem;
+}
+.mainLeft-title img {
+  width: 0.22rem;
+  height: 0.22rem;
+  margin-right: 0.16rem;
+}
+.mainLeft-title-num {
+  width: 0.4rem;
+  height: 0.4rem;
+  background: #f76649;
+  border-radius: 50%;
+  font-size: 0.1rem;
+  text-align: center;
+  line-height: 0.4rem;
+}
+.mainLeft-list li {
+  height: 0.4rem;
+  border-bottom: 0.01rem solid #ccc;
+  line-height: 0.4rem;
+  padding: 0 0.25rem 0 .2rem;
+  color: #666666;
+  background: #ddd;
+}
+.mainLeft-list li.active {
+  background: #fff;
+  border-left: 0.04rem solid #f76649;
+}
+.main {
+  width: 9rem;
+  /* margin: 0 .1rem; */
+}
+.mainactive {
+  width: 10rem;
+  /* margin: 0 0.1rem; */
+  /* margin-left: 0.1rem; */
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  /* border-radius: 0.05rem 0 0 0.05rem; */
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+  filter: brightness(1.2)
+}
+
+.mainright {
+  width: 4rem;
+  height: 8.2rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+  margin-left: 0.1rem;
+}
+.mainrightactive {
+  width: 3rem;
+  height: 7.8rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+  /* margin-left: 0.2rem; */
+}
+
+.mainright-liveSystem {
+  position: relative;
+}
+.mainright-liveSystem-btn {
+  width: 0.28rem;
+  height: 0.28rem;
+  background: #555;
+}
+
+
+
+.bettinbox {
+  background: linear-gradient(
+    180deg,
+    rgba(153, 153, 153, 1) 0%,
+    rgba(86, 86, 86, 1) 100%
+  );
+  height: 0.5rem;
+  font-size: 0.18rem;
+  color: #eee;
+  padding-left: 0.2rem;
+}
+.bettinbox::after {
+  border-width: 0.08rem;
+  left: 0.36rem;
+  bottom: -0.087rem;
+  transform: rotate(45deg);
+}
+.bettinboxactive::after {
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+}
+.bettinboxinactive::after {
+  border-left-color: #777;
+  border-top-color: #777;
+}
+.mainright-betting {
+  margin-top: 0.2rem;
+}
+
+.mainright-contactUs {
+  margin-top: 0.2rem;
+}
+.mainright-contactUs-title {
+  padding-left: 0.2rem;
+  height: 0.5rem;
+  background: linear-gradient(
+    180deg,
+    rgba(153, 153, 153, 1) 0%,
+    rgba(86, 86, 86, 1) 100%
+  );
+  font-size: 0.18rem;
+  color: #eee;
+}
+.mainright-contactUs-box {
+  height: 2.36rem;
+  background: url("../../assets/st-imges/contactUs.png") no-repeat;
+  background-size: 100% 100%;
+}
+.bottomA-top {
+  padding-top: 0.4rem;
+  height: 3.3rem;
+  color: #fff;
+}
+.title {
+  font-size: 0.18rem;
+}
+h3 {
+  font-size: 0.18rem;
+  margin-bottom: 0.2rem;
+}
+.bottomA-top div {
+  margin-right: 2.2rem;
+  flex-wrap: nowrap;
+}
+.bottomA-top-left li {
+  line-height: 0.36rem;
+}
+.bottomA-top-center li {
+  line-height: 0.36rem;
+}
+.bottomA-top-right p {
+  line-height: 0.36rem;
+}
+.bottomA-bottom {
+  color: #ccc;
+  height: 0.68rem;
+}
+.contactUs {
+  width: 100%;
+  height: 100%;
+  background: rgba(0, 0, 0, 0.5);
+}
+.contactUs-txt {
+  color: #fff;
+  width: 80%;
+  height: 1.6rem;
+  background: rgba(247, 102, 73, 0.5);
+  padding: 0.16rem 0.3rem;
+}
+.contactUs-txt div {
+  flex-wrap: wrap;
+}
+.contactUs-txt::after {
+  border-width: 0.15rem;
+  border-left-color: rgba(247, 102, 73, 0.5);
+  border-top-color: rgba(247, 102, 73, 0.5);
+  left: 45%;
+  bottom: -0.14rem;
+  transform: rotate(-135deg);
+}
+
+.betting-input {
+  width: 1.6rem;
+  height: 0.34rem;
+  background: #fff;
+}
+.betting-earn {
+  background: #e7ffda;
+  border: 1px solid #bfe2b3;
+  width: 1.6rem;
+  height: 0.34rem;
+  margin-left: 0.2rem;
+  color: #999;
+  padding-left: 0.1rem;
+}
+.eorr {
+  width: 3.5rem;
+  height: 0.5rem;
+  background: #a83131;
+  color: #fff;
+}
+.main-center {
+  height: 8rem;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+.elvesfigureBox li {
+  width: 0.3rem;
+  height: 0.3rem;
+  cursor: pointer;
+}
+
+.userIcon {
+  display: none;
+}
+.headerA-img > div:hover .userIcon {
+  display: block;
+  width: 1.3rem;
+  padding: 0.1rem 0.2rem;
+  height: 1rem;
+  line-height: 0.4rem;
+  font-size: 0.14rem;
+  position: absolute;
+  left: -0.3rem;
+  border-radius: 0.05rem;
+  z-index: 999;
+  bottom: -1.1rem;
+  background: rgba(85, 85, 85, 0.9);
+  box-shadow: -2px 0px 5px 1px rgba(0, 0, 0, 0.1),
+    0px -2px 5px 1px rgba(0, 0, 0, 0.1), 2px 0px 5px 1px rgba(0, 0, 0, 0.1),
+    0px 2px 5px 1px rgba(0, 0, 0, 0.1);
+}
+.login div {
+  height: 0.4rem;
+}
+.bigLoading {
+  position: fixed;
+  z-index: 999;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+}
+</style>

BIN=BIN
.svn/pristine/66/668b4756951b5fb0f446bc77f6bcaf469d01b458.svn-base


BIN=BIN
.svn/pristine/67/67f06dc9cae0256be351b1dd4d5e6c29dae76dcb.svn-base


BIN=BIN
.svn/pristine/6b/6b4f1eea0e8e6ec7b3059a353e6c2c21f8a14d3b.svn-base


+ 282 - 0
.svn/pristine/6c/6c7c27c7be2ad1f5fced012402dfeb270ad7c048.svn-base

@@ -0,0 +1,282 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import publicFun from '@/assets/publicFunction';
+Vue.use(Vuex);
+/**
+ * 设置全局访问的state对象
+ */
+const state = {
+  gameRatio:'', //玩法比率数据
+  activity: 'StMorningPlate', //publicFun.getItem('activity'),//活动类别
+  ball_code: 'zq', //publicFun.getItem('ballId'),//球类代码
+  paly_code: 'CO', //玩法代码默认早盘玩法concede_size
+  controlRouting:'',//控制路由
+  loading:'',//Loading组件的状态显隐
+  // isShow:false,//登录按钮点击显示登录页
+  rgShow:false,//注册组件显示
+  macth_id: '', //publicFun.getItem('macth_id'),//赛事id
+  betting:[],//JSON.parse(publicFun.getItem('betting')),//投注数据
+  passBetting:'',//串式投注数据
+  bettingType:1,// 1为单式、2为串式
+  leagueChoose:'',//联赛赛事选择
+  leagueData:[],//联赛数据
+  // isBetting:publicFun.getItem('isBetting'),//是否展示投注窗口
+  deleteType:'',//投注框数据删除id或类型
+  token:'', //用户凭证
+  limit:0,//限制投注窗投注数量
+  passLimit:'',//限制投注窗投注数量
+  // headTitle:JSON.parse(publicFun.getItem('headTitle')),//头部导航数据信息
+  // noRoll:false, // 禁止背景滚动
+  playAlias:'',//玩法别名
+
+
+}
+
+/**
+ * 实时监听state里面值的变法(最新变法)
+ */
+const getters = {
+  getGameRatio(state){
+     return state.gameRatio;
+  },
+  getActivity(state) {
+    return state.activity;
+  },
+  getBallCode(state) {
+    return state.ball_code;
+  },
+  getPaly_code(state) {
+    return state.paly_code;
+  },
+  getControlRouting(state) {
+    return state.controlRouting;
+  },
+  getLoading(state){
+      return  state.loading;
+  },
+  // getIsShow(state){
+  //     return  state.isShow;
+  // },
+  getRgShow(state){
+      return state.rgShow;
+  },
+  getMatchId(state){
+    return state.macth_id;
+  },
+  getBetting(state){
+    return state.betting;
+  },
+  getPassBetting(state){
+    return state.passBetting == '' ? JSON.parse(publicFun.getItem('passBetting')) : state.passBetting;
+  },
+  getBettingType(state){
+    return state.bettingType;
+  },
+  getLeagueChoose(state){
+    return state.leagueChoose;
+  },
+  getLeagueData(state){
+    return state.leagueData;
+  },
+  // getIsBetting(state){
+  //     return state.isBetting;
+  // },
+  getDeleteType(state){
+      return state.deleteType;
+  },
+  getToken(state) {
+    return state.token;
+  },
+  getLimit(state){
+      return state.limit;
+  },
+  getPassLimit(state){
+    return state.passLimit =='' ? publicFun.getItem('passLimit') :state.passLimit;
+  },
+  // getHeadTitle(state){
+  //     return state.headTitle;
+  // },
+  // getNoRoll(state){
+  //     return state.noRoll
+  // },
+  getPlayAlias(state){
+    return state.playAlias == '' ? JSON.parse(publicFun.getItem('playAlias')) : state.playAlias;
+  },
+
+}
+/**
+ * 设置对外可调用的方法
+ */
+const mutations = {
+  newGameRatio(state,val){
+      //publicFun.getCache('activity')
+      state.gameRatio = val; 
+  },
+  newActivity(state, val) {
+    state.activity = val;
+    //publicFun.setItem('activity',val)
+  },
+  newBallCode(state, val) {
+    state.ball_code = val;
+    //publicFun.setItem('ballId',val)
+  },
+  newPaly_code(state, val) {
+    state.paly_code = val;
+  },
+  newControlRouting(state, val) {
+    state.controlRouting = val;
+  },
+  newLoading(state,val){
+      state.loading = val;
+  },
+  // newisShow(state,val){
+  //     state.isShow = val;
+  // },
+  newRgShow(state,val){
+      state.rgShow = val;
+  },
+  newMacth_id(state,val){
+    state.macth_id = val;
+    // publicFun.setItem('macth_id',val);
+  },
+  newBetting(state,val){
+    let index =0;
+    if(val){
+        val.forEach(e=> {
+            index += e.data.length 
+        });
+    }
+    state.betting = val;
+    state.limit =index;
+  },
+  newPassBetting(state,val){
+      let index =0;
+      if(val){
+          val.forEach(e=> {
+              index += e.data.length 
+          });
+      }
+      state.passBetting = val;
+      publicFun.setItem('passBetting',val);
+      state.passLimit =index;
+      publicFun.setItem('passLimit',index);
+  },
+  newBettingType(state,val){
+    state.bettingType = val;
+  },
+  newLeagueChoose(state,val){
+    state.leagueChoose = val;
+  },
+  newLeagueData(state,val){
+    state.leagueData = val;
+  },
+  // newIsBetting(state,val){
+  //     state.isBetting = val;
+  //     publicFun.setItem('isBetting',val);
+  // },
+  newToken(state, val) {
+    state.token = val;
+    publicFun.setItem('token', val);
+  },
+  newDeleteType(state,val){
+      state.deleteType = val;
+  },
+  // newLimit(state,val){
+  //     state.limit = val;
+  //     publicFun.setItem('limit',val);
+  // },
+  newPassLimit(state,val){
+    state.limit = val;
+    publicFun.setItem('passLimit',val);
+  },
+  // newHeadTitle(state,val){
+  //     state.headTitle = val;
+  //     publicFun.setItem('ehadTitle',val);
+  // },
+  // newNoRoll(state,val){
+  //     state.noRoll = val
+  // },
+  newPlayAlias(state,val){
+    state.playAlias = val;
+    publicFun.setItem('playAlias',val);
+  },
+}
+
+/**
+ * 这里面的方法是用来异步触发mutations里面的方法
+ */
+const actions = {
+  SETACTIVITY(context, val) {
+    context.commit('newActivity', val);
+  },
+  SET_BALL_CODE(context, val) {
+    context.commit('newBallCode', val);
+  },
+  SET_PALY_CODE(context, val) {
+    context.commit('newPaly_code', val);
+  },
+  SET_CONTROLROUTING(context, val) {
+    context.commit('newControlRouting', val);
+  },
+  GETLOADING(context,val){
+      context.commit('newLoading',val)
+  },
+  // GET_ISSHOW(context,val){
+  //     context.commit('newisShow',val)
+  // },
+  GETRGSHOW(context,val){
+      context.commit('newRgShow',val)
+  },
+  MACTH_ID(context,val){
+    context.commit('newMacth_id',val)
+  },
+  SET_BETTING(context,val){
+      context.commit('newBetting',val)
+  },
+  SET_PASSBETTING(context,val){
+      context.commit('newPassBetting',val)
+  },
+  SET_BETTINGTYPE(context,val){
+      context.commit('newBettingType',val)
+  },
+  SET_LEAGUECHOOSE(context,val){
+      context.commit('newLeagueChoose',val)
+  },
+  SET_LEAGUEDATA(context,val){
+      context.commit('newLeagueData',val)
+  },
+  // ISBETTING(context,val){
+  //     context.commit('newIsBetting',val)
+  // },
+  DEL_TYPE(context,val){
+      context.commit('newDeleteType',val)
+  },
+  SET_TOKEN(context, val) {
+    context.commit('newToken', val)
+  },
+  // SET_LIMIT(context,val){
+  //     context.commit('newLimit',val)
+  // },
+  SET_PASSLIMIT(context,val){
+    context.commit('newPassLimit',val)
+  },
+  // SET_HEADTITLE(context,val){
+  //     context.commit('newHeadTitle',val)
+  // },
+  // SET_NOROLL(context,val){
+  //     context.commit('newNoRoll',val)
+  // },
+  GETGAMERATIO(context,val){
+      context.commit('newGameRatio',val)
+  },
+  SET_PLAYALIAS(context,val){
+    context.commit('newPlayAlias',val)
+  },
+}
+const store = new Vuex.Store({
+  state,
+  getters,
+  mutations,
+  actions
+});
+export default store;

BIN=BIN
.svn/pristine/6e/6e7c48cb3df0af8ec0a6e65718d631826e86fe46.svn-base


+ 314 - 0
.svn/pristine/6f/6f06b552a233c07e3819445465bd649392fe3ef6.svn-base

@@ -0,0 +1,314 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div v-if="obj.a">
+        <div class="tit">
+          <span>波胆</span>
+        </div>
+        <div class="playCode">
+          <div class="tBody flex">
+            <div style="width:calc(40% - 1px)">{{home_team}}</div>
+            <div style="width:20%;">和局</div>
+            <div style="width:calc(40% - 1px)">{{guest_team}}</div>
+          </div>
+          <div class="playOdds">
+            <div class="home flex">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] >0 && !item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" v-if="item.odds > 0" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" 
+                  @click="betMethod(index,item.id,home_team,'波胆')">{{item.odds}}</div>
+              </div>
+            </div>
+            <div class="and">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] == 0 && !item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'和局','波胆')">{{item.odds}}</div>
+              </div>
+            </div>
+            <div class="guest">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] < 0 && !item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,guest_team,'波胆')">{{item.odds}}</div>
+              </div>
+            </div>
+          </div>
+          <div class="tFooter"  v-for="(item,index) in data" v-if="item.odds_code =='bo' ">
+            <span>其它比分</span>
+           <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'','波胆')">{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+      <div v-if="obj.b">
+        <div class="tit">
+          <span>波胆-上半场</span>
+        </div>
+        <div class="playCode">
+          <div class="tBody flex">
+            <div style="width:calc(40% - 1px)">{{home_team}}</div>
+            <div style="width:20%;">和局</div>
+
+
+            <div style="width:calc(40% - 1px)">{{guest_team}}</div>
+          </div>
+          <div class="playOdds">
+            <div class="home row flex wrap topAlignment">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] >0 && item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,home_team,'波胆-上半场')">{{item.odds}}</div>
+              </div>
+              <div class="scoreBox rFlex" ></div>
+              <div class="scoreBox rFlex" ></div>
+            </div>
+            <div class="and">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] == 0 && item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'和局','波胆-上半场')">{{item.odds}}</div>
+              </div>
+            </div>
+            <div class="guest">
+              <div class="scoreBox rFlex"  v-for="(item,index) in data" v-if="item.odds_code[1]-item.odds_code[2] < 0 && item.odds_code.endsWith('_h')">
+                <div class="score">{{item.condition}}</div>
+                <div class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,guest_team,'波胆-上半场')">{{item.odds}}</div>
+              </div>
+              <div class="scoreBox rFlex" ></div>
+              <div class="scoreBox rFlex" ></div>
+            </div>
+          </div>
+          <div class="tFooter"  v-for="(item,index) in data" v-if="item.odds_code  == 'bo_h'">
+            <span>其它比分</span>
+           <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}" @click="betMethod(index,item.id,'','波胆-上半场')">{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>  
+  </div>
+</template>
+<script>
+export default {
+  data(){
+    return{
+      title:'B',
+      data:[],//数据源
+      isData:true,//
+      guest_team:'',//客队名
+      home_team:'',//主队名
+      obj:'',//
+      match_id:'',
+      limit:'',//投注数量
+      lg_id:'',
+    }
+  },
+  /***
+  * 方法
+  */
+  methods:{
+    //玩法分类
+    playGrouping(data){
+      let obj={};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e=>{
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="B" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;  
+            }
+          }
+        }
+         e.lg_id = this.lg_id;
+        if(e.odds_code.startsWith('b')){
+          obj.a= true
+        }
+        if(e.odds_code.endsWith('_h')){
+          obj.b= true;
+        }
+      })
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index,id,name,playName){
+      if(this.data[index].isTrue){
+        this.$set(this.data[index],'isTrue',false);
+      }else{
+        this.$set(this.data[index],'isTrue',true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName ={
+        home:this.home_team,
+        guest:this.guest_team
+      }
+      this.$public.publicBetMethod(this.data,this.title,id,index,betting,teamName,playName,name,this.match_id,ballId,this.limit,function(data,type){
+        if(type){
+          _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+        }
+        _this.$store.dispatch("SET_BETTING",[]);
+        _this.$store.dispatch("SET_BETTING",data);
+      })
+    }
+  },
+  /**
+  * 计算属性
+  */
+  computed: {
+    getGameRatio(){
+      return this.$store.getters.getGameRatio
+    },
+    //获取投注数据
+    getBetting(){
+      return this.$store.getters.getBetting
+    },
+    //获取投注数据数量
+    getLimit(){
+      return this.$store.getters.getLimit
+    }
+
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val){
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id
+      this.guest_team = val.guest_team;
+       this.home_team = val.home_team
+      val.oddsData.forEach(e => {
+        if(e[0].p_code == this.title){
+          this.data = e;
+          this.isData = true;
+          this.playGrouping(this.data );
+        }
+      });
+      //console.log(this.data);
+    },
+     //投注数据监听和处理
+    getBetting(val){
+      if(val.length > 0){
+        let id = this.$store.getters.getDeleteType;
+        for(let i= 0; i < val.length; i++ ){
+          if(val[i].title == this.title){
+            for(let j = 0;j < this.data.length ;j++){
+              if(this.data[j].id == id){
+                this.$set(this.data[j],'isTrue',false)
+                break;
+              }
+            }
+            break;
+          }
+        }
+        
+      }else{
+        for(let j = 0;j < this.data.length ;j++){
+          if(this.data[j].isTrue){
+            this.$set(this.data[j],'isTrue',false)
+          }
+        }
+      }
+    },
+     //投注数量
+    getLimit(val){
+      this.limit = val
+    }
+  },
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  /* justify-content: space-between; */
+  align-items: center;
+  flex-direction: row;
+  flex-wrap: wrap;
+}
+.rFlex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+}
+.tBody {
+  font-size: 0.14rem;
+  text-align: center;
+  background-color: #e5e5e5;
+  color: rgb(90, 90, 90);
+  height: 0.4rem;
+}
+.home,.guest {
+  width: 40%;
+  min-height: 0.4rem;
+}
+.scoreBox {
+  width: calc(50% - 1px);
+  height: 0.4rem;
+  padding: 0 .1rem;
+  font-size: .14rem;
+  border-right: 1px solid #d7d7d7;
+  border-bottom: 1px solid #d7d7d7;
+}
+.score {
+      color: #f76649;
+    font-weight: bold;
+
+  /* text-align: right; */
+}
+.scoreBox:hover,.tFooter:hover {
+  background: #fff5e9;
+}
+.playOdds {
+  display: flex;
+}
+.and {
+  width: 20%;
+  /* line-height: 0.4rem; */
+}
+.and .scoreBox {
+  width: calc(100% - 1px);
+}
+.guest{
+    display: flex;
+    align-items: center;
+    flex-direction: row;
+    flex-wrap: wrap;
+}
+.odds{
+   display: inline-block;
+    width: 0.48rem;
+    height: 0.3rem;
+    border: 0.01rem solid #ccc;
+    line-height: 0.3rem;
+    text-align: center;
+    border-radius: 0.05rem;
+    cursor: pointer;
+}
+.odds:hover{
+    background: #ddd;
+    color: #f76649;
+}
+.tFooter{
+  height: 0.4rem;
+  line-height: 0.4rem;
+  padding: 0 .24rem;
+  font-size: .14rem;
+  text-align: right;
+}
+
+</style>

+ 329 - 0
.svn/pristine/71/71ebbfbd01997020c1ab9d9a2846a9fa5428ee89.svn-base

@@ -0,0 +1,329 @@
+<template>
+  <div>
+    <div v-if="isData">
+      <div class="tit">
+        <span>首粒入球/最后一粒入球</span>
+      </div>
+      <div class="playCode">
+        <div class="tbody">
+          <div>最先进球</div>
+          <div>最后进球</div>
+          <div>没有进球</div>
+        </div>
+        <div class="info">
+          <div class="before">
+            <div
+              class="team"
+              v-for="(item,index) in data"
+              v-if="item.odds_code == 'flbfh'"
+            >
+              <span class="teamName">{{home_team}}</span>
+              <span
+                class="odds"
+                :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                @click="betMethod(index,item.id,home_team,'最先进球')"
+              >{{item.odds}}</span>
+            </div>
+            <div
+              class="team"
+              v-for="(item,index) in data"
+              v-if="item.odds_code == 'flbfg'"
+            >
+              <span class="teamName">{{guest_team}}</span>
+              <span
+                class="odds"
+                :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                @click="betMethod(index,item.id,guest_team,'最先进球')"
+              >{{item.odds}}</span>
+            </div>
+          </div>
+          <div class="after">
+            <div
+              class="team"
+              v-for="(item,index) in data"
+              v-if="item.odds_code == 'flblh'"
+            >
+              <span class="teamName">{{home_team}}</span>
+              <span
+                class="odds"
+                :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                @click="betMethod(index,item.id,home_team,'最后进球')"
+              >{{item.odds}}</span>
+            </div>
+            <div
+              class="team"
+              v-for="(item,index) in data"
+              v-if="item.odds_code == 'flblg'"
+            >
+              <span class="teamName">{{guest_team}}</span>
+              <span
+                class="odds"
+                :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                @click="betMethod(index,item.id,guest_team,'最后进球')"
+              >{{item.odds}}</span>
+            </div>
+          </div>
+          <div class="notHave row item-center">
+            <div
+              class="team"
+              v-for="(item,index) in data"
+              v-if="item.odds_code == 'flbn'"
+            >
+              <span class="teamName">没有进球</span>
+              <span
+                class="odds"
+                :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+                @click="betMethod(index,item.id,'','没有进球')"
+              >{{item.odds}}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "FLB",
+      data: [], //数据源
+      isData: "", //是否有数据
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      // obj:'',//
+      match_id: "",
+      limit: "", //投注数量
+      lg_id: ""
+    };
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      // let obj={};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="FLB" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        
+        e.lg_id = this.lg_id;
+        // if(e.odds_code.startsWith('last_number')){
+        // obj.a= true
+        // }else if(e.odds_code.startsWith('half')){
+        // obj.b= true;
+        // }
+      });
+      // this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      this.lg_id = val.lg_id;
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.isData = true;
+          this.playGrouping(this.data);
+        }
+      });
+      //console.log(this.data);
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  /* justify-content: space-between; */
+  align-items: center;
+  flex-direction: row;
+  flex-wrap: wrap;
+}
+.rFlex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode {
+  background: #fff;
+}
+.tbody {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  background-color: #e5e5e5;
+  color: rgb(90, 90, 90);
+  text-align: left;
+  display: flex;
+}
+.tbody div {
+  font-size: 0.14rem;
+  padding-left: 0.1rem;
+  flex: 1 1 0%;
+  display: flex;
+  /* justify-content: center; */
+}
+.info {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  height: 100%;
+}
+.info .before,
+.after,
+.notHave {
+  flex: 1 1 0%;
+  flex-direction: column;
+}
+.team {
+  display: flex;
+  justify-content: space-between;
+  flex: 1 1 0%;
+  height: 0.4rem;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  align-items: center;
+  border-bottom: 1px solid #d7d7d7;
+  line-height: 0.4rem;
+}
+.odds {
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.after {
+  border-left: 1px solid #d7d7d7;
+  border-right: 1px solid #d7d7d7;
+}
+.notHave {
+  height: 0.8rem;
+}
+
+.notHave .team {
+  border: none;
+  width: 100%;
+}
+.team:hover {
+  background: #fff5e9;
+}
+.notHave .team:hover {
+  background: #fff;
+}
+.after .team:nth-last-child(1),
+.before .team:nth-last-child(1) {
+  border-bottom: none;
+}
+</style>

+ 682 - 0
.svn/pristine/75/7564bddc50eab76525fef676ab909aa85241df05.svn-base

@@ -0,0 +1,682 @@
+<template>
+  <div>
+    <div class="serch row item-center allAlignment" v-if="noShow">
+      <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+        <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+      </div>
+      <div class="row item-center">
+        <div class="row item-center">
+          <input
+            class="fz14"
+            type="text"
+            placeholder="请输入联赛和球队名称"
+            v-model="serchTxt"
+            onkeyup="this.value=this.value.replace(/\s+/g,'')"
+            color="#AAA"
+          >
+          <div class="row center serch-img pointer hover" @click="Serch()">
+            <img src="@/assets/st-imges/serch.png" alt>
+          </div>
+        </div>
+        <div class="row item-center">
+          <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+          <div class="row center redraw pointer hover br05" @click="red()">
+            <img src="@/assets/st-imges/redraw.png" alt>
+          </div>
+        </div>
+      </div>
+    </div>
+
+  <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StStringScene')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+
+    <div class="singleAndDouble" v-for="(item,index) in data" :key="index">
+      <div class="singleAndDouble-header pdg20 row iten-center">
+        <div style="width:24%;font-size:.16rem;" class="row item-center">{{item.leagueName}}</div>
+        <div
+          style="width:70%;color:#999"
+          class="singleAndDouble-header-title row item-center average"
+        >
+          <p>主主</p>
+          <p>主和</p>
+          <p>主客</p>
+          <p>和主</p>
+          <p>和和</p>
+          <p>和客</p>
+          <p>客主</p>
+          <p>客和</p>
+          <p>客客</p>
+        </div>
+      </div>
+      <div
+        class="singleAndDouble-body row pdg20"
+        style="border-bottom:.01rem solid #ddd"
+        v-for="(items,i) in item.matchData"
+        :key="i"
+      >
+        <div style="width:24%;padding:.05rem 0" class="row item-center">
+          <div style="width:.85rem;text-align:center;margin-right:.1rem;line-height: .2rem;">
+            <p>{{items.match_date}}</p>
+            <p style="font-size:.12rem;color:#F76649">{{items.match_time}}</p>
+            <p>
+              <img style="width:.14rem;height:.14rem" src="@/assets/st-imges/shizhong.png">
+            </p>
+          </div>
+          <div>
+            <p>{{items.home_team}}</p>
+            <p style="margin-top:.1rem;">{{items.guest_team}}</p>
+          </div>
+        </div>
+        <div style="width:70%;position: relative;" class="row average">
+          <div
+            class="row item-center average"
+            v-for="(itemList,idx) in items.oddsData"
+            :key="itemList.id"
+          >
+            <p
+              class="singleAndDouble-list-btn home_home"
+              v-if="itemList.odds_code.endsWith('hfhh')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn home_dogfall"
+              v-if="itemList.odds_code.endsWith('hfhd')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn home_guest"
+              v-if="itemList.odds_code.endsWith('hfhg')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn dogfall_home"
+              v-if="itemList.odds_code.endsWith('hfdh')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn dogfall_dogfall"
+              v-if="itemList.odds_code.endsWith('hfdd')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn dogfall_guest"
+              v-if="itemList.odds_code.endsWith('hfdg')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn guest_home"
+              v-if="itemList.odds_code.endsWith('hfgh')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn guest_dogfall"
+              v-if="itemList.odds_code.endsWith('hfgd')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+            <p
+              class="singleAndDouble-list-btn guest_guest"
+              v-if="itemList.odds_code.endsWith('hfgg')"
+              @click="selection(index,i,idx,itemList.id,itemList.p_code,items.match_id,items.home_team,items.guest_team,'','半场/全场')"
+              :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+            >{{itemList.odds}}</p>
+          </div>
+        </div>
+        <div @click="promptInfo()" class="right-img">
+          <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+          <br>
+          <img src="@/assets/st-imges/TheScore.png">
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>    
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "Fullhalf",
+  components:{
+    noData
+  },  
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      data: [],
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode,
+      timers:true,
+      noData:false, // 无数据显示
+      limit : '',
+      passLimit:'',
+      dataList:[],
+      noShow : false,
+      lg_id:'',
+    };
+  },
+  mounted() {
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+    this.$store.dispatch("GETLOADING", true);
+    this.$store.dispatch("SET_BETTING",[]);
+    this.getAJAX(this.lg_id);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+        _this.getAJAX(_this.lg_id,_this.serchTxt);
+      }else{
+        clearInterval(timing)
+      }
+    })
+  },
+  beforeDestroy(){
+    this.timers = false
+  },
+  methods: {
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    getAJAX(lg_id,search) {
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        this.$store.dispatch("SET_BETTINGTYPE", 2);
+      }else{
+        this.$store.dispatch("SET_BETTINGTYPE", 1);
+      }
+      this.$http.get(this.$ports.home.gameList, {
+        type: this.$store.getters.getActivity,
+        p_code: this.$store.getters.getPaly_code,
+        game_code: this.$store.getters.getBallCode,
+        match_date:this.dateClick == 'all'? '': this.dateClick,
+        lg_id,                                        
+        search
+      }).then(res => {
+        if (res.data.status == 1 && res.data.data.length > 0) {
+          this.noData = false;
+          // //数据匹配判断是否上一次有数据
+          // if(this.dataList.length){
+          //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+          // }
+          this.data = res.data.data[0];
+          let betting = '';
+          // console.log(this.data,'res')
+          //临时储存数据
+          this.dataList = res.data.data[0];
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            betting = this.$store.getters.getPassBetting;
+          }else{
+            betting = this.$store.getters.getBetting;
+          }                       
+            this.dataGroup(this.data,betting)
+          this.$store.dispatch("GETLOADING", false);
+        }else{
+          this.noData = true;
+          this.data = [];
+        }
+        this.$store.dispatch("GETLOADING", false);  
+        this.noShow = true;
+      });
+    },
+    // 进入添加选中效果
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },    
+    // 修改样式
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      //调用投注公共方法
+        let _this = this;
+      let ballId = this.$store.getters.getBallCode;     
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      let acty =  this.$store.getters.getActivity;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }                  
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+          _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }            
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+      if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+      }else{
+        this.data[idx].matchData.forEach(val =>{
+          val.oddsData.forEach(item =>{
+            if(item.id == id){
+              this.$set(item,'isTrue',false)
+            }
+          })
+        })        
+      }
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+       this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);     //需要拷贝
+        this.getAJAX('',this.serchTxt)   
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+        if(this.serchTxt != ""){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = '';
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+     // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str){
+      this.dateClick = str;
+      this.data = '';
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+   created(){
+    this.fun_date();
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    }               
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }       
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },       
+  }
+};
+</script>
+<style scoped>
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.singleAndDouble-header {
+  min-height: 0.4rem;
+  background: #e5e5e5;
+}
+.singleAndDouble-body {
+  position: relative;
+  background: #fff;
+}
+.singleAndDouble-body:hover {
+  background: #fff5e9;
+}
+.singleAndDouble-list-btn {
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+  position: absolute;
+  bottom: 35%
+}
+.singleAndDouble-list-btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: 5%;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+* {
+  font-size: 0.14rem;
+}
+
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+.home_home{
+  left: 1.5%;
+}
+.home_dogfall{
+  left: 13%;
+}
+.home_guest{
+  left: 24%;
+}
+.dogfall_home{
+  left: 35.5%;
+}
+.dogfall_dogfall{
+  left: 46.5%;
+}
+.dogfall_guest{
+  left: 57.5%;
+}
+.guest_home{
+  left: 69%;
+}
+.guest_dogfall{
+  left: 80%;
+}
+.guest_guest{
+  left: 91%;
+}
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

+ 374 - 0
.svn/pristine/78/78a3157e707073f8bb3dcd4e6eefa0c7d2aa5567.svn-base

@@ -0,0 +1,374 @@
+<template>
+  <div>
+    <div v-if=" obj.a">
+      <!-- 主 -->
+      <div class="tit">
+        <span>球队进球大小:{{home_team}}</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'tbhb'">
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','球队进球大小:'+home_team)"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'tbhs'"
+          >
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','球队进球大小:'+home_team)"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+
+      <!-- 客 -->
+      <div class="tit">
+        <span>球队进球大小:{{guest_team}}</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'tbgb'">
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','球队进球大小:'+guest_team)"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'tbgs'"
+          >
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','球队进球大小:'+guest_team)"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if=" obj.b">
+      <!-- 主 -->
+      <div class="tit">
+        <span>球队进球大小:{{home_team}}-上半场</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'tbhb_h'">
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','球队进球大小:'+home_team+'-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'tbhs_h'"
+          >
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','球队进球大小:'+home_team+'-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+      <!-- 客 -->
+
+      <div class="tit">
+        <span>球队进球大小:{{guest_team}}-上半场</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in data" v-if="item.odds_code == 'tbgb_h'">
+            <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','球队进球大小:'+guest_team+'-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in data"
+            v-if="item.odds_code == 'tbgs_h'"
+          >
+           <span class="condition">{{item.condition}}</span>
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','球队进球大小:'+guest_team+'-上半场')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "TB",
+      andShow: "",
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "",
+      match_id: "",
+      data: [],
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /**
+   * 页面初始化完成挂载
+   */
+  mounted() {
+    this.andShow = this.$store.getters.getBallCode;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="TB" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        e.lg_id = this.lg_id;
+        if ( e.odds_code =="tbhb" || e.odds_code == "tbhs" || e.odds_code == "tbgb" || e.odds_code == "tbgs") {
+          obj.a = true;
+        } else if (e.odds_code.endsWith("_h")) {
+          obj.b = true;
+        } else if (e.odds_code.endsWith("_1")) {
+          obj.c = true;
+        } else if (e.odds_code.endsWith("_2")) {
+          obj.d = true;
+        } else if (e.odds_code.endsWith("_3")) {
+          obj.e = true;
+        } else if (e.odds_code.endsWith("_4")) {
+          obj.f = true;
+        }
+      });
+      this.obj = obj;
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+        this.$forceUpdate();
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+        this.$forceUpdate();
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.playGrouping(this.data);
+          //console.log('12',this.data);
+        }
+      });
+    },
+    //投注数据监听和处理
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode,
+.andCode {
+  color: rgb(0, 0, 0);
+  display: flex;
+}
+.playCode .home,
+.playCode .guest {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  width: 50%;
+  padding: 0 0.2rem;
+  font-size: 0.14rem;
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+}
+.playCode .home {
+  width: calc(50% - 1px);
+  padding-right: 0.1rem;
+  padding: 0 0.1rem;
+  font-size: 0.14rem;
+  border-right: 1px solid #e4e4e4;
+}
+.oddsBox {
+  margin-right: 0.1rem;
+}
+.odds {
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.home:hover,
+.guest:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.condition {
+  color: #f76649;
+  font-weight: bold;
+  margin-right: .1rem;
+}
+</style>

BIN=BIN
.svn/pristine/78/78c2088f46d81ac964cbb1383bf1d41e310130eb.svn-base


+ 317 - 0
.svn/pristine/7c/7c5debfec5e6317b34237194d5060361019faf88.svn-base

@@ -0,0 +1,317 @@
+<template>
+  <div>
+    <div v-if=" obj.a">
+      <div class="tit" >
+        <span>总局数:大/小</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in  data" v-if="item.odds_code == 'tnb'">
+            <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','总局数:大/小')" >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div class="oddsBox" v-for="(item,index) in  data"  v-if="item.odds_code == 'tns'" >
+            <span  class="odds"  :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','总局数:大/小')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div v-if=" obj.b">
+      <div class="tit" >
+        <span>第一盘总局数:大/小</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in  data" v-if="item.odds_code == 'tnb_1'">
+            <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','第一盘总局数:大/小')" >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in  data"
+            v-if="item.odds_code == 'tns_1'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','第一盘总局数:大/小')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div v-if=" obj.c">
+      <div class="tit" >
+        <span>第二盘总局数:大/小</span>
+      </div>
+      <div class="playCode">
+        <div class="home flex">
+          <span class="teamName">大</span>
+          <div v-for="(item,index) in  data" v-if="item.odds_code == 'tnb_2'">
+            <span class="odds" :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'大','第二盘总局数:大/小')" >{{item.odds}}</span>
+          </div>
+        </div>
+        <div class="guest flex">
+          <span class="teamName">小</span>
+          <div
+            class="oddsBox"
+            v-for="(item,index) in  data"
+            v-if="item.odds_code == 'tns_2'"
+          >
+            <span
+              class="odds"
+              :class="{chooseStyle:item.isTrue,rising:item.change == 'rising',falling:item.change == 'falling'}"
+              @click="betMethod(index,item.id,'小','第二盘总局数:大/小')"
+            >{{item.odds}}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      title: "TN",
+      andShow: "",
+      guest_team: "", //客队名
+      home_team: "", //主队名
+      obj: "",
+      match_id: "",
+      data: [],
+      limit: "", //投注数量
+      lg_id:'',
+    };
+  },
+  /**
+   * 页面初始化完成挂载
+   */
+  mounted() {
+    this.andShow = this.$store.getters.getBallCode;
+  },
+  /***
+   * 方法
+   */
+  methods: {
+    //玩法分类
+    playGrouping(data) {
+      let obj = {};
+      let betting = this.$store.getters.getBetting;
+      data.forEach(e => {
+         if(betting.length > 0){
+          for(let i= 0; i< betting.length; i++){
+            if(betting[i].title =="TN" && betting[i].data.length >0){
+              for(let j = 0 ; j < betting[i].data.length ; j++ ){
+                if(betting[i].data[j].id == e.id){
+                  this.$set(e,'isTrue',true);
+                  //betting[i].data.splice(j,1);
+                }
+              }
+              break;
+            }
+          }
+        }
+        //console.log(e.odds_code)
+        e.lg_id = this.lg_id;
+        if (e.odds_code == 'tnb'|| e.odds_code == 'tns') {
+          obj.a = true;
+        }else if (e.odds_code.endsWith("_1")) {
+          obj.b = true;
+        } else if (e.odds_code.endsWith("_2")) {
+          obj.c = true;
+        } 
+        //else if (e.odds_code.startsWith("two_two")) {
+        //   obj.d = true;
+        // } else if (e.odds_code.startsWith("three")) {
+        //   obj.e = true;
+        // } else if (e.odds_code.startsWith("four")) {
+        //   obj.f = true;
+        // }
+      });
+      this.obj = obj;
+     // console.log(this.obj);
+    },
+    /*---------------------------------- */
+    //玩法投注
+    betMethod(index, id, name, playName) {
+      if (this.data[index].isTrue) {
+        this.$set(this.data[index], "isTrue", false);
+        this.$forceUpdate();
+      } else {
+        this.$set(this.data[index], "isTrue", true);
+        this.$forceUpdate();
+      }
+      //调用投注公共方法
+      let betting = this.$store.getters.getBetting;
+      let _this = this;
+      let ballId = this.$store.getters.getBallCode;
+      let teamName = {
+        home: this.home_team,
+        guest: this.guest_team
+      };
+      this.$public.publicBetMethod(
+        this.data,
+        this.title,
+        id,
+        index,
+        betting,
+        teamName,
+        playName,
+        name,
+        this.match_id,
+        ballId,
+        this.limit,
+        function(data, type) {
+          if (type) {
+            _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 });
+          }
+          _this.$store.dispatch("SET_BETTING", []);
+          _this.$store.dispatch("SET_BETTING", data);
+        }
+      );
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getGameRatio() {
+      return this.$store.getters.getGameRatio;
+    },
+    //获取投注数据
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注数据数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getGameRatio(val) {
+      this.lg_id = val.lg_id
+      this.match_id = val.match_id;
+      this.guest_team = val.guest_team;
+      this.home_team = val.home_team;
+      val.oddsData.forEach(e => {
+        if (e[0].p_code == this.title) {
+          this.data = e;
+          this.playGrouping(this.data);
+          //console.log(this.data);
+        }
+      });
+    },
+    //投注数据监听和处理
+    getBetting(val) {
+      if (val.length > 0) {
+        let id = this.$store.getters.getDeleteType;
+        for (let i = 0; i < val.length; i++) {
+          if (val[i].title == this.title) {
+            for (let j = 0; j < this.data.length; j++) {
+              if (this.data[j].id == id) {
+                this.$set(this.data[j], "isTrue", false);
+                break;
+              }
+            }
+            break;
+          }
+        }
+      } else {
+        for (let j = 0; j < this.data.length; j++) {
+          if (this.data[j].isTrue) {
+            this.$set(this.data[j], "isTrue", false);
+          }
+        }
+      }
+    },
+    //投注数量
+    getLimit(val) {
+      this.limit = val;
+    }
+  }
+};
+</script>
+<style scoped>
+.flex {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.tit {
+  background: #cdcdcd;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  height: 0.4rem;
+  line-height: 0.4rem;
+  color: #333;
+}
+.playCode,
+.andCode {
+  color: rgb(0, 0, 0);
+  display: flex;
+}
+.playCode .home,
+.playCode .guest {
+  height: 0.4rem;
+  line-height: 0.4rem;
+  width: 50%;
+  font-size: 0.14rem;
+  background: #fff;
+  padding: 0 0 0 0.1rem;
+}
+.playCode .home {
+  width: calc(50% - 1px);
+  padding-right: 0.1rem;
+  font-size: 0.14rem;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+.oddsBox {
+  margin-right: 0.1rem;
+}
+.odds {
+  display: inline-block;
+  display: inline-block;
+  width: 0.48rem;
+  height: 0.3rem;
+  border: 0.01rem solid #ccc;
+  line-height: 0.3rem;
+  text-align: center;
+  border-radius: 0.05rem;
+  cursor: pointer;
+}
+.odds:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.guest {
+  padding-right: 0.1rem;
+}
+.home:hover,
+.guest:hover {
+  background: #fff5e9;
+}
+.draw {
+  width: 20%;
+  background: #fff;
+  padding: 0 0.1rem;
+  border-right: 1px solid #e4e4e4;
+}
+</style>

BIN=BIN
.svn/pristine/7e/7ecc90ce4bcb42658ab9da256e82bc7476bf0bd2.svn-base


+ 801 - 0
.svn/pristine/7f/7f4760119e8a4e79841e891bd4ddec28f13b37d4.svn-base

@@ -0,0 +1,801 @@
+<template>
+  <div>
+    <div>
+      <!-- 搜索框 -->
+      <div class="serch row item-center allAlignment" v-if="noShow">
+        <div class="row center all pointer hover br05 fz14" @click="elasticFrame()">
+          <span style="font-size:.14rem;color:#ccc;">选择联赛</span>
+        </div>
+        <div class="row item-center">
+          <div class="row item-center">
+            <input
+              class="fz14"
+              type="text"
+              placeholder="请输入联赛和球队名称"
+              v-model="serchTxt"
+              onkeyup="this.value=this.value.replace(/\s+/g,'')"
+              color="#AAA"
+            >
+            <div class="row center serch-img pointer hover" @click="Serch()">
+              <img src="@/assets/st-imges/serch.png" alt>
+            </div>
+          </div>
+          <div class="row item-center">
+            <div class="row center clear pointer hover br05 fz14" @click="clearSerchTxt()">清除</div>
+            <div class="row center redraw pointer hover br05" @click="red()">
+              <img src="@/assets/st-imges/redraw.png" alt>
+            </div>
+          </div>
+        </div>
+      </div>
+
+
+      <!-- 日期 -->
+      <div v-if="(this.$store.getters.getActivity == 'StMorningPlate'||this.$store.getters.getActivity == 'StMorningPlate')" class="date row item-center pdg20">
+        <nav class="row datebox scroll allAlignment">
+          <p @click="dateActive(item.id)" :class="dateClick == item.id?'dateShow':''" v-for="(item,index) in date" :key="index">{{item.title}}</p>
+        </nav>
+      </div>
+
+      <!-- 列表 -->
+      <div v-for="(item,index) in data" :key="index">
+        <!-- 联赛 -->
+        <div class="header pdg20 row item-center">{{item.leagueName}}</div>
+        <!-- 表格 -->
+        <div class="list" v-for="(e,i) in item.matchData" :key="e.id">
+          <div class="list-header row item-center pdg20">
+            <div class="list-header-time row allAlignment">
+              <div class="row item-center wrap">
+                <p style="width:100%">{{e.match_date}}</p>
+                <p style="color:rgb(247, 102, 73);width:100%">{{e.match_time}}</p>
+              </div>
+              <div
+                class="list-header-time-num triangle row center"
+                @click="getTournamentPlay(e.match_id)"
+              >{{e.tag}} ></div>
+            </div>
+            <div class="list-header-title row">
+              <div class="row item-center pdg20 average" style="min-height:.6rem">
+                <span>让分</span>
+                <span>大/小</span>
+              </div>
+              <div class="row center" style="min-height:.5rem;">球队大小</div>
+            </div>
+          </div>
+          <div class="list-body row pdg20" style="position: relative;">
+            <div class="list-body-name">
+              <p style="width:100%">{{e.home_team}}</p>
+              <p style="width:100%">{{e.guest_team}}</p>
+            </div>
+            <div class="list-body-center row" style="position: relative;">
+              <div class="row item-center" style="border-right:.01rem solid #ccc;">
+                
+                <div class="row average" style="position: relative;">
+                  <!-- 让球 -->
+                  <div class="column">
+                    <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id" v-if="itemList.odds_code == 'coh' || itemList.odds_code == 'cog'">
+                    <!-- 让球主队 -->
+                      <div v-if="itemList.odds_code == 'coh'" class="row item-center  rightAlignment"
+                        style="min-height:.4rem;"  >
+                        <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                        <div
+                          class="btn"
+                          @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'让球')"
+                          :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                        >{{itemList.odds}}</div>
+                      </div>
+                      <!-- 让球客队 -->
+                      <div
+                        v-if="itemList.odds_code == 'cog'"
+                        class="row item-center  guest rightAlignment"
+                        style="min-height:.4rem;"
+                      >
+                        <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                        <div
+                          class="btn"
+                          @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'让球')"
+                          :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                        >{{itemList.odds}}</div>
+                      </div>
+                    </div>
+                  </div>
+                  <!-- 大小 -->
+                  <div class="column">
+                    <div  v-for="(itemList,idx) in e.oddsData" :key="itemList.id" v-if="itemList.odds_code.startsWith('tn')">
+                      <div
+                        v-if="itemList.odds_code == 'tnb'"
+                        class="row item-center size rightAlignment"
+                        style="min-height:.4rem;"
+                      >
+                        <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                        <div
+                          class="btn"
+                          @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'大小')"
+                          :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                        >{{itemList.odds}}</div>
+                      </div>
+                      <div
+                        v-if="itemList.odds_code == 'tns'"
+                        class="row item-center size guest rightAlignment"
+                        style="min-height:.4rem;"
+                      >
+                        <div style="color:#f76649;margin-right:.1rem;">{{itemList.condition}}</div>
+                        <div
+                          class="btn"
+                          @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'大小')"
+                          :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                        >{{itemList.odds}}</div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+              <div class="row center">
+                <!--球队大小  -->
+                <div class="column item-center">
+                  <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id" v-if="itemList.odds_code == 'tbhb'||itemList.odds_code == 'tbgb' " >
+                    <div v-if="itemList.odds_code == 'tbhb'" class="row center size rightAlignment" style="min-height:.4rem;" >
+                      <div style="color:#f76649;margin-right:.1rem;">大{{itemList.condition}}</div>
+                      <div class="btn"
+                        @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'球队得分大小')"
+                        :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                      >{{itemList.odds}}</div>
+                    </div>
+                    <div v-if="itemList.odds_code == 'tbgb'" class="row center size guest rightAlignment"  style="min-height:.4rem;"  >
+                      <div style="color:#f76649;margin-right:.1rem;">大{{itemList.condition}}</div>
+                      <div class="btn"
+                        @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'球队得分大小')"
+                        :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                      >{{itemList.odds}}</div>
+                    </div>
+                  </div> 
+                </div>
+
+                <div class="column item-center">
+                  <div v-for="(itemList,idx) in e.oddsData" :key="itemList.id" v-if="itemList.odds_code == 'tbhs'||itemList.odds_code == 'tbgs' " >
+                    <div v-if="itemList.odds_code == 'tbhs'" class="row item-center size rightAlignment" style="min-height:.4rem;" >
+                      <div style="color:#f76649;margin-right:.1rem;">小{{itemList.condition}}</div>
+                      <div class="btn"
+                        @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.home_team,'球队得分大小')"
+                        :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                      >{{itemList.odds}}</div>
+                    </div>
+                    <div v-if="itemList.odds_code == 'tbgs'" class="row item-center size guest rightAlignment" style="min-height:.4rem;"  >
+                      <div style="color:#f76649;margin-right:.1rem;">小{{itemList.condition}}</div>
+                      <div class="btn"
+                        @click="selection(index,i,idx,itemList.id,itemList.p_code,itemList.match_id,e.home_team,e.guest_team,e.guest_team,'球队得分大小')"
+                        :class="{col:itemList.isTrue,rising:itemList.change == 'rising',falling:itemList.change == 'falling'}"
+                      >{{itemList.odds}}</div>
+                    </div>
+                  </div>  
+                </div> 
+
+              </div>
+            </div>
+            <div @click="promptInfo()" class="right-img">
+              <img style="margin-bottom:.1rem" src="@/assets/st-imges/TheGame.png">
+              <br>
+              <img src="@/assets/st-imges/TheScore.png">
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="noData">
+      <noData/>
+    </div>     
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+import noData from '@/components/noData';
+export default {
+  name: "basketballTheBallSize",
+  components:{
+    noData
+  },      
+  data() {
+    return {
+      date: [{id:'all',title:'全部'}],//日期
+      dateClick:'all',//激活的日期
+      serchTxt: "",
+      // pCode: this.$store.getters.getPaly_code, //传入接口的值
+      activity: this.$store.getters.getActivity,
+      // ballCode: this.$store.getters.getBallCode, //传入接口的值
+      data: [], //数据
+      noData : false, // 暂无数据显示
+      limit : '',
+      passLimit:'',
+      timers:true,//轮询开关
+      dataList:[],
+      noShow : true,
+      lg_id:'',//联赛 
+    };
+  },
+  methods: {
+    
+    /*******************直播比赛数据提示*******************/
+    promptInfo(){
+      this.$dialog.alert({mes: '此功能占未开放'});
+    },
+
+    getAJAX(lg_id,search) {
+      this.$http
+        .get(this.$ports.home.gameList, {
+          type: this.$store.getters.getActivity,
+          p_code: this.$store.getters.getPaly_code,
+          game_code: this.$store.getters.getBallCode,
+          match_date:this.dateClick == 'all'? '': this.dateClick,
+          lg_id,                                        //需要拷贝
+          search
+        })
+        .then(res => {
+            this.data = ''
+          if (res.data.status == 1 && res.data.data.length >0 ) {
+            this.noData = false;
+            //数据匹配判断是否上一次有数据
+            // if(this.dataList.length){
+            //   this.$public.oddsDataUpdate(res.data.data[0],this.dataList,1)
+            // }
+            this.data = res.data.data[0];
+            let betting = '';
+            // console.log(this.data,'res')
+            //临时储存数据
+            this.dataList = res.data.data[0];
+            if(this.$store.getters.getActivity == 'StStringScene'){
+              betting = this.$store.getters.getPassBetting;
+            }else{
+              betting = this.$store.getters.getBetting;
+            }                 
+            this.dataGroup(this.data,betting)
+            this.$store.dispatch("GETLOADING", false); 
+          }else{
+            this.noData = true;
+          }
+          this.noShow = true;
+          this.$store.dispatch("GETLOADING", false); 
+        });
+    },
+    dataGroup(data,betting){
+      if(betting != null && betting.length > 0){
+        // console.log('bet',betting)
+        data.forEach(e =>{
+          e.matchData.forEach(k =>{
+            k.oddsData.forEach(item =>{
+              betting.forEach(i =>{
+                i.data.forEach(j =>{
+                  if(j.id == item.id){
+                    item.isTrue = true
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+    },     
+    getTournamentPlay(match_id) {
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("SET_CONTROLROUTING", 10010);
+    },
+    // 选中
+    // 选中
+    selection(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName) {
+      // console.log(idx,i,index,id,p_code,match_id,homeName,guestName,name,playName)
+      //调用投注公共方法
+      let _this = this;
+      let acty =  this.$store.getters.getActivity;
+      let ballId = this.$store.getters.getBallCode;      
+      let teamName = {
+        home : homeName,
+        guest : guestName
+      }
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        let betting = this.$store.getters.getPassBetting;
+        if(betting == null){
+            betting = [];
+          }                  
+        this.$public.strandPublicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,playName,name,ballId,homeName,guestName,this.passLimit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }          
+          _this.$store.dispatch("SET_PASSBETTING",[]);
+            _this.$store.dispatch("SET_PASSBETTING",data);
+          })          
+        }else{
+          let betting = this.$store.getters.getBetting;
+          this.$public.publicBetting(this.data,p_code,id,idx,i,index,betting,acty,match_id,teamName,playName,name,ballId,this.limit,function(data,type){
+            if(type){
+              _this.$dialog.toast({ mes: "亲,超出表格上限啦。", timeout: 2000 }); 
+            }           
+            _this.$store.dispatch("SET_BETTING",[]);
+            _this.$store.dispatch("SET_BETTING",data);
+          })
+      }
+      // 串场为单串
+      if(this.limit < 10){
+        this.data[idx].matchData.forEach((val,i) =>{
+          val.oddsData.forEach(item =>{
+          if(this.$store.getters.getActivity == 'StStringScene'){
+            if(this.passLimit < 10){
+              if(val.match_id == match_id){
+                // 当isTrue值为true时,点击时置为false
+                if(item.id == id){
+                  // console.log(item.isTrue)
+                  if(item.isTrue == true){
+                    this.$forceUpdate();
+                      item.isTrue = false
+                  }else if(item.isTrue = false){
+                    this.$forceUpdate();
+                    item.isTrue = true
+                  }else{
+                    this.$forceUpdate();
+                    this.$set(item, "isTrue", item.isTrue ? false : true);
+                  }
+                }else{
+                if(item.isTrue == true){
+                    item.isTrue = false;
+                  }
+                }
+              }
+            }else{
+              if(item.id == id){
+                this.$forceUpdate();
+                this.$set(item,'isTrue',false)
+              }
+            }
+          }else{
+            if(item.id == id){
+              this.$forceUpdate();
+              this.$set(item, "isTrue", item.isTrue ? false : true);
+            }
+          }
+          })
+        })
+      }else{
+          this.data[idx].matchData.forEach(val =>{
+            val.oddsData.forEach(item =>{
+              if(item.id == id){
+                this.$set(item,'isTrue',false)
+              }
+            })
+          })        
+      }
+    },
+    //搜索按钮被点击
+    Serch() {
+      if (this.serchTxt === "") {
+        this.$dialog.toast({ mes: "请输入您想要搜索的内容。", timeout: 2000 });
+        return false;
+      } else {
+        this.data = [];
+        this.$store.dispatch("SET_LEAGUEDATA",[]);     //需要拷贝
+        this.getAJAX('',this.serchTxt)                 //需要拷贝
+      }
+    },
+    // 删除搜索框内容
+    clearSerchTxt() {
+       if(this.serchTxt != ""){
+        this.data = [];
+        this.serchTxt = "";
+        this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+        this.getAJAX();
+      }
+    },
+    // 刷新
+    red() {
+      this.serchTxt = "";
+      this.lg_id ="";
+      this.$store.dispatch("SET_LEAGUEDATA",[]);  //需要拷贝
+      if (this.serchTxt.length > 0) {
+        this.Serch();
+      } else {
+        this.data = ''
+        this.getAJAX();
+      }
+    },
+    //跳转到联赛选择页
+    elasticFrame() {
+      this.$store.dispatch("SET_CONTROLROUTING", 10015);
+    },
+        // 日期计算
+    fun_date() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(date.getFullYear(),date.getMonth() + 1,0).getDate();
+      for (let i = 1; i < 7; i++) {
+        let years = date.getFullYear();
+        let month = date.getMonth() + 1;
+        let day =
+          date.getDate() + i < 10
+            ? "0" + (date.getDate() + i)
+            : date.getDate() + i;
+        if (date.getDate() + i > lastMonth) {
+          MonthNum++;
+          month = date.getMonth() + 2;
+          day = "0" + MonthNum;
+        }
+        let time = {};
+        time.id = years + "-" + month + "-" + day;
+        time.title =years+' - '+month + " - " + day;
+        this.date.push(time);
+      }
+    },
+    dateActive(str){
+      this.dateClick = str;
+      this.data = '';
+      this.getAJAX(this.lg_id,this.serchTxt);
+    },
+  },
+    created(){
+    this.fun_date();
+  },
+  mounted() {
+      //获取选择的联赛id
+    if(this.$store.getters.getLeagueData.length >0 ){
+      if(this.$store.getters.getLeagueData.length == 1){
+        this.lg_id = this.$store.getters.getLeagueData[0]
+      }else{
+        this.lg_id = this.$store.getters.getLeagueData.join(',');
+      }
+    }
+                        //需要拷贝
+
+    this.$store.dispatch("GETLOADING", true);
+    this.$store.dispatch("SET_BETTING",[]);    
+    this.getAJAX(this.lg_id);
+    let _this = this;
+    this.$public.ajaxTimerFun((timing)=>{
+      if(_this.timers){
+         _this.getAJAX(_this.lg_id,_this.serchTxt);
+      }else{
+        clearInterval(timing)
+      }
+    })
+
+  },
+  beforeDestroy(){
+    this.timers = false;
+  },
+  computed: {
+    getActy() {
+      return this.$store.getters.getActivity;
+
+    },
+    // getPaly_code() {
+    //   return this.$store.getters.getPaly_code;
+    // },
+    // getBallId() {
+    //   return this.$store.getters.getBallCode;
+    // },
+    // 获取投注数量
+    getLimit() {
+      return this.$store.getters.getLimit;
+    },
+    getPassLimit(){
+      return this.$store.getters.getPassLimit;
+    },    
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getActy(val) {
+      this.activity = val;
+      //  this.data = '';
+      this.getAJAX();
+      this.$store.dispatch("SET_BETTING",[]);//设置默认值
+      if(val != 'StStringScene'){
+        this.$store.dispatch("SET_PASSBETTING",[]);
+      }       
+    },
+    // getPaly_code(val) {
+    //   this.pCode = val;
+    //   this.getAJAX();
+    // },
+    // getBallId(val) {
+    //   this.ballCode = val;
+    //   this.getAJAX();
+    // },
+     getLimit(val){
+       this.limit = val;
+       if(this.$store.getters.getActivity == 'StStringScene'){
+       }else{
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+       }
+    }, 
+    getPassLimit(val){
+      this.passLimit = val;
+      if(this.$store.getters.getActivity == 'StStringScene'){
+        if(val == 0){
+          this.data.forEach(e =>{
+            e.matchData.forEach(k =>{
+              k.oddsData.forEach(item =>{
+                if(item.isTrue){
+                  this.$forceUpdate();
+                  item.isTrue = false;
+                }
+              })
+            })
+          })
+        }
+      }
+    },    
+    getDeleteType(val){
+      let jumpOut = false;
+      for(var i = 0; i < this.data.length; i++){
+        for(var k = 0; k < this.data[i].matchData.length; k++){
+          for(var j = 0; j < this.data[i].matchData[k].oddsData.length;j++){
+              if(this.data[i].matchData[k].oddsData[j].id == val){
+                this.$forceUpdate();
+                this.data[i].matchData[k].oddsData[j].isTrue = false;
+                jumpOut = true;
+                break;
+              }
+          }
+          if(jumpOut == true){
+            break;
+          }
+        }
+          if(jumpOut == true){
+            break;
+          }        
+      }
+    },  
+  }  
+};
+</script>
+
+<style scoped>
+.serch {
+  width: 100%;
+  height: 0.5rem;
+  background: #aaa;
+  padding: 0 0.2rem;
+}
+input {
+  border: none;
+  background: #efefef;
+  padding-left: 0.2rem;
+  width: 4.6rem;
+  height: 0.3rem;
+  border-radius: 0.05rem 0 0 0.05rem;
+}
+.serch-img {
+  width: 0.5rem;
+  height: 0.3rem;
+  background: #666;
+  border-radius: 0 0.05rem 0.05rem 0;
+  margin-right: 0.3rem;
+}
+.all {
+  width: 1.2rem;
+  height: 0.3rem;
+  background: #666;
+  color: #333;
+}
+.clear {
+  width: 0.6rem;
+  height: 0.3rem;
+  background: #666;
+  color: #ccc;
+  margin-right: 0.1rem;
+}
+.redraw {
+  width: 0.3rem;
+  height: 0.3rem;
+  background: #666;
+}
+img {
+  width: 0.2rem;
+  height: 0.2rem;
+}
+.br05 {
+  border-radius: 0.05rem;
+}
+.fz14 {
+  font-size: 0.14rem;
+}
+.hover:hover {
+  background: #bbb;
+  color: #fff!important;
+}
+.hover:hover span{
+  color: #fff!important;
+}
+.pointer {
+  cursor: pointer;
+}
+
+.pdg20 {
+  padding: 0 0.2rem;
+}
+.header {
+  width: 100%;
+  min-height: 0.4rem;
+  background: #ccc;
+  font-size: 0.16rem;
+  color: #333;
+}
+.list {
+  width: 100%;
+}
+.list-header {
+  height: 0.5rem;
+  background: #e5e5e5;
+  font-size: 0.14rem;
+}
+.list-header-time {
+  width: 26%;
+}
+.list-header-time-num {
+  width: 0.5rem;
+  min-height: 0.5rem;
+  background: #bbb;
+  color: #fff;
+  cursor: pointer;
+}
+.list-header-time-num::after {
+  border-width: 0.05rem;
+  border-left-color: #e5e5e5;
+  border-top-color: #e5e5e5;
+  left: 40%;
+  bottom: -0.05rem;
+  -webkit-transform: rotate(45deg);
+  transform: rotate(45deg);
+}
+.list-header-title {
+  width: 70%;
+  min-height: 0.5rem;
+}
+.list-header-title > div {
+  width: 50%;
+  height: 100%;
+  color: #aaa;
+}
+.list-body {
+  font-size: 0.14rem;
+  min-height: 0.8rem;
+  background: #fcfcfc;
+}
+.list-body:hover {
+  background: #fff5e9;
+}
+.list-body-name {
+  width: 26%;
+  line-height: 0.4rem;
+}
+.list-body-center {
+  width: 70%;
+}
+.list-body-center > div {
+  width: 50%;
+  min-height: 0.5rem;
+}
+.list-body-center > div > div {
+  width: 100%;
+  height: 100%;
+}
+.list-body-center > div > div span {
+  display: block;
+  line-height: 0.4rem;
+  text-align: right;
+  color: #f76649;
+}
+.btn {
+  width: 0.48rem !important;
+  height: 0.3rem;
+  text-align: center;
+  line-height: 0.3rem;
+  background: #fcfcfc;
+  border-radius: 0.05rem;
+  border: 0.01rem solid #eee;
+  cursor: pointer;
+}
+.btn:hover {
+  background: #ddd;
+  color: #f76649;
+}
+.list-header-title p {
+  width: 0.82rem;
+  text-align: center;
+  min-height: 0.5rem;
+  line-height: 0.5rem;
+}
+/* .theball {
+  position: absolute;
+  left: 10%;
+  top: 2%;
+  width: 1rem;
+} */
+/* .size {
+  position: absolute;
+  left: 54%;
+  top: 2%;
+  width: 1rem;
+} */
+.guest {
+  top: 50%;
+}
+.ballbig {
+  /* position: absolute; */
+  left: 10%;
+  top: 8%;
+  width: 1rem;
+}
+.ballsmall {
+  /* position: absolute; */
+  left: 60%;
+  top: 8%;
+  width: 1rem;
+}
+.right-img {
+  width: 0.15rem;
+  position: absolute;
+  right: 0.3rem;
+  bottom: 0.1rem;
+}
+.right-img img {
+  width: 0.22rem;
+  height: 0.2rem;
+}
+.col {
+  border-radius: 2px;
+  background: #f76649;
+  color: #fff;
+}
+
+
+
+
+
+
+
+
+/* 日期样式 */
+.date {
+  height: 0.4rem;
+  background: #898989;
+  font-size: .16rem;
+  color: #fff;
+  font-weight: bold;
+}
+.date > p {
+  width: 0.26rem;
+  height: 0.26rem;
+  background: #bbb;
+  border-radius: 0.05rem;
+}
+.date div {
+  width: 100%;
+  height: 100%;
+}
+.datebox {
+  overflow-x: auto;
+  overflow-y: hidden;
+  width: 100%;
+  height: 0.4rem;
+}
+.datebox p {
+  text-align: center;
+  line-height: .4rem;
+  padding: 0 .05rem;
+  cursor: pointer;
+  font-size: .16rem;
+}
+.dateShow{
+  color: #f76649;
+}
+</style>

+ 3 - 0
.svn/pristine/7f/7f7d74492e716cd9da03971ee4318dbfea46631c.svn-base

@@ -0,0 +1,3 @@
+export default function _isNativeFunction(fn) {
+  return Function.toString.call(fn).indexOf("[native code]") !== -1;
+}

BIN=BIN
.svn/pristine/80/806c10147e95431f62ae322c5ce1879445fec16a.svn-base


+ 368 - 0
.svn/pristine/80/809348d8ac04dd02e7dacbcd0eaa96b99b6855ce.svn-base

@@ -0,0 +1,368 @@
+<template>
+  <div>
+    <div class="box" v-if="noList">
+      <div class="liveTable scroll" v-if="show">
+        <div>
+          <yd-accordion>
+            <yd-accordion-item title="体育分类">
+              <div slot="icon">{{time}}</div>
+              <div class="title">
+                <div
+                  v-for="item in titleList"
+                  class="row center"
+                  :class="ballId == item.id?'titleActive':''"
+                  @click.stop="titleActive(item.id)"
+                  :key="item.id"
+                >{{item.title}}</div>
+              </div>
+            </yd-accordion-item>
+          </yd-accordion>
+          <div class="list">
+            <div>
+              <div v-for="item in data">
+                <div v-if="item.doing == 1" class="start row item-center" @click="listClick(item.id)">
+                  <div class="row item-center">
+                    <img style="margin-right:.15rem;" src="@/assets/st-imges/TV.png">
+                    <img
+                      style="height:.18rem;width:.18rem;"
+                      :src="item.game_type == 'zq'?img.zq:item.game_type == 'lq'?img.lq:item.game_type == 'bq'?img.bq:img.wq"
+                    >
+                  </div>
+                  <div style="padding-left:.1rem;" class="row item-center"><p style="width:.8rem;text-align: center;margin-right:.1rem;">{{item.start_time}}</p> <p style="width:2rem;"> {{item.host_team}} vs {{item.guest_team}}</p></div>
+                </div>
+              </div>
+              <div v-for="item in data" >
+                <div class="noStart row item-center" v-if="item.doing == 0" >
+                  <div class="row item-center">
+                    <p style="font-size:.12rem;margin-right:.1rem;width:.8rem;text-align: center;">{{item.start_time}}</p>
+                    <img
+                      style="height:.18rem;width:.18rem;"
+                      :src="item.game_type == 'zq'?img.zqa:item.game_type == 'lq'?img.lqa:item.game_type == 'bq'?img.bqa:img.wqa"
+                    >
+                  </div>
+                  <div style="padding-left:.1rem;">{{item.host_team}} vs {{item.guest_team}}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div v-if="!show" class="btn row center" @click="btnClick">返回列表</div>
+      <div v-if="!show">
+        <video
+          loop
+          :paused="playVideo"
+          autoplay
+          muted
+          class="mainright-video"
+          src="@/assets/st-imges/radio.mp4"
+        ></video>
+        <div
+          style="width:100%;height:100%;  position: absolute;left: 0;top: 0;"
+          class="row center play-hover"
+        >
+          <div class="playAndPause-box pointer row center">
+            <div class="playAndPause row center" @click="videoClick()">
+              <img style="width:.4rem;height:.4rem;" src="@/assets/st-imges/play.png">
+            </div>
+          </div>
+        </div>
+        <!-- 直播组件底部按钮 -->
+        <!-- <div>
+          <ul class="elvesfigureBox row allAlignment item-center">
+            <li class="elvesfigure" style="background-position:-.1rem -.05rem"></li>
+            <li class="elvesfigure" style="background-position:-.7rem -.05rem"></li>
+            <li class="elvesfigure" style="background-position:-1.35rem -.05rem"></li>
+            <li class="elvesfigure" style="background-position:-2rem -.05rem"></li>
+            <li class="elvesfigure" style="background-position:-2.7rem -.05rem"></li>
+            <li class="elvesfigure" style="background-position:-3.4rem -.05rem"></li>
+          </ul>
+        </div>-->
+      </div>
+    </div>
+    <div class="nolist row center" v-if="!noList">当前球类没有正在直播的赛事</div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "liveTable",
+  data() {
+    return {
+      img: {
+        zq: require("@/assets/st-imges/tvzq.png"),
+        zqa: require("@/assets/st-imges/tvzqa.png"),
+        lq: require("@/assets/st-imges/tvlq.png"),
+        lqa: require("@/assets/st-imges/tvlqa.png"),
+        bq: require("@/assets/st-imges/tvbq.png"),
+        bqa: require("@/assets/st-imges/tvbqa.png"),
+        wq: require("@/assets/st-imges/tvwq.png"),
+        wqa: require("@/assets/st-imges/tvwqa.png")
+      },
+      data: "", //列表数据
+      titleList: [
+        { title: "所有体育", id: "all" },
+        { title: "篮球", id: "lq" },
+        { title: "足球", id: "zq" },
+        { title: "网球", id: "wq" },
+        { title: "棒球", id: "bq" }
+      ], //球类区分
+      ballId: "all", //激活的球类代码
+      show: true, //组件开关
+      activeEvent: "", //被选中的赛事
+      playVideo: true, //视频播放器开关
+      timers: true, //轮询条件
+      noList: true, //有无列表数据
+      time:'',
+    };
+  },
+  methods: {
+    // 获取列表数据
+    getAjax() {
+      this.$http
+        .get(this.$ports.tvlive.tvlist, {
+          game_code: this.ballId
+        })
+        .then(res => {
+          if (res.data.data.length > 0) {
+            this.data = res.data.data;
+            // console.log(this.data,'我的数据')
+          } else {
+            this.noList = false;
+          }
+          // console.log(res, "我的");
+        });
+    },
+    // 球类标题
+    titleActive(id) {
+      this.ballId = id;
+      this.getAjax();
+    },
+    //选择赛事调用
+    listClick(str) {
+      this.activeEvent = str;
+      this.show = false;
+    },
+    //视频播放器开关
+    videoClick() {
+      this.playVideo = !this.playVideo;
+      //console.log( this.playVideo)
+    },
+    // 返回列表开关被点击
+    btnClick() {
+      this.show = true;
+      this.getAjax();
+    },
+    // 获取今日日期
+    getDate(){
+      let newdate = new Date();
+      let year = newdate.getFullYear();
+      let month = newdate.getMonth() + 1;
+      let date = newdate.getDate();
+      this.time = `${year} - ${month} - ${date}`;
+
+    },
+  },
+  // 加载组件时
+  created(){
+    // 初始化时间
+    this.getDate()
+  },
+  // 组件渲染时
+  mounted() {
+    // 获取直播赛事列表数据
+    this.getAjax();
+    let _this = this;
+    this.$public.ajaxTimerFun(timing => {
+      if (_this.timers) {
+        _this.getAjax();
+      } else {
+        clearInterval(timing);
+      }
+    },1000*180);
+  },
+  //组件卸载时 
+  beforeDestroy() {
+    // 关闭轮询
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.liveTable {
+  width: 100%;
+  height: 3rem;
+  position: relative;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+img {
+  width: 0.22rem;
+  height: 0.18rem;
+}
+div /deep/ .yd-accordion-head {
+  height: 0.4rem;
+  background: #888;
+}
+div /deep/ .yd-accordion-head::after {
+  display: none;
+}
+div /deep/ .yd-accordion-title {
+  font-size: 0.12rem;
+  color: #fff;
+}
+div /deep/ .yd-accordion-head-content {
+  display: flex;
+  justify-content: space-between;
+  color: #fff;
+  font-size: 0.14rem;
+}
+div /deep/ .yd-accordion-head-arrow::after {
+  display: inline-block;
+  border: none;
+  width: 0.4rem;
+  height: 0.3rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-content {
+  width: 1rem;
+  height: 1.5rem;
+  position: absolute;
+  right: 0;
+}
+.title {
+  width: 1rem;
+  font-size: 0.14rem;
+  color: #ddd;
+  background: #666;
+  border-left: 0.01rem solid #707070;
+  border-right: 0.01rem solid #707070;
+  border-bottom: 0.01rem solid #707070;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 8;
+}
+.titleActive {
+  background: #555;
+}
+.title div {
+  height: 0.3rem;
+  border-top: 0.01rem solid #707070;
+}
+.list {
+  min-height: 3rem;
+  background: #777;
+  /* position: relative;
+  top: 0;
+  left: 0; */
+  width: 100%;
+  padding: 0.15rem 0.2rem;
+}
+.start {
+  min-height: 0.3rem;
+  color: #fff;
+  font-size: 0.12rem;
+  margin: .1rem 0;
+}
+.noStart {
+  min-height: 0.3rem;
+  font-size: 0.12rem;
+  color: #ccc;
+  margin-top: 0.1rem;
+}
+.scroll::-webkit-scrollbar {
+  width: 0;
+}
+.mainright-video {
+  width: 100%;
+  height: 100%;
+}
+.play-hover:hover {
+  background: rgba(106, 107, 107, 0.425);
+}
+.play-hover:hover .playAndPause-box {
+  display: block;
+}
+.playAndPause-box {
+  width: 0.78rem;
+  height: 0.78rem;
+  animation: playAndPause 1s infinite;
+  border-radius: 50%;
+  display: none;
+}
+.playAndPause {
+  background: #fff;
+  width: 0.64rem;
+  height: 0.64rem;
+  border-radius: 50%;
+  margin: 0.07rem auto;
+}
+
+@keyframes playAndPause {
+  25% {
+    background: rgba(255, 255, 255, 0.2);
+  }
+  35% {
+    background: rgba(255, 255, 255, 0.25);
+  }
+  50% {
+    background: rgba(255, 255, 255, 0.3);
+  }
+  65% {
+    background: rgba(255, 255, 255, 0.35);
+  }
+  75% {
+    background: rgba(255, 255, 255, 0.4);
+  }
+  85% {
+    background: rgba(255, 255, 255, 0.35);
+  }
+  100% {
+    background: rgba(255, 255, 255, 0.3);
+  }
+}
+/* .elvesfigureBox {
+  width: 100%;
+  height: 0.4rem;
+  background-color: #2d2d2d;
+  padding: 0 0.17rem;
+} */
+/* .elvesfigureBox li {
+  width: 0.3rem;
+  height: 0.3rem;
+  cursor: pointer;
+} */
+/* .elvesfigure {
+  background: url("../assets/st-imges/elvesfigure.png") no-repeat;
+  background-size: 3.9rem 0.4rem;
+} */
+.box {
+  position: relative;
+}
+.btn {
+  position: absolute;
+  right: 5%;
+  top: 2%;
+  width: 0.7rem;
+  border-radius: 0.05rem;
+  height: 0.3rem;
+  background: rgba(233, 233, 233, 0.3);
+  z-index: 8;
+  cursor: pointer;
+  font-size: 0.12rem;
+  color: #ddd;
+}
+.btn:hover {
+  background: #898989;
+  color: #fff;
+}
+.nolist {
+  height: 2.6rem;
+  background: #666;
+  color: #fff;
+  font-size: 0.16rem;
+}
+</style>

BIN=BIN
.svn/pristine/81/8111a2354cb196102493367a326bd85f02491fab.svn-base


+ 116 - 0
.svn/pristine/83/8313a9243a57739d06b871fc4c99ccfd655a1311.svn-base

@@ -0,0 +1,116 @@
+<template>
+    <div class="baseball">
+        <div v-if="baseball.length == 0" class="no-message">暂无数据</div>
+        <div v-for="(item, index) of baseball" :key="index">
+            <el-table  :data="item.match_data">
+                <el-table-column type="expand" style="border: none">
+                    <template slot-scope="props">
+                        <div v-if="props.row.play_data.length > 2">
+                        <div style="padding: 8px 8px;margin: 0 auto">
+                            <div style="font-weight:bold;">结果:</div>
+                            <div style="margin-left: 40px;line-height: 28px;" v-for="(res, index) of props.row.play_data" :key="index">
+                                <div v-if="index < props.row.play_data.length -2">{{res.play_name}}:{{res.play_result}}</div>
+                            </div>
+                        </div>
+                        </div>
+                        <div v-else style="text-align:center">暂无数据</div>
+                    </template>
+                </el-table-column>
+                <el-table-column :label="item.league_name" width="400" align="center" style="border-left:none">
+                    <template slot-scope="scope">
+                        {{scope.row.match_time}}
+                        <span style="width: 400px;font-weight:bold">
+                            {{scope.row.home_team}}
+                            <span style="color: #ff9200">VS</span>
+                            {{scope.row.guest_team}}
+                        </span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="第1局至第五局" align="center" prop="score_result"></el-table-column>
+                <el-table-column label="全场" align="center" prop="score_result"></el-table-column>
+            </el-table>
+        </div>
+    </div>
+</template>
+<script>
+    export default {
+        name: 'baseball',
+        props: {
+            baseballData: {
+                type: Array,
+                default: ()=>[]
+            },
+            loading: {
+                type: Boolean,
+                default: false
+            }
+        },
+        data() {
+            return {
+                baseball: [],
+                bsLoading: false,
+                show: true,
+                test: '1'
+            }
+        },
+        watch: {
+            baseballData: {
+                handler(val) {
+                    if(val) {
+                        this.baseball = JSON.parse(JSON.stringify(val))
+                    }
+                },
+                deep: true
+            },
+            loading(val) {
+                this.bsLoading = val
+            }
+        },
+        methods: {
+            // 默认展开
+            initShow() {
+                for(let item of this.baseball) {
+                    item.show = !item.show;
+                }
+            },
+            setShow(val, index) {
+                val.show = !val.show
+            },
+        }
+    }
+</script>
+<style>
+    .baseball .el-table {
+        border-top: none;
+    }
+    .baseball .el-table th {
+        padding: 8px 0;
+        background-color: #373737;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 700;
+    }
+    .baseball .sec-table .el-table th {
+        padding: 4px 0;
+        background-color: #e3e3e3;
+        color: #ffffff;
+        font-size: 14px;
+        font-weight: 500;
+    }
+    
+    .baseball .el-table td {
+        padding: 6px 0;
+    }
+    .baseball .el-table--border th {
+        border: none;
+    }
+</style>
+<style scoped>
+    .no-message {
+        text-align: center;
+        margin-top: 50px;
+        padding-right: 100px;
+        font-size: 16px;
+        font-weight: 700;
+    }
+</style>

+ 41 - 0
.svn/pristine/84/84109f3cc3e430b9525b7d2fa04bda5abcf4428d.svn-base

@@ -0,0 +1,41 @@
+'use strict'
+require('./check-versions')()
+
+process.env.NODE_ENV = 'production'
+
+const ora = require('ora')
+const rm = require('rimraf')
+const path = require('path')
+const chalk = require('chalk')
+const webpack = require('webpack')
+const config = require('../config')
+const webpackConfig = require('./webpack.prod.conf')
+
+const spinner = ora('building for production...')
+spinner.start()
+
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
+  if (err) throw err
+  webpack(webpackConfig, (err, stats) => {
+    spinner.stop()
+    if (err) throw err
+    process.stdout.write(stats.toString({
+      colors: true,
+      modules: false,
+      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
+      chunks: false,
+      chunkModules: false
+    }) + '\n\n')
+
+    if (stats.hasErrors()) {
+      console.log(chalk.red('  Build failed with errors.\n'))
+      process.exit(1)
+    }
+
+    console.log(chalk.cyan('  Build complete.\n'))
+    console.log(chalk.yellow(
+      '  Tip: built files are meant to be served over an HTTP server.\n' +
+      '  Opening index.html over file:// won\'t work.\n'
+    ))
+  })
+})

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio