Harley 6 年之前
当前提交
6b6a539a4f
共有 100 个文件被更改,包括 33594 次插入0 次删除
  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. 255 0
      .svn/pristine/01/010e223a09f83010543a5b43888e32c1d1c6a8c5.svn-base
  8. 二进制
      .svn/pristine/01/01a1a53c1f7bf9a409c0f3a8cbf35a0358245e86.svn-base
  9. 247 0
      .svn/pristine/03/03f924e2e8164d92ae0d9641608bd4deaeaa8f99.svn-base
  10. 128 0
      .svn/pristine/04/041e6873810de6858a75d0c31481c469a1fc3dd7.svn-base
  11. 379 0
      .svn/pristine/05/053ab12e1f4c0f489bc1d5685ccf79cfb9e072d6.svn-base
  12. 二进制
      .svn/pristine/05/05d72fa59cec5fb58cce270195bf2c6381e38b48.svn-base
  13. 二进制
      .svn/pristine/06/065698be43541d0b30a08085516e38da263d1cbb.svn-base
  14. 二进制
      .svn/pristine/06/06d2dc7424cd66d35212f5a8396a4a5d41d31835.svn-base
  15. 二进制
      .svn/pristine/06/06e496c347e1df2c2955921b60d53240460ffff9.svn-base
  16. 490 0
      .svn/pristine/07/076a747ea2844942b833b4042b5d84417b1566ce.svn-base
  17. 81 0
      .svn/pristine/08/080583349d382e1947c1f2cd4a3e2453ae8182b1.svn-base
  18. 二进制
      .svn/pristine/08/0868d35dd2646fa865cccdd30c36f6cba6a27c85.svn-base
  19. 二进制
      .svn/pristine/08/0893a6dce41d985200bf2a6358a9b5e4e3a1e344.svn-base
  20. 124 0
      .svn/pristine/08/0898a05e1b9db5d7e905c8b00b100beed1a154e8.svn-base
  21. 308 0
      .svn/pristine/08/08a90ec5bf9007045cd7317227aa0f92674f41df.svn-base
  22. 28 0
      .svn/pristine/09/094634b1e984b0ef90ea3ec23f9a80ead6114102.svn-base
  23. 二进制
      .svn/pristine/0a/0ab58e45ff9eaf0a84ecd46aa53ef4ca3fc20d86.svn-base
  24. 124 0
      .svn/pristine/0b/0ba9a5958252ceb0c3bbaf0663724e1781609c6a.svn-base
  25. 108 0
      .svn/pristine/0d/0d1aa1540926746793588bf211dbfb58cfab3505.svn-base
  26. 二进制
      .svn/pristine/0d/0d735618ae4c5f957ff454c80333dc02ee559e0b.svn-base
  27. 1250 0
      .svn/pristine/0d/0db62afc7eb7f8ba142c9faaa7366f33618b522b.svn-base
  28. 二进制
      .svn/pristine/0f/0f551c47321547e4bb452855f5ea08e78fd16168.svn-base
  29. 148 0
      .svn/pristine/10/103d5cfd70e0ad4ac5b8b918b863a9824da21939.svn-base
  30. 418 0
      .svn/pristine/11/1159eb42f79cb432c8713af15146f47857091217.svn-base
  31. 2 0
      .svn/pristine/12/12a7646e951c3b62328da371085dfabaf926aab2.svn-base
  32. 248 0
      .svn/pristine/12/12b49f3f733c26dc35662743344c5a58cafe88d1.svn-base
  33. 276 0
      .svn/pristine/12/12c21f24d580d1b942c167a592f4ba34f4d60081.svn-base
  34. 367 0
      .svn/pristine/13/13a14d8ef8a853cbd8b9683ee2d4aa117c51f3d2.svn-base
  35. 407 0
      .svn/pristine/14/1466489239e47478d41968033cf63053ad8e47f7.svn-base
  36. 0 0
      .svn/pristine/14/148623a78e392fc5614d3b29a2713e3054bcc26c.svn-base
  37. 919 0
      .svn/pristine/15/1507612659b0bfd86ee60e8aba7c4d773b3c4ec0.svn-base
  38. 二进制
      .svn/pristine/15/156f147886f97897089decf79963671140386fc3.svn-base
  39. 241 0
      .svn/pristine/16/16031d3e18005026fadcd29f37aa6a78ff956140.svn-base
  40. 10426 0
      .svn/pristine/16/1619d070478060ab7ee359383e5b39910d57bdd3.svn-base
  41. 二进制
      .svn/pristine/16/1678c8aed64e5372b7a918f7c5b961ad1bdc1f2a.svn-base
  42. 1174 0
      .svn/pristine/16/168d3617ac9bad39c99ae18a44828c999f3bfcd4.svn-base
  43. 91 0
      .svn/pristine/17/171fddba7701e865484bd441ebb1f886934422fe.svn-base
  44. 二进制
      .svn/pristine/17/176c1d8c5d4015f0bbc5a6a7969d4b7d85697c0f.svn-base
  45. 0 0
      .svn/pristine/17/178addcbae0671f951efb318d375426bcb435b03.svn-base
  46. 146 0
      .svn/pristine/18/1888545e713e0775c550df61699fbc4910d84b8f.svn-base
  47. 454 0
      .svn/pristine/19/194b80bcb6eef628fe47bb29768f022fbacafe6f.svn-base
  48. 951 0
      .svn/pristine/19/19abb016200acd7c2c798b5f037ca918f0bd42ba.svn-base
  49. 1006 0
      .svn/pristine/1a/1a4032782b31ca15642059a9309a0e8e9c6e205c.svn-base
  50. 二进制
      .svn/pristine/1a/1a6ace377133f14a2b2cd7c48f10369a6bc54b2e.svn-base
  51. 102 0
      .svn/pristine/1a/1acee2bf067f9a9ce1747be97615a39b52012ee6.svn-base
  52. 684 0
      .svn/pristine/1a/1ae687aef986c675ea97c0ab57f990c41bbc79b4.svn-base
  53. 13 0
      .svn/pristine/1c/1c44d115e76735a2eaf310e25c0882a0c443fe3e.svn-base
  54. 53 0
      .svn/pristine/1e/1e6a7707b7c8f1567501dd782839639eb5cdb179.svn-base
  55. 1049 0
      .svn/pristine/1f/1f5d7b7dc2b2db751becb2ce951e01003561fdad.svn-base
  56. 1692 0
      .svn/pristine/1f/1f8086c2b55129d17017b848750d02c05a59a05e.svn-base
  57. 340 0
      .svn/pristine/1f/1f8df11d41431cbbefd3bbbeb176851bad743480.svn-base
  58. 180 0
      .svn/pristine/20/20d923fcdbefcbf0908509e8aed4b9a37772a578.svn-base
  59. 663 0
      .svn/pristine/21/21557a17175cd6e47c8635ae87110b228e290944.svn-base
  60. 1161 0
      .svn/pristine/21/219a756da159241c471b3365482e7abe33da29c8.svn-base
  61. 0 0
      .svn/pristine/21/21eac2679471d058b1440c5e486df00423e090d3.svn-base
  62. 二进制
      .svn/pristine/22/225038b3263f1f8caccb15bf7ddf5d5e32245b74.svn-base
  63. 二进制
      .svn/pristine/22/22b70d8cef87d09133bb905a1016b88a46b7c8f8.svn-base
  64. 28 0
      .svn/pristine/23/235d0e089b31a0632f50cc5db233793093253bf8.svn-base
  65. 54 0
      .svn/pristine/23/23665af6f1b5aabbcff80f6f9bc5e29490a0d3e7.svn-base
  66. 0 0
      .svn/pristine/23/23c50241d8d139d47e5772878958b4fcfd06fd9b.svn-base
  67. 297 0
      .svn/pristine/27/27222f5bf9838d0a4a3a450d18e26281a48a6e51.svn-base
  68. 237 0
      .svn/pristine/28/2831582e073859f319d5b475457bd638af6a5c6b.svn-base
  69. 二进制
      .svn/pristine/29/29773ba816457eab251845337f3a41ad644f9b76.svn-base
  70. 317 0
      .svn/pristine/29/29d2601ae53a1d77c5fbabd9556919123a8395af.svn-base
  71. 459 0
      .svn/pristine/2a/2aafe88bafa095529523d7cf469e3a87b2d51c62.svn-base
  72. 303 0
      .svn/pristine/2b/2b1978bc45dae9b732d3b73acb1a3fd62c43a03b.svn-base
  73. 195 0
      .svn/pristine/2b/2bddf946c2d65ce451c9de02bd627c366771cdc4.svn-base
  74. 155 0
      .svn/pristine/2d/2d612debc4d4ce6794f8d0722ad369d8e0ba0255.svn-base
  75. 二进制
      .svn/pristine/2d/2dcdc1e9f37035620ac2c15d27c2b159677ac0cd.svn-base
  76. 318 0
      .svn/pristine/2e/2ed56652c67a71068715717d892bf72e1d4abb1d.svn-base
  77. 0 0
      .svn/pristine/30/303d5ef569a17453517caf38a0777849caf6bed1.svn-base
  78. 184 0
      .svn/pristine/30/3065b165607dd9db9dce18068b4cf6de04b815d7.svn-base
  79. 二进制
      .svn/pristine/32/3236ae92cefa3886e45fc3dc90a731d0bf670a4d.svn-base
  80. 392 0
      .svn/pristine/32/32cc9a269db1268818fc48b895254b0cde489cf5.svn-base
  81. 二进制
      .svn/pristine/33/334361ee217698b84b627dd6d80f9b00d47467d9.svn-base
  82. 172 0
      .svn/pristine/33/33cda26e95b1b84d217a174a3c8b0bac7339377c.svn-base
  83. 257 0
      .svn/pristine/37/37333fdc97ab59b8cac78c2532e14ae1344e1be4.svn-base
  84. 二进制
      .svn/pristine/37/377f9216765e9452dc326526422fd1101e4b0ad8.svn-base
  85. 491 0
      .svn/pristine/38/38189d24cc434bf3734a8dfbe1328d0a48b92104.svn-base
  86. 二进制
      .svn/pristine/38/38b4cffea1e46c8da4d52ec4c1d90832f178e2ea.svn-base
  87. 0 0
      .svn/pristine/39/39990220065179d7080692a029ab463966a8cdd4.svn-base
  88. 92 0
      .svn/pristine/39/39b75414392636ca52552e64c3e873230fc67497.svn-base
  89. 453 0
      .svn/pristine/3a/3a2b9980940bf504be669e867d5178f4a29a1a38.svn-base
  90. 356 0
      .svn/pristine/3b/3b0f7bb85e3979db46962d6f8ce511a6e92b926b.svn-base
  91. 二进制
      .svn/pristine/3b/3b460202f6417fc33a79c8884d40e55ec862db7e.svn-base
  92. 二进制
      .svn/pristine/3c/3c0ac63c301631eadfd594f98aba8dcadbaaec78.svn-base
  93. 29 0
      .svn/pristine/3c/3c45d3ede86f6e1af0a5cbca1b067198ddb3bffd.svn-base
  94. 364 0
      .svn/pristine/3d/3d3420c3d54bda040ae721b79d7370fc259cea9f.svn-base
  95. 136 0
      .svn/pristine/3d/3d665138abba0f96d070b8887949382a210983da.svn-base
  96. 257 0
      .svn/pristine/3d/3da0c44a90467f48caa176bde08336dc022c9918.svn-base
  97. 二进制
      .svn/pristine/3e/3e42ec49e909fa37e76c61972a8a712eef44f298.svn-base
  98. 49 0
      .svn/pristine/3f/3f5e1aef2f6b8cc3f9d750ed56feae725022f59b.svn-base
  99. 383 0
      .svn/pristine/3f/3f6db2eda6a8e490d375267fb36362a1f6df6f3a.svn-base
  100. 836 0
      .svn/pristine/3f/3fa2069afa34dec6d7804f20fca2f6dec02384a4.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

+ 255 - 0
.svn/pristine/01/010e223a09f83010543a5b43888e32c1d1c6a8c5.svn-base

@@ -0,0 +1,255 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 17:04:04
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <!-- 主队 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="total_title" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+              <div v-if="item.odds_code.endsWith('tnb_h')"  v-for=" (item,index) in data" class="row allAlignment center ">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+
+            <div class="column  width-box ">
+              <div v-if="item.odds_code.endsWith('tns_h')"  v-for=" (item,index) in data"   class="row allAlignment center ">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "TN",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      total_title:'总得分:大/小-上半场',
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: this.title,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name:this.total_title,
+        lg_id: this.lg_id,
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //子玩法分类
+    removeHeavy(data){
+        this.data = [];
+        data.forEach(e=>{
+           let index = e.odds_code.lastIndexOf('_');
+           let str=  e.odds_code.slice(0,index)  
+          // console.log(e.odds_code);
+          if("tnb_h" == str){
+            this.isDisplay = true;  
+            this.data.push(e)
+          }
+        })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+            this.removeHeavy(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

二进制
.svn/pristine/01/01a1a53c1f7bf9a409c0f3a8cbf35a0358245e86.svn-base


+ 247 - 0
.svn/pristine/03/03f924e2e8164d92ae0d9641608bd4deaeaa8f99.svn-base

@@ -0,0 +1,247 @@
+import { type } from "os";
+
+export default {
+ 
+  /**
+   * 获取缓存sessionStorage数据
+   * @param {*str} key 
+   * @param {* obj||str} val 
+   */
+  setCache: function (key, val) {
+    if (val instanceof Array) {
+      let str = JSON.stringify(val);
+      window.sessionStorage.setItem(key, str);
+    } else {
+      window.sessionStorage.setItem(key, val);
+    }
+
+  },
+
+  /**
+   * 获取缓存sessionStorage数据
+   * @param {*str} key 
+   */
+  getCache: function (key) {
+    return window.sessionStorage.getItem(key);
+  },
+  
+  /**
+   * 获取缓存localStorage数据
+   * @param {*str} key 
+   * @param {* obj||str} val 
+   */
+  setItem: function (key,val) {
+    if (val instanceof Array || val instanceof Object) {
+      let str = JSON.stringify(val);
+      localStorage.setItem(key, str);
+    } else {
+      localStorage.setItem(key, val);
+    }
+    //return localStorage.setItem(key,val);
+  },
+  
+  /**
+   * 获取缓存localStorage数据
+   * @param {*str} key 
+   */
+  getItem: function (key) {
+    return localStorage.getItem(key);
+  },
+
+  /**
+   * 比赛时间计时器
+   * @param {分钟} f 
+   * @param {秒} s 
+   * @param {回掉方法} fun 
+   */
+  timer: function (f, s, fun) {
+    let timing = setInterval(function () {
+      s++;
+      if (s < 10) {
+        s = "0" + s;
+      }
+      if (s == 60) {
+        f++;
+        s = '00';
+      }
+      fun && fun(f, s);
+    }, 1000)
+  },
+
+  /**
+   * 玩法投注公共方法
+   * @param {obj} betting 玩法组件的选择赔率id数组
+   * @param {*obj} bettingInfo 当前玩法赔率及相关数据
+   * @param {*obj} data当前玩法赔率数据信息列表
+   * @param {*obj} getBettingList Vuex里面的投注列表
+   * @param {*str} name 当前组的玩法的title
+   * @param {*int} dataNum 判断当前组件是否已有投注
+   * @param {*int} limit 投注数量
+   * @param {*function} callback 修改当前样式回调方法
+   * @param {*function} fun 更新Vuex投注列表
+   */
+  bettingFunction: function (betting, bettingInfo, data, getBettingList, name, dataNum,limit,callback, fun) {
+    let isTrue = true;
+    let isAlert = false;
+    betting.forEach((e, index) => {
+      //删除投注数据
+      if (bettingInfo.id == e.id) {
+        data.forEach((res) => {
+          if (bettingInfo.id == res.id) {
+            callback && callback(res, false);
+            betting.splice(index, 1);
+          }
+        })
+        isTrue = false;
+      }
+    });
+    //添加投注数据
+    if (isTrue) {
+      if(limit >= 10 ) {
+        isAlert =true;
+      }else{
+        betting.push(bettingInfo);
+        betting.forEach((e) => {
+          if (bettingInfo.id == e.id) {
+            data.forEach(res => {
+              if (bettingInfo.id == res.id) {
+                callback && callback(res, true);
+              }
+            })
+          }
+        })
+      }   
+    }
+
+    //初始化添加投注数据
+    let obj = {
+      title: name,
+      data: betting
+    };
+    let array = [];
+    if (dataNum != 10000) {
+      getBettingList[dataNum] = obj;
+    } else {
+      if (getBettingList) {
+        if (getBettingList.length > 0) {
+          getBettingList.push(obj);
+        }
+      } else {
+        array.push(obj);
+      }
+    }
+    fun && fun(getBettingList, array,isAlert);
+  },
+
+
+  /**
+   * 获取vuex相对应玩法index下标和投注数据集合
+   * @param {组件类所有玩法数据集合} data 
+   * @param {组件里玩法别名} title 
+   * @param {从Vuex里面的投注列表的匹配对应的投注数据集合} betting 
+   * @param {相对应玩法index下标} dataNum 
+   */
+  getBettingId(data, title, callback) {
+    if (data) {
+      data.forEach((res, index) => {
+        if (res.title == title) {
+          callback && callback(res.data, index);
+        }
+      });
+    }
+  },
+  /**
+   * 接口轮询定时器
+   * @param {function} callback 定时器回调方法
+   */
+  ajaxTimerFun(callback,timers=2000){
+    //到计时
+    let  timing = setInterval(function(){
+      callback && callback(timing)
+    },timers);
+    // },5000);
+  },
+
+
+  /**
+   * 复合算法
+   * @param {int} data  第几场赛事
+   * @param {array} dataList 投注赛事列表
+   */
+  betPlay(data,dataList){
+    let addSum =0;
+    let listLenth = dataList.length;
+    //调用赔率算法
+    addSum = this.oddsAlgorithm(data,dataList);
+
+    //组合算法分母
+    function denominator (num){
+      let group =1;
+      for(let i = listLenth ; i >(listLenth -num);i--){
+        let add = group*i
+        group  =  add;
+      }
+      return group;
+    }
+    //组合算法分子
+    function molecule (num){
+      let son =1;
+      for(let i = num ; i >1;i--){
+        let add = son*i;
+        son  =  add;
+      }
+      return son;
+    }
+    //组合算法
+    function algorithm(data) {
+      return {
+        title:`${data}串1`,//algorithm
+        index:denominator(data)/molecule(data),
+        odds:addSum,
+      };
+    }    
+    return algorithm(data);
+  },
+
+  /**
+   * 赔率算法
+   * @param {int} index  第几次赛事
+   * @param {[]} dataList 赛事列表
+   */
+  oddsAlgorithm(index,dataList){
+    let oddsArray=[];
+    let num = index;
+    let list = [];
+    dataList.forEach((res)=>{
+      oddsArray.push(res.odds);
+    })
+    for (let i=0;i<Math.pow(2, oddsArray.length);i++){
+      let a = 0;
+      let b = "";
+      for (let j=0;j<oddsArray.length;j++){
+        if (i>>j&1){
+          a++;
+          b += oddsArray[j]+',';
+        }
+      }
+      if(a==num){
+        let array = b.split(',');
+        array.pop();
+        list.push(array);
+      }
+    }
+    let odds =0;
+    list.forEach(e=>{
+      let h =1;
+      e.forEach(res=>{
+        h = h*(1+res*1)
+      })
+      odds +=h*1-1;
+    })
+    return odds;
+  }
+  
+
+}
+
+

+ 128 - 0
.svn/pristine/04/041e6873810de6858a75d0c31481c469a1fc3dd7.svn-base

@@ -0,0 +1,128 @@
+<template>
+	<div style="height:100vh">
+		<yd-navbar title="个人资料" color="#fff">
+			<router-link :to="{path: '/PersonalCenter' }" slot="left">
+				<yd-navbar-back-icon style="color: #fff"></yd-navbar-back-icon>
+			</router-link>
+		</yd-navbar>
+		<div class="tips">
+			请完善您的个人资料,以便尽情享受我们网站提供的所有服务。
+		</div>
+		<div class="form">
+			<ul>
+				<li>
+					<label for="user">账号</label>
+					<input class="disabled" id="user" type="text" placeholder="账号不能修改" disabled="disabled">
+				</li>
+
+				<li>
+					<label for="password">密码</label>
+					<input class="disabled" id="password" type="text" placeholder="****" disabled="disabled">
+				</li>
+
+				<li>
+					<label for="photo">头像</label>
+					<input type="file" placeholder="上传头像">
+				</li>
+
+				<li>
+					<label for="name">昵称</label>
+					<input class="nodisabled" id="name" type="text" placeholder="请输入昵称">
+				</li>
+
+				<li>
+					<label for="qq">QQ号</label>
+					<input class="nodisabled" id="qq" type="text" placeholder="请输入QQ号">
+				</li>
+
+				<li>
+					<label for="phone">手机号</label>
+					<input class="nodisabled" id="phone" type="text" placeholder="请输入手机号">
+				</li>
+
+				<li>
+					<label for="email">邮箱地址</label>
+					<input class="nodisabled" id="email" type="text" placeholder="请输入邮箱">
+				</li>
+
+			</ul>
+
+		</div>
+
+		<yd-tabbar slot="tabbar">
+			<yd-button size="large" type="primary">完成注册</yd-button>
+		</yd-tabbar>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: "PersonInfo"
+	}
+</script>
+
+<style scoped>
+	.yd-btn-block {
+		margin-top: 0.6rem;
+	}
+	.yd-navbar {
+		background-image: linear-gradient(0deg, #565656 0%, #999999 100%);
+	}
+	.tips {
+		text-align: center;
+		color: #FF6600;
+		height:0.8rem;
+		line-height: 0.8rem;
+		background:rgba(255,235,196,1);
+	}
+	.form {
+		background:#E4E4E4;
+		border-radius:10px;
+		padding:0.3rem;
+	}
+	.form ul {
+		padding:0.3rem;
+		background:#EFEFEF;
+		border-radius:10px;
+	}
+	.form ul li {
+		height: 0.8rem;
+		line-height: 0.8rem;
+		margin-bottom: 0.2rem;
+	}
+	.form ul li label {
+		width: 1.2rem;
+		display: inline-block;
+	}
+	.form ul li input.disabled {
+		width: 70%;
+		height: 0.8rem;
+		line-height: 0.8rem;
+		border:none;
+		outline:none;
+		background:rgba(228,228,228,1);
+		border:1px solid rgba(228,228,228,1);
+		padding-left: 0.2rem;
+	}
+	.form ul li input.nodisabled {
+		width: 70%;
+		height: 0.8rem;
+		line-height: 0.8rem;
+		border:none;
+		outline:none;
+		background:#fff;
+		border:1px solid rgba(228,228,228,1);
+		padding-left: 0.2rem;
+	}
+
+	.yd-tabbar {
+		margin: 0 auto;
+		width: 80%;
+		background-color: transparent !important;
+	}
+	.yd-btn-block {
+		margin-top: 0;
+		border-radius: 10px;
+		background:linear-gradient(0deg,rgba(90,90,90,1) 0%,rgba(138,138,138,1) 100%);
+	}
+</style>

+ 379 - 0
.svn/pristine/05/053ab12e1f4c0f489bc1d5685ccf79cfb9e072d6.svn-base

@@ -0,0 +1,379 @@
+<template>
+  <div>
+    <!-- //v-for="(item,index) in data" -->
+    <div v-if="isDisplay">
+      <yd-accordion>
+        <yd-accordion-item title="波胆" open>
+          <div>
+            <div class="rulesName row average">
+              <div class="row item-center">{{home_team}}</div>
+              <div class="row item-center">和局</div>
+              <div class="row item-center">{{guest_team}}</div>
+            </div>
+            <div class="row grids average">
+              <div class="column">
+                <div class="gridsDiv row center" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('bodanhome')" >
+                  <div  v-if="item.odds >0"  class="column average minGrid" :class=" {trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"@click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆',item.condition)" >
+                    <span style="color:#f76649 ">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div class="column middle">
+                <div class="gridsDiv row center" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('bodandogfall')" >
+                  <div v-if="item.odds >0" class="column average minGrid" :class="{trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"  @click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆',item.condition)" >
+                    <span style="color:#f76649 ">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div class="column">
+                <div class="gridsDiv row center"  v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('bodanguest')" >
+                  <div v-if="item.odds >0" class="column average minGrid" :class="{trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}" @click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆',item.condition)" >
+                    <span style="color:#f76649 ">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+
+                </div>
+              </div>
+            </div>
+            <div style="background:#f8f8f8;">
+              <div class="row rightAlignment center"  style="height: 0.88rem;" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('bodanother')">
+                <span>其他比分:</span>
+                <div v-if="item.odds >0" class="minGrid minGridAll"  :class=" item.isTrue ? 'trueSelected' :''"  @click="btnChoose(item.id,'其他比分',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆',item.condition)" >
+                  {{item.odds}}
+                </div>
+                <div v-else  class="minGrid minGridAll">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+
+      <yd-accordion>
+        <yd-accordion-item title="波胆-上半场" open>
+          <div>
+            <div class="rulesName row average">
+              <div class="row item-center">{{home_team}}</div>
+              <div class="row item-center">和局</div>
+              <div class="row item-center">{{guest_team}}</div>
+            </div>
+            <div class="row grids average">
+              <div class="column">
+                <div class="gridsDiv row center" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('halfbodanhome')" >
+                  <div v-if="item.odds >0" class="column average minGrid" :class="{trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}" @click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆-上半场',item.condition)">
+                    <span style="color:#f76649 ">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div class="column middle">
+                <div class="gridsDiv row center" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('halfbodandogfall')" >
+                  <div v-if="item.odds >0" class="column average minGrid" :class="{trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} " @click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆-上半场',item.condition)">
+                    <span style="color:#f76649">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div class="column">
+                <div class="gridsDiv row center" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('halfbodanguest')">
+                  <div  v-if="item.odds >0" class="column average minGrid" :class="{trueSelected:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}" @click="btnChoose(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆-上半场',item.condition)" >
+                    <span style="color:#f76649">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="minGrid column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div style="background:#f8f8f8;">
+              <div class="row rightAlignment center" style="height: 0.88rem;" v-for="(item,index) in data " :key="item.id" v-if="item.odds_code.startsWith('halfbodanother')" >
+                <span>其他比分:</span>
+                <div v-if="item.odds >0" class="minGrid minGridAll"  :class="item.isTrue ? 'trueSelected' :'' "   @click="btnChoose(item.id,'其他比分',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'波胆-上半场',item.condition)"
+                >{{item.odds}}</div>
+                <div v-else  class="minGrid minGridAll">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+import "../css/index.css";
+import Vue from "vue";
+import { Accordion, AccordionItem } from "vue-ydui/dist/lib.rem/accordion";
+Vue.component(Accordion.name, Accordion);
+Vue.component(AccordionItem.name, AccordionItem);
+export default {
+  name: "WaveBladder",
+  data() {
+    return {
+      title: "bodan",
+      home_team: "",
+      guest_team: "",
+      isDisplay: false,
+      data: [],
+      match_id:'',
+      lg_id:'',
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    /*---------------------------------------------------- */
+    //玩法投注
+    btnChoose: function(id,name,odds,odds_only,p_code,match_id,odds_code,play_name,condition='',bettingTime='') {
+        //console.log('我需要的',this.data)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team:this.home_team,
+        guest_team:this.guest_team,
+        name:'',
+        odds,
+        condition,
+        odds_code,
+        score:this.score,
+        bettingTime,
+        odds_only,
+        odds_id:id,
+        lg_id:this.lg_id,
+        play_name,
+         ballId:this.$store.getters.getBallId,
+        p_code,
+        match_id,
+      }
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+         this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+            if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+
+    //数据排序处理
+    dataSorting(data){
+      
+      let arr = [],home = [],goust = [],other = [];
+      data.forEach((res, i) => {
+        if (res.odds_code.startsWith("bodanguest") == true || res.odds_code.startsWith("halfbodanguest") == true) {
+          goust.push(res);
+          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];
+            }
+          });
+        } else if (res.odds_code.startsWith("bodanhome") == true || res.odds_code.startsWith("halfbodanhome") == true ) {
+          home.push(res);
+          // 主队排序
+          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];
+            }
+          });
+        } else if (res.odds_code.startsWith("bodandogfall") == true || res.odds_code.startsWith("halfbodandogfall") == true) {
+          arr.push(res);
+          // 和排序
+          arr.sort((a, z) => {
+            let str1 = a.condition.split("-");
+            let str2 = z.condition.split("-");
+            return str1[0] - str2[0];
+          });
+        } else if (res.odds_code.startsWith("bodanother") == true || res.odds_code.startsWith("halfbodanother") == true) {
+          other.push(res);
+        }
+      });
+          
+
+      this.data=  [...home, ...goust, ...arr, ...other];
+    }
+
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType(){
+      return this.$store.getters.getDeleteType;
+    },
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id=val.match_id
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          // console.log(res);
+          this.dataSorting(res);
+          //this.data = res;
+        }
+      });
+      let _this =this;
+      this.$public.getBettingId(this.$store.getters.getBetting,this.title,function(data,index){
+        _this.betting = data;
+        _this.dataNum = index;
+      });  
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this =this;
+      this.$public.getBettingId(this.$store.getters.getBetting,this.title,function(data,index){
+        _this.betting = data;
+        _this.dataNum = index;
+      });  
+    },
+      //监听投注框删除处理
+    getDeleteType(val){
+        this.data.forEach(e =>{
+          if(val =='all'){
+            this.$set(e, "isTrue", false);
+          }else{
+            if(e.id == val){
+              this.$set(e, "isTrue", false);
+            }
+          }
+        })
+    }
+  }
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+  
+  
+}
+div /deep/ .yd-accordion-head:after{
+  height: 0;
+}
+div /deep/ .yd-accordion-title {
+  color: #FEFEFE;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.grids{
+  width: 100%;
+}
+.grids div {
+  background: #f4f4f4;
+}
+.trueSelected{
+  color: #f4f4f4 !important
+}
+.middle {
+  border-left: 1px solid #e4e4e4;
+  border-right: 1px solid #e4e4e4;
+}
+.rulesName {
+  font-size: 0.26rem;
+  background: #bcbcbc;
+  color: #333;
+}
+div /deep/ .yd-accordion-content:after{
+  height: 0;
+}
+.gridsDiv,
+.rulesName div {
+  border-bottom: 1px solid #e4e4e4;
+  height: 0.88rem;
+  justify-content: center;
+  width: 2.49rem;
+}
+.minGrid {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  text-align: center;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+}
+.minGrid span {
+  font-size: 0.24rem;
+  padding: 0.08rem 0;
+  line-height: 0;
+  
+}
+.minGridAll {
+  margin-right: 0.69rem;
+  line-height: 0.76rem;
+  text-align: center;
+}
+.trueSelected {
+  background: #f76649 !important;
+  border: 2px solid #f76649;
+}
+.trueSelected span {
+  color: #f4f4f4 !important;
+}
+</style>
+

二进制
.svn/pristine/05/05d72fa59cec5fb58cce270195bf2c6381e38b48.svn-base


二进制
.svn/pristine/06/065698be43541d0b30a08085516e38da263d1cbb.svn-base


二进制
.svn/pristine/06/06d2dc7424cd66d35212f5a8396a4a5d41d31835.svn-base


二进制
.svn/pristine/06/06e496c347e1df2c2955921b60d53240460ffff9.svn-base


+ 490 - 0
.svn/pristine/07/076a747ea2844942b833b4042b5d84417b1566ce.svn-base

@@ -0,0 +1,490 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 18:21:35
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="让盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ldh'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'让盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'ldg'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'让盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'capot_dogfall'">
+                  <div class="row allAlignment center row-box" style=" border-bottom:0;">
+                    <span>和局</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,'和局',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <!-- <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-上半场" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'half_capot_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'half_capot_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'half_capot_dogfall'">
+                  <div class="row allAlignment center row-box" style=" border-bottom:0;">
+                    <span>和局</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,'和局',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第一节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'one_capot_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第一节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'one_capot_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第一节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第二节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'two_capot_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第二节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'two_capot_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第二节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第三节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'three_capot_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第三节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'three_capot_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第三节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第四节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'four_capot_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第四节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'four_capot_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第四节',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div> -->
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      title: "LD",
+      home_team: " ",
+      match_id:'',
+      guest_team: " ",
+      obj:'',//
+      data: [],
+      lg_id:'',
+      isDisplay: "", //是否显示
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id, name, odds,odds_only,p_code,match_id,odds_code,play_name,condition = "",oddsType, bettingTime = "") {
+      //console.log(this.data)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+         ballId:this.$store.getters.getBallId,
+        condition,
+        odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        p_code,
+        lg_id:this.lg_id,
+        odds_id:id,
+        play_name,
+        match_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+         this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+           if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+           if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code.startsWith("ld")){
+          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')){
+        //   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 
+      })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    // 获取投注删除状态
+    deleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id=val.match_id
+      if (!val) return false;
+     
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+        this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+     //监听投注框删除处理
+  deleteType(val) {
+    this.data.forEach(e => {
+      if (val == "all") {
+        this.$set(e, "isTrue", false);
+      } else {
+        if (e.id == val) {
+          this.$set(e, "isTrue", false);
+        }
+      }
+    });
+  },
+  },
+  mounted() {
+    
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  font-size: 0.28rem;
+  color: #fefefe;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.box {
+  padding: 0 0.32rem;
+}
+.row-box {
+  height: 0.9rem;
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.The-club-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.active {
+  background: #f76649;
+  color: #f4f4f4;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

+ 81 - 0
.svn/pristine/08/080583349d382e1947c1f2cd4a3e2453ae8182b1.svn-base

@@ -0,0 +1,81 @@
+<template>
+    <div :class="noroll?'noroll':''">
+        <!-- 加载组件 -->
+        <div class = "lod">
+          <Loading></Loading>
+        </div>
+        <!-- 头部组件 -->
+        <SportsHead></SportsHead>
+        <!-- 亚洲冠军杯组件 -->
+        <championsCup v-if="isShow ==1" />
+        <!-- 首页球类赛事组件 -->
+        <Serch v-else-if="isShow == 2"></Serch>
+        <!-- <LinkFooter></LinkFooter> -->
+    </div>
+</template>
+<script>
+import  SportsHead from '@/components/StSportsHead';
+import  Serch from '@/components/StSerch';
+import  LinkFooter from '@/components/StLinkFooter';
+import  Schedule from '@/components/StSchedule';
+import  Loading from '@/components/StLoading';
+import  championsCup from '@/components/StChampionsCup';
+export default {
+    name:"AllMatch",
+    components:{
+        SportsHead,
+        Serch,
+        LinkFooter,
+        Schedule,
+        Loading,
+        championsCup
+    },
+    data(){
+        return{
+            isShow:100, // 断定是否为冠军跳入
+            // ballId:this.$route.query.id
+            noroll:false,
+        }
+
+    },
+    computed:{
+        noRoll(){
+            return this.$store.getters.getNoRoll
+        }
+    },
+    watch:{
+        noRoll(val){
+            this.noroll=val
+        }
+    },
+    mounted(){
+        if(this.$route.query.id == 'gj'){
+            this.isShow = 1;
+        }else{
+            this.isShow = 2;
+        }
+    }
+    // created(){
+    //     this.getId();
+    // },
+    // methods:{
+    //     getId:function(){
+    //         console.log(this.$store.getters.getGameRatio);
+    //     }
+    // }
+    //    this.$store.dispatch('GETSHOW',true);
+}
+</script>
+<style  scoped>
+/* .noroll{
+    position: fixed;
+     width: 100%;
+    top: 0;
+    left: 0;
+} */
+    .lod{
+        z-index: 999;
+        position: fixed;
+        width: 100%;
+    }
+</style>

二进制
.svn/pristine/08/0868d35dd2646fa865cccdd30c36f6cba6a27c85.svn-base


二进制
.svn/pristine/08/0893a6dce41d985200bf2a6358a9b5e4e3a1e344.svn-base


+ 124 - 0
.svn/pristine/08/0898a05e1b9db5d7e905c8b00b100beed1a154e8.svn-base

@@ -0,0 +1,124 @@
+<template>
+	<div>
+		<yd-accordion>
+			<!-- 组件标题 -->
+			<yd-accordion-item class="Match-game" :title="table.title">
+				<div style="background: #F0F0F0;">
+					<p
+						v-for="(i, index) in table.list"
+						class="list-row"
+						:style="i.num ? '' : 'background:#F8F8F8'"
+						:key="i.id"
+					>
+						<span class="The-club">{{ i.Theclub }}</span>
+						<span
+							:class="i.istrue== true ? 'active The-club-box' : 'The-club-box'"
+							@click="Theclubboxclick(index)"
+							:style="i.num ? '' : 'display:none'"
+						>
+							<i style="color: #FD8F26;" v-if="i.num">{{ i.num.num1 }}</i>
+							<i v-if="i.num"> {{ i.num.num2 }}</i>
+						</span>
+					</p>
+				</div>
+			</yd-accordion-item>
+		</yd-accordion>
+	</div>
+</template>
+
+<script>
+export default {
+	// 让球上半场
+	data() {
+		return {
+			// 组件内部测试状态
+			table: {
+				title: '让球-上半场',
+				list:[
+					{
+						id: 1,
+						Theclub: '哈萨克斯坦',
+						num: {
+							num1: '0.5/1',
+							num2: '0.94'
+						}
+					}
+				]
+			}
+		};
+	},
+	methods: {
+		// 点击更改组件选中状态
+		Theclubboxclick(num) {
+			// 更改组件是否选中
+			this.$set(this.table.list[num],"istrue",this.table.list[num].istrue==true?false:true)
+		}
+	},
+	mounted() {
+	}
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+	border: none;
+	width: 0.5rem;
+	height: 0.5rem;
+	background: url(../../assets/st-imges/xiangxia.png) no-repeat;
+	background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+	height: 0.88rem;
+	font-size: 0.32rem;
+	color:#333;
+  	background: #F8F8F8;
+}
+div /deep/ .yd-accordion-head {
+	padding: 0 0.32rem;
+}
+.Match-game {
+	position: relative;
+}
+.Match-game-stat {
+	position: absolute;
+	right: 1.35rem;
+	color: #fd8f26;
+	font-size: 0.23rem;
+}
+.list-row {
+	display: flex;
+	justify-content: space-between;
+	height: 0.87rem;
+	background: #f8f8f8;
+	border-bottom: 1px solid #e4e4e4;
+	align-items: center;
+	padding: 0 0.32rem;
+}
+.The-club{
+  font-size: .28rem
+}
+.The-club-box {
+	display: inline-block;
+	display: flex;
+	flex-wrap: wrap;
+	align-items: center;
+	justify-content: center;
+	width: 1.07rem;
+	height: 0.76rem;
+	font-size: 0.24rem;
+	padding: 0.1rem;
+	border: 2px solid #cecece;
+	border-radius: 0.1rem;
+	margin-right: 0.1rem;
+}
+.active {
+	background: #F76649;
+	padding: 0.1rem;
+	border: 2px solid #F76649;
+}
+.active i{
+	color: #f4f4f4 !important;
+}
+</style>

+ 308 - 0
.svn/pristine/08/08a90ec5bf9007045cd7317227aa0f92674f41df.svn-base

@@ -0,0 +1,308 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 17:00:13
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion> 
+          <yd-accordion-item class="Match-game" :title="total_title" open>
+            <div class="row allAlignment center rowBox" >
+              <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+                <!-- && item.odds_code.endsWith('big') -->
+                <div v-if="item.odds_code.startsWith('tnb') "  v-for=" (item,index) in data" class="row allAlignment center borderBottom" >
+                  <span>大</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title,item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div  class="column  width-box " >
+                <!-- && item.odds_code.endsWith('small') -->
+                <div v-if="item.odds_code.startsWith('tns') "  v-for=" (item,index) in data"   class="row allAlignment center borderBottom">
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title,item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div v-if="obj.b">
+        <yd-accordion> 
+          <yd-accordion-item class="Match-game" :title="total_title+'-前五局'" open>
+            <div class="row allAlignment center rowBox" >
+              <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+                 <!-- && item.odds_code.endsWith('big') -->
+                <div v-if="item.odds_code.startsWith('tnb_5')"  v-for=" (item,index) in data" class="row allAlignment center borderBottom" >
+                  <span>大</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title+'-前五局',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div  class="column  width-box " >
+                 <!-- && item.odds_code.endsWith('small') -->
+                <div v-if="item.odds_code.startsWith('tns_5')"  v-for=" (item,index) in data"   class="row allAlignment center borderBottom">
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title+'-前五局',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "TN",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      obj:'',
+      total_title: "总得分:大/小",
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: this.title,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name:play_name,
+        lg_id: this.lg_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //子玩法分类
+    removeHeavy(data){
+      this.data = [];
+      let obj ={};
+      data.forEach(e=>{
+          let index = e.odds_code.lastIndexOf('_');
+          let str=  e.odds_code.slice(0,index)  
+        if('tnb_5' == str || 'tnb' == str){
+          if(e.odds_code.startsWith('tnb')){
+            obj.a = true;
+          }else if(e.odds_code.startsWith('tnb_5')){
+            obj.b = true;
+          }
+          this.isDisplay = true;  
+          this.data.push(e)
+        }
+      })
+      this.obj = obj;
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.removeHeavy(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+.borderBottom{
+  border-bottom: 1px solid #e4e4e4
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

+ 28 - 0
.svn/pristine/09/094634b1e984b0ef90ea3ec23f9a80ead6114102.svn-base

@@ -0,0 +1,28 @@
+<template>
+    <div>
+        <SportsHead></SportsHead>
+        <Serch></Serch>
+        <Match></Match>
+        <!-- <LinkFooter></LinkFooter> -->
+    </div>
+</template>
+<script>
+import  SportsHead from '../../../components/StSportsHead';
+import  Serch from '../../../components/StSerch';
+import  Match from '../../../components/StMatch';
+import  LinkFooter from '../../../components/StLinkFooter';
+import  Schedule from '../../../components/StSchedule';
+export default {
+    name:'Home',
+    components:{
+        SportsHead,
+        Serch,
+        Match,
+        LinkFooter,
+        Schedule
+    }
+}
+</script>
+<style  scoped>
+
+</style>

二进制
.svn/pristine/0a/0ab58e45ff9eaf0a84ecd46aa53ef4ca3fc20d86.svn-base


+ 124 - 0
.svn/pristine/0b/0ba9a5958252ceb0c3bbaf0663724e1781609c6a.svn-base

@@ -0,0 +1,124 @@
+<template>
+	<div>
+		<yd-accordion>
+			<!-- 组件标题 -->
+			<yd-accordion-item class="Match-game" :title="table.title">
+				<div style="background: #F0F0F0;">
+					<p
+						v-for="(i, index) in table.list"
+						class="list-row"
+						:style="i.num ? '' : 'background:#F8F8F8'"
+						:key="i.id"
+					>
+						<span class="The-club">{{ i.Theclub }}</span>
+						<span
+							:class="i.istrue== true ? 'active The-club-box' : 'The-club-box'"
+							@click="Theclubboxclick(index)"
+							:style="i.num ? '' : 'display:none'"
+						>
+							<i style="color: #FD8F26;" v-if="i.num">{{ i.num.num1 }}</i>
+							<i v-if="i.num"> {{ i.num.num2 }}</i>
+						</span>
+					</p>
+				</div>
+			</yd-accordion-item>
+		</yd-accordion>
+	</div>
+</template>
+
+<script>
+export default {
+	// 让球
+	data() {
+		return {
+			// 组件内部测试状态
+			table: {
+				title: '让球',
+				list:[
+					{
+						id: 1,
+						Theclub: '哈萨克斯坦',
+						num: {
+							num1: '0.5/1',
+							num2: '0.94'
+						}
+					}
+				]
+			}
+		};
+	},
+	methods: {
+		// 点击更改组件选中状态
+		Theclubboxclick(num) {
+			// 更改组件是否选中
+			this.$set(this.table.list[num],"istrue",this.table.list[num].istrue==true?false:true)
+		}
+	},
+	mounted() {
+	}
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+	border: none;
+	width: 0.5rem;
+	height: 0.5rem;
+	background: url(../../assets/st-imges/xiangxia.png) no-repeat;
+	background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+	height: 0.88rem;
+	font-size: 0.32rem;
+	color:#333;
+  	background: #F8F8F8;
+}
+div /deep/ .yd-accordion-head {
+	padding: 0 0.32rem;
+}
+.Match-game {
+	position: relative;
+}
+.Match-game-stat {
+	position: absolute;
+	right: 1.35rem;
+	color: #fd8f26;
+	font-size: 0.23rem;
+}
+.list-row {
+	display: flex;
+	justify-content: space-between;
+	height: 0.87rem;
+	background: #f8f8f8;
+	border-bottom: 1px solid #e4e4e4;
+	align-items: center;
+	padding: 0 0.32rem;
+}
+.The-club{
+  font-size: .28rem
+}
+.The-club-box {
+	display: inline-block;
+	display: flex;
+	flex-wrap: wrap;
+	align-items: center;
+	justify-content: center;
+	width: 1.07rem;
+	height: 0.76rem;
+	font-size: 0.24rem;
+	padding: 0.1rem;
+	border: 2px solid #cecece;
+	border-radius: 0.1rem;
+	margin-right: 0.1rem;
+}
+.active {
+	background: #F76649;
+	padding: 0.1rem;
+	border: 2px solid #F76649;
+}
+.active i{
+	color: #f4f4f4 !important;
+}
+</style>

+ 108 - 0
.svn/pristine/0d/0d1aa1540926746793588bf211dbfb58cfab3505.svn-base

@@ -0,0 +1,108 @@
+/* Flex 布局 */
+/* 平行 */
+.row,.column {
+    display: flex;
+    flex-direction: row;
+  }
+  /* 垂直 */
+  .column {
+    flex-direction: column;
+  }
+  /* 自动填充 */
+  .col-w,.col-h {
+    flex: 1;
+  }
+  /* 横向 */
+  .col-w {
+    width: 0;
+  }
+  /* 纵向 */
+  .col-h {
+    height: 0;
+  }
+  /* 水平垂直居中 */
+  .center {
+    justify-content: center;
+    align-items: center;
+  }
+  /* 水平居中 */
+  .item-center {
+    align-items: center;
+  }
+  /* 垂直居中 */
+  .vertical-center {
+    justify-content: center;
+  }
+  /* 上对齐 */
+  .topAlignment {
+    align-items: flex-strat;
+  }
+  /* 右对齐 */
+  .rightAlignment {
+    justify-content: flex-end;
+  }
+  /* 下对齐 */
+  .bottomAlignment {
+    align-items: flex-end;
+  }
+  /* 左右对齐,项目之间的间隔都相等 */
+  .allAlignment {
+    justify-content: space-between;
+  }
+  /* 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍 */
+  .average {
+    justify-content: space-around;
+  }
+  /* 项目的第一行文字的基线对齐 */
+  .items-baseline {
+    align-items: baseline;
+  }
+  /* 省略号 */
+  .ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+  }
+  body{
+    margin: 0;
+    padding: 0;
+  }
+
+  /* 取消苹果的safari浏览器下点击出现高亮效果 */
+  *{
+    -webkit-tap-highlight-color:rgba(0,0,0,0) 
+  }
+
+  /* 赔率变低 */
+  .reduce_color{
+    background:red
+  /* animation:mymove1 5s linear 0s 1;
+  -webkit-animation:mymove1 5s linear 0s 1; */
+  }
+  /* @keyframes mymove1
+  {
+  from {background:red}
+  to {background:white}
+  }
+  @-webkit-keyframes mymove1 
+  {
+  from {background:red}
+  to {background:white}
+  } */
+  
+  /* 赔率增高 */
+  .increased_color{
+    background:Lightgreen
+    /* animation:mymove 5s linear 0s 1;
+    -webkit-animation:mymove 5s linear 0s 1;Safari and Chrome */
+    }
+    /* @keyframes mymove
+    {
+    from {background:Lightgreen}
+    to {background:white}
+    }
+    @-webkit-keyframes mymove 
+    {
+    from {background:Lightgreen}
+    to {background:white}
+    } */

二进制
.svn/pristine/0d/0d735618ae4c5f957ff454c80333dc02ee559e0b.svn-base


+ 1250 - 0
.svn/pristine/0d/0db62afc7eb7f8ba142c9faaa7366f33618b522b.svn-base

@@ -0,0 +1,1250 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:23
+ * @LastEditTime: 2019-08-31 11:22:31
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div :class="getBettingIsShow?'noscoll':''">
+    <div class="lod">
+      <Loading></Loading>
+    </div>
+    <div>
+      <SportsHead></SportsHead>
+      <div class="Serch">
+        <div class="Soccer-game row center">
+          <div class="Soccer-game-title row center" @click="isreturn()">
+            <img class="returnimg" :src="searchreturn">
+            {{name}}
+          </div>
+        </div>
+      </div>
+      <!-- 足球头部 -->
+      <div class="bqHead zqHead" v-if="headStatus == 1">
+        <div class="pd-10">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+              <div>
+                <!-- <span v-if="list.match_time" class="scene">{{list.match_time.split(' ')[0]}} </span>
+                &nbsp; -->
+                <span  v-if="list.match_time" class="time">{{list.match_ptime ?  list.match_ptime : list.match_time.split(' ')[0]}}</span>
+              </div>
+            </div>
+            <div class="info">
+              <span>{{list.home_team}}</span>
+              <span class="live-score">{{list.match_score ? list.match_score :'0-0'}}</span>
+              <span>{{list.guest_team}}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 篮球头部 -->
+            <!-- 篮球头部 -->
+        <div class="header" v-if="headStatus == 2">
+          <div class=" match">
+            <div class="live">
+              <div class="tit">{{list.leagueName}}</div>
+                <div class="info">
+                <div class="infoBody flex">
+                  <div class="matchTime" style="width:25%;">
+                    <span v-if="matchScoreDetails.schedule == 1" class="scene">第一节</span>
+                    <span v-if="matchScoreDetails.schedule == 2" class="scene">第二节</span>
+                    <span v-if="matchScoreDetails.schedule == 3" class="scene">第三节</span>
+                    <span v-if="matchScoreDetails.schedule == 4" class="scene">第四节</span>
+                    <span v-if="matchScoreDetails.schedule == 'ot'" class="scene">加时</span>
+                    <span class="time">{{matchScoreDetails.r_time}}</span>
+                  </div> 
+                  <div class="flex" style="width:75%;">
+                    <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:25%;">
+                      <span class="team">{{list.home_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div :class="{col:matchScoreDetails.schedule == 1}" class="infoNum">{{matchScoreDetails.sc_1th_H}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 2}" class="infoNum">{{matchScoreDetails.sc_2th_H}} </div>
+                      <div :class="{col:matchScoreDetails.schedule == 3}" class="infoNum">{{matchScoreDetails.sc_3th_H}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 4}" class="infoNum">{{matchScoreDetails.sc_4th_H}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 'ot'}"class="infoNum">{{matchScoreDetails.overtime_H}}</div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">{{matchScoreDetails.whole_H}}</div>
+                    </div>
+                  </div>
+                  <div class="infoItem flex">
+                    <div style="width:25%;">
+                      <span class="team">{{list.guest_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div :class="{col:matchScoreDetails.schedule == 1}" class="infoNum">{{matchScoreDetails.sc_1th_C}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 2}" class="infoNum">{{matchScoreDetails.sc_2th_C}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 3}" class="infoNum">{{matchScoreDetails.sc_3th_C}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 4}" class="infoNum ">{{matchScoreDetails.sc_4th_C}}</div>
+                      <div :class="{col:matchScoreDetails.schedule == 'ot'}"class="infoNum">{{matchScoreDetails.overtime_C}}</div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">{{matchScoreDetails.whole_C}}</div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      <!-- 棒球头部 -->
+      <div class="tennisHead" v-if="headStatus == 3">
+        <div style="padding:0.1rem;">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+            </div>
+            <div class="ballTable">
+              <div class="listHead row allAlignment">
+                <div class="txt-c-0">
+                  <div class="section">{{matchScoreDetails.schedule}}
+                    <span v-if="matchScoreDetails.type == 'h'">▲</span> 
+                    <span v-else>▼</span>
+                    <!-- <span>▲</span> -->
+                  </div>
+                </div>
+                <div class="row ">
+                  <span class="session row center" v-for="(tiem,i) in 9" :key="tiem.id">
+                    {{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" style="width:0.85rem;">总局数</span>
+                </div>
+              </div>
+
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold " :class="{attack:matchScoreDetails.type == 'h'}">•</div>
+                  <div class="team" style="text-align:left;">{{ list.home_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"
+                   class="session row center">{{matchScoreDetails.sc_1th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}" 
+                  class="session row center">{{matchScoreDetails.sc_2th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}" 
+                  class="session row center ">{{matchScoreDetails.sc_3th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}" 
+                  class="session row center">{{matchScoreDetails.sc_4th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}" 
+                  class="session row center">{{matchScoreDetails.sc_5th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}" 
+                  class="session row center">{{matchScoreDetails.sc_6th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}" 
+                  class="session row center">{{matchScoreDetails.sc_7th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}" 
+                  class="session row center">{{matchScoreDetails.sc_8th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}" 
+                  class="session row center">{{matchScoreDetails.sc_9th_H}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_H}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_H}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_H}}</span>
+                </div>
+              </div>
+              
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold" :class="{attack:matchScoreDetails.type == 'g'}">•</div>
+                  <div class="team" style="text-align:left;">{{list.guest_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"  class="session row center">{{matchScoreDetails.sc_1th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}"  class="session row center">{{matchScoreDetails.sc_2th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}"  class="session row center">{{matchScoreDetails.sc_3th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}"  class="session row center">{{matchScoreDetails.sc_4th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}"  class="session row center">{{matchScoreDetails.sc_5th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}"  class="session row center">{{matchScoreDetails.sc_6th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}"  class="session row center">{{matchScoreDetails.sc_7th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}"  class="session row center">{{matchScoreDetails.sc_8th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}"  class="session row center">{{matchScoreDetails.sc_9th_C}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_C}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_A}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_C}}</span>
+                </div>
+              </div>
+               <div class="listHead row allAlignment"> 
+                  <div class="row center">
+                    <div  class="eliminate ">
+                      <span :class="{spanBox:matchScoreDetails.baseman_2 !='N'}" style="margin-left:.11rem;"></span>
+                      <div style="width:.31rem;" class="row allAlignment">
+                        <span :class="{spanBox:matchScoreDetails.baseman_3 !='N'}"></span>
+                        <span :class="{spanBox:matchScoreDetails.baseman_1  !='N'}"></span>
+                      </div>
+                    </div>
+                  </div>
+                 <div>
+                   <span>出局:</span>
+                   <span>{{matchScoreDetails.out_game_num}}</span>
+                 </div>
+               </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 网球头部 -->
+      <div class="tennisHead" style="padding:0.1rem;" v-if="headStatus == 4">
+        <div class="ballTable">
+          <div class="txt" style=" color:#fff">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="listHead row allAlignment">
+            <div class="txt">
+              <!-- <div class="spanCol">第{{scoreDetails.cp == 1?'一' : scoreDetails.cp ==2 ? "二": scoreDetails.cp ==3 ? "三":scoreDetails.cp== 4 ? "四":"五" }}节</div> -->
+              <div v-if="matchScoreDetails.schedule == 1" class="spanCol"> 第一节</div>
+              <div v-if="matchScoreDetails.schedule == 2" class="spanCol"> 第二节</div>
+              <div v-if="matchScoreDetails.schedule == 3" class="spanCol"> 第三节</div>
+              <div v-if="matchScoreDetails.schedule == 4" class="spanCol"> 第四节</div>
+              <div v-if="matchScoreDetails.schedule == 5" class="spanCol"> 第五节</div>
+              <!-- <div class="delay">天气原因延期</div> -->
+            </div>
+            <div class="headerTop row rightAlignment">
+              <span  v-for="(item,i) in matchScoreDetails.best" :key="item.id">{{i+1}}</span>
+              <span class="mg-5">分数</span>
+              <span class="mg-5">盘</span>
+              <span class="mg-5" style="width:0.8rem;">总局</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;">{{list.home_team}}</div>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">{{matchScoreDetails.sc_1th_H}}</span>
+              <span class="spanCol">{{matchScoreDetails.sc_2th_H}}</span>
+              <span class="spanCol">{{matchScoreDetails.sc_3th_H}}</span>
+              <span v-if=" matchScoreDetails.best > 3" class="spanCol">{{matchScoreDetails.sc_4th_H}}</span>
+              <span v-if="  matchScoreDetails.best > 3" class="spanCol">{{matchScoreDetails.sc_5th_H}}</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.spot_H}}</span>
+              <span class="mg-5 mark">{{matchScoreDetails.disc_H}}</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem">{{matchScoreDetails.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;">{{list.guest_team}}</span>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">{{matchScoreDetails.sc_1th_C}}</span>
+              <span class="spanCol">{{matchScoreDetails.sc_2th_C}}</span>
+              <span class="spanCol">{{matchScoreDetails.sc_3th_C}}</span>
+              <span v-if=" matchScoreDetails.best > 3" class="spanCol">{{matchScoreDetails.sc_4th_C}}</span>
+              <span v-if=" matchScoreDetails.best > 3" class="spanCol">{{matchScoreDetails.sc_5th_C}}</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.spot_C}}</span>
+              <span class="mg-5 mark">{{matchScoreDetails.disc_C}}</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem;">{{matchScoreDetails.game_num_C}}</span>
+            </div>
+          </div>
+          <div></div>
+        </div>
+        <!-- </div>
+        </div>-->
+      </div>
+
+    <!-- 原始头部 -->
+      <div class="gambling" v-show="this.list" v-if="headStatus == 0">
+        <div class="leagueMatch row average">
+          <yd-button size="large" @click.native="show = true"></yd-button>
+          <div class="leagueName">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="teamName">
+            <span>{{list.home_team}}</span>
+            <div class="vs">vs</div>
+            <span>{{list.guest_team}}</span>
+          </div>
+          <div class="time" :style="status == true?'':'width:2rem;'">
+            <span>{{list.match_ptime? list.match_ptime :list.match_time }}</span>
+          </div>
+          <div v-if="satatus" class="icon" :class="status == true ? 'rotate':'backRotate'">
+            <i></i>
+          </div>
+        </div>
+        <!-- 模态框 -->
+        <yd-popup v-if="satatus" v-model="show" position="center" width="90%">
+          <div class="modality">
+            <div
+              class="list"
+              v-for="(item,index) in list.league"
+              :key="index"
+              @click="check(index,item.match_id)"
+            >
+              <span :class="match_id == item.match_id?'col':''">{{item.home_team}}</span>
+              <span :class="match_id == item.match_id?'col':''">v</span>
+              <span :class="match_id == item.match_id?'col':''">{{item.guest_team}}</span>
+            </div>
+          </div>
+        </yd-popup>
+      </div>
+      <div class="box">
+          <div id="NavSlide">
+            <nav>
+              <p v-for="(item,$index) in key" @click="toggleNav($index)" :key="$index">
+                <span :class="{active:$index==active}">{{item}}</span>
+              </p>
+            </nav>
+          </div>
+        </div>
+      <div v-show="isShow">
+        <!--让球大小-->
+        <div v-show="Single =='进球:大/小' || isAll  ">
+          <goal></goal>
+        </div>
+        <!--让球1-->
+        <div v-show="Single =='让球' || Single =='让分' || isAll  ">
+          <LetBall></LetBall>
+        </div>
+        <!--最先/最后进球-->
+        <div v-show="Single =='首粒入球/最后一粒入球' || isAll  ">
+          <StartEnd></StartEnd>
+        </div>
+        <!-- 总进球数 -->
+        <div v-show="Single =='总进球数' || isAll  ">
+          <GoalSize></GoalSize>
+        </div>
+        <!-- 根据球类加载独赢/冠军 -->
+        <div v-if="name =='篮球' || name =='棒球' || name =='足球'">
+          <!--独赢-->
+          <div v-show="Single =='独赢'|| Single =='独赢盘'|| isAll  ">
+            <OnlyWin></OnlyWin>
+          </div>
+        </div>
+        <div v-else>
+          <!-- 冠军 -->
+          <div v-show="Single =='冠军' || isAll ">
+            <MatchChampion></MatchChampion>
+          </div>
+        </div>
+        <!--独赢-->
+        <!-- <div v-show="Single =='独赢'|| Single =='独赢盘'|| isAll  ">
+          <OnlyWin></OnlyWin>
+        </div> -->
+        <!-- 波胆 -->
+        <div v-show="Single =='波胆' || isAll ">
+          <div v-if="name == '网球'">
+            <TennisWaveBravery/>
+          </div>
+          <div v-else>
+             <WaveBladder></WaveBladder>
+          </div>
+        </div>
+        <!--入球数单双-->
+        <div v-show="Single =='进球:单/双'||  Single =='总得分:单/双' ||  Single =='总局数:单双' || isAll  ">
+          <div v-if="name =='网球' ">
+            <InningsSingleDouble></InningsSingleDouble>
+          </div> 
+          <div v-else-if="name !='篮球'">
+            <GoalSingleAndDouble></GoalSingleAndDouble>
+          </div>
+        </div>
+        <!-- 总分:单/双 -->
+         <div v-show="(Single =='总分:单/双' || isAll) && (name =='篮球' || name =='棒球') ">
+           <TotalScoreSingleDouble/>
+          </div>
+        <!--半场/全场-->
+        <div v-show="Single =='半场/全场'|| isAll ">
+          <FullHalf></FullHalf>
+        </div>
+        <!-- 角球
+        <div v-show="Single =='角球' || isAll ">
+          <Corner></Corner>
+        </div> -->
+        <!-- 球队进球大小 -->
+        <div v-show="(Single =='球队进球数:大/小' || isAll)&& name =='足球' ">
+          <TeamSize></TeamSize>
+        </div>
+        <!-- 球队得分:大/小 -->
+        <div v-show="(Single =='球队得分:大/小' || isAll) && name == '篮球'">
+          <TeamGoalSize></TeamGoalSize>
+        </div>
+        <!-- 总得分:大/小 -->
+        <div v-show="Single =='总分:大/小' || isAll && name =='篮球'  ">
+            <TotalScoreSize></TotalScoreSize>
+        </div>
+        <!-- 总得分:大/小 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <div v-if="name !='网球' && name !='棒球'">
+            <TotalScoreSize></TotalScoreSize>
+          </div>
+        </div>
+        <!-- 总得分:大/小 前五 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <div v-if="name =='棒球'">
+            <TotalScoreSizeFive></TotalScoreSizeFive>
+          </div>
+        </div>
+        <!-- 总得分:大/小 上半场 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <div v-if="name !='网球' && name !='棒球'">
+            <TotalScoreHalfSize></TotalScoreHalfSize>
+          </div>
+        </div>
+        <!-- 总得分:大/小  节数-->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <div v-if="name !='网球'">
+            <TotalScoreSectionSize></TotalScoreSectionSize>
+          </div>  
+        </div>
+        <!-- 球队得分最后一位数 -->
+        <div v-show="Single =='球队得分:最后一位数' || isAll ">
+          <TeamScoreLast></TeamScoreLast>
+        </div>
+        <!-- 总局数:大/小 -->
+        <div v-show="Single =='总局数:大/小' || isAll  ">  
+          <div v-if="name =='网球'" >
+            <InningsSize></InningsSize>
+          </div> 
+        </div>
+        <!-- 总局数:单/双
+        <div v-show="Single =='总局数单双' || isAll ">
+          <InningsSingleDouble></InningsSingleDouble>
+        </div> -->
+        <!-- 冠军 -->
+        <!-- <div v-show="Single =='冠军' || isAll ">
+          <MatchChampion></MatchChampion>
+        </div> -->
+         <!-- 让盘 -->
+        <div v-show="Single =='让盘' || isAll ">
+          <LetPlate></LetPlate>
+        </div>
+
+        <!-- 让局 -->
+        <div v-show="Single =='让局' || isAll ">
+          <LetBureau></LetBureau>
+        </div>
+      </div>
+      <div v-if="!isShow">
+        <NotOpend :title="tipsTitle"></NotOpend>
+      </div>
+      <!-- <StLinkFooter></StLinkFooter> -->
+      <BettingWindow v-if="isBettingWindow== '100'"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import Goal from "@/components/StGoal";
+import LetBall from "@/components/StLetBall";
+import NotOpend from "@/components/StNotOpend";
+import Loading from "@/components/StLoading";
+import WaveBladder from "@/components/StWaveBladder";
+import StLinkFooter from "@/components/StLinkFooter";
+import SportsHead from "@/components/StSportsHead";
+import OnlyWin from "@/components/StOnlyWin";
+import GoalSize from "@/components/StGoalSize";
+import StartEnd from "@/components/StStartEnd";
+import FullHalf from "@/components/StFullHalf";
+import TeamGoalSize from "@/components/StTeamGoalSize";
+import TeamSize from "@/components/StTeamSize";
+import TotalScoreSize from "@/components/StTotalScoreSize";
+import TotalScoreSizeFive from "@/components/StTotalScoreSizeFive";
+import TotalScoreHalfSize from "@/components/StTotalScoreHalfSize";
+import TotalScoreSectionSize from "@/components/StTotalScoreSectionSize";
+import TeamScoreLast from "@/components/StTeamScoreLast";
+import GoalSingleAndDouble from "@/components/StGoalSingleAndDouble";
+import Corner from "@/components/StCorner";
+import TotalScoreSingleDouble from "@/components/StTotalScoreSingleDouble";
+import BettingWindow from "@/components/StBettingWindow";
+import MatchChampion from "@/components/StMatchChampion";
+import InningsSingleDouble from "@/components/StInningsSingleDouble";
+import InningsSize from "@/components/StInningsSize";
+import LetPlate from "@/components/StLetPlate";
+import LetBureau from "@/components/StLetBureau";
+import TennisWaveBravery from "@/components/StTennisWaveBravery";
+export default {
+  data() {
+    return {
+      name:this.$route.query.name, // 球名
+      searchreturn: require("@/assets/st-imges/returnbox.png"),
+      gameCode: this.$route.query.gameCode, //别名
+      match_id: "",
+      list:'', //数据
+      previousStorage:{},//前一次list储存数据
+      key: [], //存储key值进行判定
+      isShow: "", //更具数据是否显示
+      getBettingIsShow:false,// 判断投注框背景可否滚动
+      status: false,
+      tipsTitle: "暂无相关数据信息",
+      active: 0,// 投注页是否打开
+      isBettingWindow: '-1',
+      // isIphone: false,//是否ios
+      // isAndroid: false,//是否Android
+      show: false, //是否显示模态框
+      satatus: true,
+      isAll: true,
+      Single: "",
+      timers : true,//是否开启轮询
+      headStatus : 0 ,// 头部显示滚球(1为足球,2为篮球,3为棒球,4为网球),0为普通
+      matchScoreDetails:'',//比赛得分详情
+    };
+  },
+  methods: {
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+    //滚球比赛比分详情
+    scoreDetails(data){
+      //比赛得分详细
+      let matchScoreDetails  = JSON.parse(data);
+      // console.log(matchScoreDetails);
+      if(matchScoreDetails.schedule){
+        if(matchScoreDetails.schedule.startsWith('Topof')){
+          matchScoreDetails.type = 'h'
+        }else if(matchScoreDetails.schedule.startsWith('Bottomof')){
+          matchScoreDetails.type = 'g'
+        }
+        matchScoreDetails.schedule =  matchScoreDetails.schedule.match(/\d+/g)[0]
+        this.matchScoreDetails = matchScoreDetails;
+      }
+    },
+
+    //页面初始化接口请求
+    getAjax: function(game_code, matchID,oddsType) {
+      this.$http.get(this.$ports.gambling.matchOdds, {
+          oddsType,
+          game_code,
+          matchID
+        }).then(res => {
+          if (res.data.status == 1 && res.data.data  ) {
+
+            //滚球头部数据处理
+           // console.log(res.data.data.result_mark)
+            if(res.data.data.result_mark){
+              this.scoreDetails(res.data.data.result_mark);
+            }
+            //console.log(res.data.data.result_mark,'比赛得分详细');
+
+            // //最新数据和上一次的数据匹配并储存历史数据
+            let storage =this.previousStorage  != {} ? this.previousStorage : '';
+            // console.log(this.previousStorage);
+            let obj={},historyList = [];
+            if(storage && storage.match_id == res.data.data.match_id  && storage.oddsData.length > 0){
+                res.data.data.oddsData.forEach(e=>{
+                  storage.oddsData.forEach((res,i)=>{
+                    if(e.odds_code == res.odds_code){
+                      if(e.sort == res.sort){
+                        if(e.odds * 1 > res.odds_data * 1){
+                          e.change ='add';
+                        }else if(e.odds * 1  < res.odds_data * 1){
+                          e.change = 'red';
+                        }else{
+                          e.change ='';
+                        }
+                      }
+                    }
+                  })
+                })
+            }
+
+            this.previousStorage.match_id = res.data.data.match_id;
+            res.data.data.oddsData.forEach(e=>{
+              // console.log(e);
+              historyList.push({
+                odds_id:e.id,
+                odds_data:e.odds,
+                odds_code:e.odds_code,
+                sort:e.sort
+              })
+            })
+            this.previousStorage.oddsData = [];
+            this.previousStorage.oddsData = historyList;
+
+            this.key = [];
+            if ( res.data.data.oddsData == [] ||res.data.data.oddsData.length == 0 ||res.data.data.oddsData == null) {
+              this.$store.dispatch("GETSHOW", false);
+              this.isShow = false;
+              return false;
+            }
+            this.satatus  = res.data.data.league.length > 1 ? true :false;
+            //最新玩法赔率
+            let arrayData = [];
+            let key =res.data.data.p_code_array ;//Object.keys(res.data.data.p_code_array);
+            let values = this.$store.getters.getPlayAlias;
+            this.isShow = true;
+            this.key = ["所有盘口"];
+            key.forEach((e, index) => {
+
+              //组合详情玩法页面导航栏
+              values.forEach(val=>{
+                if(e == val.odds_code && this.$store.getters.getBallId == val.game_code){
+                  if((this.name == '篮球' && val.odds_name =='入球数单双') || (this.name == '棒球' && val.odds_name =='入球数单双')){
+                    val.odds_name ='总分:单双'
+                  }
+                  this.key.push(val.odds_name);
+                }
+              })
+
+              //根据玩法分组本次赔率数据
+              let stripData = [];
+              res.data.data.oddsData.forEach(data => {
+                if (data.p_code == e) {
+                  stripData.push(data);
+                }
+                arrayData[index] = stripData;
+              });
+            });
+
+            // // //更新数据和上一次的数据匹配
+            // let storage =this.previousStorage ? JSON.parse(this.previousStorage) :'';
+            // // console.log('storage',storage.oddsData)
+            // if(storage && storage.match_id == res.data.data.match_id  && storage.oddsData.length > 0){
+            //   arrayData.forEach((e,ind)=>{
+            //     storage.oddsData.forEach((res,index)=>{
+            //       if(e[0].p_code == res[0].p_code){
+            //         e.forEach(dat=>{
+            //           res.forEach((val,i)=>{
+            //             console.log(dat,val);
+            //             if(dat.id == val.id){
+            //               console.log(dat.odds,val.odds);
+            //               if(dat.odds * 1 > val.odds * 1){
+            //                 dat.change ='add';
+            //               }else if(dat.odds * 1  < val.odds * 1){
+            //                 dat.change = 'red';
+            //               }else{
+            //                 dat.change ='';
+            //               }
+            //               res.splice(i,1)
+            //             }
+            //           })
+            //         })
+            //         storage.oddsData.splice(index,1)
+            //       }
+            //     })
+            //   })
+            // }
+
+            
+            // console.log(arrayData);
+            res.data.data.oddsData = arrayData;
+           // this.previousStorage = JSON.stringify(res.data.data)//JSON.stringfy();
+            this.list = res.data.data;
+            
+            this.$store.dispatch("GETGAMERATIO", res.data.data);
+            //console.log("数据源", arrayData);
+          }
+          let _this=this;
+          setTimeout(()=>{
+            this.$store.dispatch("GETSHOW", false);
+          },1000)
+        });
+      },
+
+    /**
+     * 切换赛事
+     */
+    check(index, match_id) {
+      let oddsType = localStorage.getItem('activity');
+      this.show = false;
+      if (this.list.match_id == match_id) return false;
+      this.match_id = match_id;
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("GETSHOW", true);
+      this.getAjax(this.gameCode, match_id,oddsType);
+    },
+
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    getIsBettingType() {
+      return this.$store.getters.getIsBetting;
+    },
+    // 获取投注框展示状态
+    getBettingCase(){
+        //console.log(this.$store.getters.getNoRoll,'aaaaa')
+        return this.$store.getters.getNoRoll
+    },
+  },
+
+  /**
+   * 监听器
+   */
+  watch: {
+    // 监听投注框开关
+    getIsBettingType(val) {
+      if(val=='-1'){
+        this.$store.dispatch('SET_NOROLL',false)
+      }
+      this.isBettingWindow = val;
+    },
+    getBettingCase(val){
+       this.getBettingIsShow=val
+    },
+  },
+
+  /**
+   * 
+   */
+  mounted() {
+    let ballId = this.$store.getters.getBallId;
+    let acty = this.$store.getters.getActivity;
+    if(acty == 'StRollBall'){
+      if(ballId == 'zq'){
+        this.headStatus = 1;
+      }else if(ballId == 'lq'){
+        this.headStatus = 2;
+      }else if(ballId == 'bq'){
+        this.headStatus = 3;
+      }else if(ballId == 'wq'){
+        this.headStatus = 4
+      }
+    }else{
+      this.headStatus = 0;
+    }
+    let _this = this;
+    this.match_id = this.$store.getters.getMatchId;
+    let oddsType = localStorage.getItem('activity');
+    this.$store.dispatch("GETSHOW", true);
+    this.getAjax(this.gameCode, this.match_id,oddsType);
+    //this.timers  =true;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax(_this.gameCode, _this.match_id,oddsType);
+       // _this.updateAjax(_this.gameCode, _this.match_id);
+      }else{
+        clearInterval(timing);
+      }
+    },(1000*15));
+    if (this.$store.getters.getIsBetting == '100') {
+      this.isBettingWindow = 100;
+    }
+  },
+
+  /**
+   * 关闭当前页面钩子函数
+   */
+  beforeDestroy() {
+    this.timers = false;
+  },
+  components: {
+    Corner,
+    LetBall,
+    Goal,
+    WaveBladder,
+    StLinkFooter,
+    SportsHead,
+    OnlyWin,
+    StartEnd,
+    GoalSize,
+    FullHalf,
+    GoalSingleAndDouble,
+    TeamGoalSize,
+    TeamSize,
+    Loading,
+    NotOpend,
+    BettingWindow,
+    TotalScoreSize,
+    TotalScoreSizeFive,
+    TotalScoreHalfSize,
+    TotalScoreSectionSize,
+    TeamScoreLast,
+    TotalScoreSingleDouble,
+    MatchChampion,
+    InningsSingleDouble,
+    InningsSize,
+    LetPlate,
+    LetBureau,
+    TennisWaveBravery
+  }
+};
+</script>
+
+<style scoped>
+/* 禁止滚动 */
+.noscoll{
+  position: fixed;
+   width: 100%;
+  top: 0;
+  left: 0;
+}
+/* 头部 */
+.Serch {
+  height: 0.88rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: linear-gradient(to bottom, #6a6a6a, #565656);
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.33rem;
+}
+.returnimg {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.1rem;
+}
+.Soccer-game-title {
+  height: 0.88rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  height: 0.88rem;
+  /* padding: 0 0.32rem; */
+  background-color: #626262;
+}
+.gambling {
+  background: #f8f8f8;
+}
+.leagueMatch {
+  position: relative;
+  padding: 0.3rem 0.32rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  flex-wrap: nowrap;
+  border-bottom: 1px solid #e4e4e4;
+  background: linear-gradient(to top, #ffe9c9, #fff3e2);
+}
+.leagueMatch div {
+  font-size: 0.28rem;
+  text-align: left;
+  color: #333333;
+}
+.leagueName {
+  width: 2.26rem;
+}
+.leagueMatch .teamName {
+  text-align: center;
+}
+.teamName .vs {
+  text-align: center;
+  font-size: 0.24rem;
+  color: #fd8f26;
+}
+.leagueMatch .time {
+  width: 1.3rem;
+  color: #333333;
+  font-size: 0.24rem;
+  text-align: center;
+}
+.leagueMatch .icon i {
+  display: inline-block;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../../../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+  transform: rotate(180deg);
+}
+.leagueMatch .rotate {
+  transform: rotate(180deg);
+  transition: 0.2s;
+}
+.leagueMatch .backRotate {
+  transform: rotate(0deg);
+  transition: 0.2s;
+}
+
+.box {
+  padding: 0 0.14rem;
+  background: #f8f8f8;
+}
+#NavSlide {
+  width: 100%;
+  overflow: hidden;
+  height: 0.88rem;
+}
+#NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.2rem 0 0;
+  margin: 0 0.1rem 0 0;
+  color: #b8b8b8;
+  height: 0.88rem;
+  line-height: 0.88rem;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+#NavSlide .fixadd {
+  position: absolute;
+  right: -4px;
+  background-color: #31c17b;
+}
+button.yd-btn-block {
+  background: #f8f8f8;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  /* z-index: -1; */
+  margin: 0;
+  opacity: 0;
+}
+.modality {
+  text-align: center;
+  background: #fbfbfb;
+  padding: 0.2rem 0;
+  height: 5rem;
+  /* overflow: hidden; */
+}
+.modality span {
+  color: #000000;
+  font-size: 0.28rem;
+}
+.modality div {
+  /* margin: 0.06rem 0; */
+  padding: 0.2rem 0;
+  background: #fbfbfb;
+  border-bottom: 1px solid #e4e4e4;
+}
+.modality div .col {
+  color: #fd8f26;
+}
+.lod{
+    z-index: 999;
+    position: fixed;
+    width: 100%;
+}
+/* 滚球足球头部 */
+/* 棒球头部 */
+.bqHead {
+  background: url("../../../assets/st-imges/1baseball.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.zqHead {
+  color: #fff;
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.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;
+  margin-right: 4px;
+}
+.current{
+  color: orange;
+}
+.session{
+  width:0.3rem;
+}
+.mark{
+  background: hsla(0, 0%, 100%, 0.25);
+}
+.scoreInfo{
+  line-height: 0.5rem;
+  padding: 0 0.1rem ;
+}
+.mg-session{
+  width:0.7rem;
+  
+}
+.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.28rem;
+}
+.match .info .pk,
+.match .tit .scene {
+  font-weight: bold;
+  color: rgb(254, 146, 0);
+}
+.tit .time {
+  color: #bd4700;
+}
+.tit span{
+  font-size: 0.26rem;
+}
+.welcome {
+  height: 0.36rem;
+  line-height: 0.36rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #4e4e4e;
+  color: black;
+}
+/* 篮球头部 */
+.header .match{
+    background: #c28d47;
+    background-image: url("../../../assets/st-imges/1basketball.png") no-repeat;
+    background-size: 100% 100%;
+    color: #fff;
+}
+.flex{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.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.85rem;
+    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;
+}
+/* 网球头部 */
+.tennisHead {
+  background: url("../../../assets/st-imges/tennisball.png") no-repeat;
+  background-size: 100% 100%;
+  width: 100%;
+  height: auto;
+}
+.ordinaryHead .match .info{
+  display: flex;
+}
+.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 .txt-c-0 {
+  color: orange;
+}
+.listHead .spanCol{
+  color: orange;
+}
+.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);
+  line-height: 0.4rem;
+  padding: 0 0.1rem;
+  color: #fff;
+}
+
+.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;
+}
+.ordinaryHead {
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+
+  /* padding: 0.04rem; */
+  /* height: 1.2rem; */
+  /* line-height: 1.2rem; */
+}
+.ordinaryHead .match {
+  color: #fff;
+}
+.ordinaryHead .match .info {
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.ordinaryHead .match .info div span{
+  font-size: 0.22rem;
+}
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.attack{
+  color: rgb(197, 210, 60);
+}
+</style>

二进制
.svn/pristine/0f/0f551c47321547e4bb452855f5ea08e78fd16168.svn-base


+ 148 - 0
.svn/pristine/10/103d5cfd70e0ad4ac5b8b918b863a9824da21939.svn-base

@@ -0,0 +1,148 @@
+<template>
+  <div>
+    <div class="tit">
+      <span style="font-size:.3rem;color:#fff; font-weight: bold;">{{title}}</span>
+    </div>
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+    <div class="charBox">
+      <div v-for="item in list" class="details" :key="item.id" @click="getMatchInfo(item.match_id)">
+        <div>
+          <span>{{item.name_chinese}}</span>
+        </div>
+        <div class="matchDtls">
+          <div>
+            <span>{{item.home_team}}</span>
+            <div>
+              <span>{{item.match_date}}</span>
+            </div>
+          </div>
+          <div>
+            <span>{{item.guest_team}}</span>
+            <div>
+              <span>{{item.match_time}}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import NotOpend from "@/components/StNotOpend";
+export default {
+  name: "",
+  components: { NotOpend },
+  data() {
+    return {
+      title: "特色赛事",
+      list: "",
+      noData: false,
+      info: "暂无相关特色赛事",
+      timers: true,
+      getIsShow: true
+    };
+  },
+  mounted() {
+    if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax();
+      } else {
+        clearInterval(timing);
+      }
+    },(1000*180));
+    this.getAjax();
+  },
+  methods: {
+    getMatchInfo(matchId) {
+      this.$router.push({
+        path: "/StRollBallBettingPage",
+        query: { gameCode: "zq", name: "足球" }
+      });
+      this.$store.dispatch("MACTH_ID", matchId);
+    },
+    getAjax: function() {
+      //this.$store.dispatch('GETSHOW',true);
+      this.$http.get(this.$ports.home.highMatch).then(res => {
+        // console.log('highMatch',res)
+        if (res.data.status == 1 && res.data.data.matchData.length > 0) {
+          this.list = res.data.data.matchData;
+          this.title = res.data.data.title;
+          this.noData = false;
+        } else {
+          this.noData = true;
+        }
+      });
+      let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+      }, 1000);
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style scoped lang="">
+.charBox {
+  margin-top: 0.24rem;
+  text-align: left;
+  background: #f8f8f8;
+  padding: 0.2rem 0.3rem;
+  margin: 0 auto;
+}
+.tit {
+  padding: 0.24rem 0;
+  padding: 0 0.3rem;
+  background: #a0a0a0;
+  font-size: 0.32rem;
+  line-height: 0.88rem;
+  height: 0.88rem;
+  color: #000000;
+}
+.details {
+  padding: 0.25rem 0.31rem;
+  background: #dcdcdc;
+  border-radius: 0.08rem;
+  margin-bottom: 0.2rem;
+}
+.details:nth-last-child(1) {
+  margin-bottom: 0;
+}
+.details div span {
+  font-size: 0.28rem;
+  color: #f76649;
+}
+.matchDtls {
+  margin-top: 0.12rem;
+}
+.matchDtls div {
+  position: relative;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.matchDtls div span {
+  color: #333333;
+  font-size: 0.28rem;
+}
+.matchDtls div div span {
+  font-size: 0.24rem;
+}
+.matchDtls i {
+  display: inline-block;
+  width: 0.08rem;
+  height: 0.08rem;
+  position: absolute;
+  right: 0;
+  top: 0;
+  background: #000;
+}
+</style>

+ 418 - 0
.svn/pristine/11/1159eb42f79cb432c8713af15146f47857091217.svn-base

@@ -0,0 +1,418 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-31 11:33:57
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item :title="ballType == 'lq' ? '让分' :'让球'" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code == 'coh' || item.odds_code == 'cog'">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code =='coh' ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      
+      <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item title="让球-上半场" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('_h') ">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.startsWith('coh') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-上半场',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item title="让球-第一节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('1')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.startsWith('coh')? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第一节',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item title="让分-第二节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('2')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.startsWith('coh') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第二节',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item title="让分-第三节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('3')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.startsWith('coh') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第三节',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item title="让分-第四节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('4')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.startsWith('coh') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第四节',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.g">
+        <yd-accordion>
+          <yd-accordion-item title="让球-前五局" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.endsWith('5')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.startsWith('coh') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.startsWith('coh') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-前五局',item.oddsType)"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+// import BettingWindow from "@/components/StBettingWindow";
+export default {
+  data() {
+    return {
+      title: "CO",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      obj:'',//
+      lg_id:'',
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000, //对应的数据的下标
+      ballType:'zq',				
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        odds_id:id,
+        lg_id:this.lg_id,
+        oddsType
+      };
+      // if(this.$store.getters.getLimit * 1 >= 10){
+      //    this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+      // }
+      // if (isAdd) {
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          //console.log(data, val,type);
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+
+        }
+      );
+      // }
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        // if(e.odds_code.startsWith('co') && (e.odds_code.endsWith('g')||e.odds_code.endsWith('h'))){
+          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 
+      })
+    },
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.ballType = this.$store.getters.getBallId
+          //console.log("更新数据", res);
+          this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+  // component:{BettingWindow},
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.small {
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+  padding-left: 0.16rem;
+}
+.odds {
+  background: #f4f4f4;
+  text-align: left;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.score {
+  color: #f76649;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+</style>

+ 2 - 0
.svn/pristine/12/12a7646e951c3b62328da371085dfabaf926aab2.svn-base

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

+ 248 - 0
.svn/pristine/12/12b49f3f733c26dc35662743344c5a58cafe88d1.svn-base

@@ -0,0 +1,248 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <!-- 主队 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="total_title" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+              <div v-if="item.odds_code.endsWith('big')"  v-for=" (item,index) in data" class="row allAlignment center ">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+
+            <div class="column  width-box ">
+              <div v-if="item.odds_code.endsWith('small')"  v-for=" (item,index) in data"   class="row allAlignment center ">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "total_size",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      total_title:'总得分:大/小-上半场',
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: this.title,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name:this.total_title,
+        lg_id: this.lg_id,
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //子玩法分类
+    removeHeavy(data){
+        this.data = [];
+        data.forEach(e=>{
+           let index = e.odds_code.lastIndexOf('_');
+           let str=  e.odds_code.slice(0,index)  
+
+          if("half_total_sizes" == str){
+            this.isDisplay = true;  
+            this.data.push(e)
+          }
+        })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+            this.removeHeavy(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

+ 276 - 0
.svn/pristine/12/12c21f24d580d1b942c167a592f4ba34f4d60081.svn-base

@@ -0,0 +1,276 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <yd-accordion>
+        <!-- 组件标题 -->
+        <yd-accordion-item class="Match-game" title="总进球数" open>
+          <div v-for="item in data" :key="item.id" class="list-row" v-if="!item.odds_code.startsWith('half')">
+            <span class="The-club">{{ item.condition }}</span>
+            <span v-if="item.odds >0" class="The-club-box" :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+              @click="bettingBtn(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总进球数',item.condition,item.oddsType)"
+            >{{ item.odds }}</span>
+            <div v-else  class="ratio column center">
+              <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <!-- </div> -->
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+      <yd-accordion>
+        <!-- 组件标题 -->
+        <yd-accordion-item class="Match-game" title="总进球数-上半场" open>
+          <div v-for="item in data" :key="item.id" class="list-row" v-if="item.odds_code.startsWith('half')">
+            <span class="The-club">{{ item.condition }}</span>
+            <span v-if="item.odds >0" class="The-club-box" :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+              @click="bettingBtn(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'总进球数-上半场',item.condition,item.oddsType)"
+            >{{ item.odds }}</span>
+            <div v-else  class="ratio column center">
+              <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <!-- </div> -->
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "total_goal",
+      data: [],
+      home_team: "", //主队
+      match_id: "",
+      guest_team: "", //客队
+      score: "0,0", //比分
+      lg_id: "",
+      isDisplay: false, //是否显示
+      betting: [], //获取vuex本组件类已投注倍率数据集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(
+      id,
+      name,
+      odds,
+      odds_only,
+      p_code,
+      match_id,
+      odds_code,
+      play_name,
+      condition = "",
+      oddsType,
+      bettingTime = ""
+    ) {
+      
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name:'',
+        odds,
+        condition,
+        ballId: this.$store.getters.getBallId,
+        p_code,
+        match_id,
+        odds_code,
+        play_name,
+        score: this.score,
+        lg_id: this.lg_id,
+        odds_id: id,
+        bettingTime,
+        odds_only,
+        oddsType
+      };
+      // console.log(this.data,'bbb')
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val, type) {
+          if (type) {
+            _this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if (_this.$store.getters.getIsBetting == "100") return false;
+          _this.$store.dispatch("ISBETTING", "100");
+        }
+      );
+    },
+    //数据排序处理
+    dataSorting(data){
+      data.sort(function(a,b){
+        return a.condition.substring(0,1)*1-b.condition.substring(0,1)*1
+      })
+      this.data= data;
+      // console.log(data);
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    /*------------------------------------------------------------ */
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    /*------------------------------------------------------------ */
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    /*------------------------------------------------------------ */
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      //console.log("更新数据", val);
+      if (!val) return false;
+      let _this = this;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.dataSorting(res);
+          // console.log(res);
+          // this.data = res;
+        }
+      });
+      this.$public.getBettingId(
+        this.$store.getters.getBetting,
+        this.title,
+        function(data, index) {
+          _this.betting = data;
+          _this.dataNum = index;
+        }
+      );
+      // console.log('总进球数',this.dataNum);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    /*------------------------------------------------------------ */
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  font-size: 0.28rem;
+  color: #fefefe;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+/* 
+.Match-game-stat {
+  position: absolute;
+  right: 1.35rem;
+  color: #fd8f26;
+  font-size: 0.23rem;
+}*/
+.Match-game {
+  position: relative;
+}
+.list-row {
+  display: flex;
+  justify-content: space-between;
+  height: 0.87rem;
+  background: #f4f4f4;
+  border-bottom: 1px solid #e4e4e4;
+  align-items: center;
+  padding: 0 0.32rem;
+}
+
+.The-club {
+  font-size: 0.26rem;
+}
+.The-club-box {
+  display: inline-block;
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: center;
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin-right: 0.1rem;
+}
+.active {
+  background: #f76649;
+  color: #f4f4f4;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

+ 367 - 0
.svn/pristine/13/13a14d8ef8a853cbd8b9683ee2d4aa117c51f3d2.svn-base

@@ -0,0 +1,367 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 16:35:56
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <!-- 主队 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="home_team+'进球:大小'" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('big')&&  -->
+              <div v-if="item.odds_code.startsWith('tbhb')"  v-for=" (item,index) in data" class="row allAlignment center " style="border-right: 1px solid #e4e4e4">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('small') &&  -->
+              <div v-if="item.odds_code.startsWith('tbhs')"  v-for=" (item,index) in data"   class="row allAlignment center">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    
+      <!-- 主队上半场 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="home_team+'进球:大小-上半场'" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="width-box">
+              <!-- && item.odds_code.startsWith('half_home') -->
+              <div v-if="item.odds_code.startsWith('tbhb_h')"  v-for=" (item,index) in data" class="row allAlignment center " style="border-right: 1px solid #e4e4e4">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小-上半场',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+               <!-- && item.odds_code.startsWith('half_home') -->
+              <div v-if="item.odds_code.startsWith('tbhs_h')"  v-for=" (item,index) in data"   class="row allAlignment center ">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小-上半场',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+  
+      <!-- 客队 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="guest_team +'进球:大小'" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('tbgb')&&  -->
+              <div v-if="item.odds_code.startsWith('tbgb')"  v-for=" (item,index) in data" class="row allAlignment center " style="border-right: 1px solid #e4e4e4">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('small') &&  -->
+              <div v-if="item.odds_code.startsWith('tbgs')"  v-for=" (item,index) in data"   class="row allAlignment center ">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+
+
+
+      <!-- 客队上半场 -->
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="guest_team+'进球:大小-上半场'" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('big')&&  -->
+              <div v-if="item.odds_code.startsWith('tbgb_h')"  v-for=" (item,index) in data" class="row allAlignment center" style="border-right: 1px solid #e4e4e4">
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小-上半场',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('small') &&  -->
+              <div v-if="item.odds_code.startsWith('tbgs_h')"  v-for=" (item,index) in data"   class="row allAlignment center">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球:大小-上半场',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "TB",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        lg_id: this.lg_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+          // console.log(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f4f4f4;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

+ 407 - 0
.svn/pristine/14/1466489239e47478d41968033cf63053ad8e47f7.svn-base

@@ -0,0 +1,407 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item title="让球" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code == 'concede_home' || item.odds_code == 'concede_guest'">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code =='concede_home' ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      
+      <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item title="让球-上半场" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('half') ">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.endsWith('home') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-上半场')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item title="让球-第一节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('one')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.endsWith('home')? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第一节')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item title="让球-第二节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('two')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{item.odds_code.endsWith('home') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第二节')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item title="让球-第三节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('three')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.endsWith('home') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第三节')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item title="让球-第四节" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('four')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.endsWith('home') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-第四节')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.g">
+        <yd-accordion>
+          <yd-accordion-item title="让球-前五局" open>
+            <div v-for="(item,index) in data" :accordion="true" :key="index">
+              <div v-if="item.odds_code.startsWith('five')">
+                <div style="padding:0 0.32rem;" class="odds">
+                  <div class="row allAlignment center small">
+                    <span>{{ item.odds_code.endsWith('home') ? home_team :guest_team}}</span>
+                    <div v-if="item.odds >0" class="ratio column center"
+                      @click="bettingBtn(item.id,item.odds_code.endsWith('home') ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-前五局')"
+                      :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                    >
+                      <span class="score">{{item.condition}}</span>
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+// import BettingWindow from "@/components/StBettingWindow";
+export default {
+  data() {
+    return {
+      title: "concede",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      obj:'',//
+      lg_id:'',
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        odds_id:id,
+        lg_id:this.lg_id,
+      };
+      // if(this.$store.getters.getLimit * 1 >= 10){
+      //    this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+      // }
+      // if (isAdd) {
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          //console.log(data, val,type);
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+
+        }
+      );
+      // }
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code.startsWith('concede')){
+          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')){
+          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 
+      })
+    },
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          //console.log("更新数据", res);
+          this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+  // component:{BettingWindow},
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.small {
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+  padding-left: 0.16rem;
+}
+.odds {
+  background: #f4f4f4;
+  text-align: left;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.score {
+  color: #f76649;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+</style>

文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/14/148623a78e392fc5614d3b29a2713e3054bcc26c.svn-base


+ 919 - 0
.svn/pristine/15/1507612659b0bfd86ee60e8aba7c4d773b3c4ec0.svn-base

@@ -0,0 +1,919 @@
+<template>
+  <div>
+    <div v-if="isDisplay.a">
+      <!-- 主队 -->
+      <yd-accordion>
+        <yd-accordion-item class="Match-game" :title="home_team+'球队得分:大小'" open>
+          <div class="row allAlignment center rowBox">
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('big')&&  -->
+              <div
+                v-if="item.odds_code == 'tbhb'"
+                v-for=" (item,index) in data"
+                class="row allAlignment center"
+                style="border-right: 1px solid #e4e4e4"
+              >
+                <span>大</span>
+                <div
+                  v-if="item.odds >0"
+                  class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                  <img />
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('small') &&  -->
+              <div
+                v-if="item.odds_code == 'tbhs'"
+                v-for=" (item,index) in data"
+                class="row allAlignment center"
+              >
+                <span style="padding-left: 0.2rem;">小</span>
+                <div
+                  v-if="item.odds >0"
+                  class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                  <img />
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+    <div v-if="isDisplay.b">
+      <!-- 客队 -->
+      <yd-accordion>
+        <yd-accordion-item class="Match-game" :title="guest_team +'球队得分:大小'" open>
+          <div class="row allAlignment center rowBox">
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('tbgb')&&  -->
+              <div
+                v-if="item.odds_code == 'tbgb'"
+                v-for=" (item,index) in data"
+                class="row allAlignment center"
+                style="border-right: 1px solid #e4e4e4"
+              >
+                <span>大</span>
+                <div
+                  v-if="item.odds >0"
+                  class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                  <img />
+                </div>
+              </div>
+            </div>
+            <div class="width-box">
+              <!-- item.odds_code.endsWith('small') &&  -->
+              <div
+                v-if="item.odds_code == 'tbgs'"
+                v-for=" (item,index) in data"
+                class="row allAlignment center"
+              >
+                <span style="padding-left: 0.2rem;">小</span>
+                <div
+                  v-if="item.odds >0"
+                  class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小',item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                  <img />
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+    <div v-if="isDisplay.c">
+        <!-- 主队上半场 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="home_team+'球队得分:大小-上半场'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- && item.odds_code.startsWith('half_home') -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhb_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- && item.odds_code.startsWith('half_home') -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhs_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div  v-if="isDisplay.d">
+        <!-- 客队上半场 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="guest_team+'球队得分:大小-上半场'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgb_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgs_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.e">
+        <!-- 主队第一节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="home_team+'球队得分:第一节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhb_1')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhs_1')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.f">
+        <!-- 客队第一节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="guest_team+'球队得分:第一节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgb_1')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgs_1')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.g">
+        <!-- 主队第二节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="home_team+'球队得分:大小-第二节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhb_2')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhs_2')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.h">
+        <!-- 客队第二节  -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="guest_team+'球队得分:大小-第二节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgb_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgs_h')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.i">
+        <!-- 主队第三节  -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="home_team+'球队得分:大小-第三节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhb_3')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhs_3')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.j">
+        <!-- 客队第三节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="guest_team+'球队得分:大小-第三节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgb_3')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgs_3')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.k">
+        <!-- 主队第四节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="home_team+'球队得分:大小-第四节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhb_4')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbhs_4')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div  v-if="isDisplay.l">
+        <!-- 客队第四节 -->
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" :title="guest_team+'球队得分:大小-第四节'" open>
+            <div class="row allAlignment center rowBox">
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('big')&&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgb_4')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                  style="border-right: 1px solid #e4e4e4"
+                >
+                  <span>大</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+              <div class="width-box">
+                <!-- item.odds_code.endsWith('small') &&  -->
+                <div
+                  v-if="item.odds_code.startsWith('tbgs_4')"
+                  v-for=" (item,index) in data"
+                  class="row allAlignment center"
+                >
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div
+                    v-if="item.odds >0"
+                    class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'球队得分:大小-上半场',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+   
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "TB",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(
+      id,
+      name,
+      odds,
+      odds_only,
+      p_code,
+      match_id,
+      condition,
+      odds_code,
+      play_name,
+      oddsType,
+      bettingTime = ""
+    ) {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        lg_id: this.lg_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val, type) {
+          if (type) {
+            _this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if (_this.$store.getters.getIsBetting == "100") return false;
+          _this.$store.dispatch("ISBETTING", "100");
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code == 'tbhb' || e.odds_code == 'tbhs'){
+          obj.a = true;
+        }else if(e.odds_code == 'tbgb' || e.odds_code == 'tbgs'){
+          obj.b = true;
+        }else if(e.odds_code == 'tbhb_h' || e.odds_code == 'tbhs_h'){
+          obj.c = true;
+        }else if(e.odds_code == 'tbgb_h' || e.odds_code == 'tbgs_h'){
+          obj.d = true;
+        }else if(e.odds_code == 'tbhb_1' || e.odds_code == 'tbhs_1'){
+          obj.e = true;
+        }else if(e.odds_code == 'tbgb_1' || e.odds_code == 'tbgs_1'){
+          obj.f = true;
+        }else if(e.odds_code == 'tbhb_2' || e.odds_code == 'tbhs_2'){
+          obj.g = true;
+        }else if(e.odds_code == 'tbgb_2' || e.odds_code == 'tbgs_2'){
+          obj.h = true;
+        }else if(e.odds_code == 'tbhb_3' || e.odds_code == 'tbhs_3'){
+          obj.i = true;
+        }else if(e.odds_code == 'tbgb_3' || e.odds_code == 'tbgs_3'){
+          obj.j = true;
+        }else if(e.odds_code == 'tbhb_4' || e.odds_code == 'tbhs_4'){
+          obj.k = true;
+        }else if(e.odds_code == 'tbgb_4' || e.odds_code == 'tbgs_4'){
+          obj.l = true;
+        }
+        //this.obj = obj 
+      })
+      this.isDisplay = obj;
+      // console.log(this.isDisplay);
+    }
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          //this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+          //console.log(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f4f4f4;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span {
+  color: #f4f4f4 !important;
+}
+.spanCol {
+  color: #f76649;
+}
+</style>

二进制
.svn/pristine/15/156f147886f97897089decf79963671140386fc3.svn-base


+ 241 - 0
.svn/pristine/16/16031d3e18005026fadcd29f37aa6a78ff956140.svn-base

@@ -0,0 +1,241 @@
+<template>
+  <div>
+    <div class="title" v-if="isShow">
+      <span style="font-size:.28rem;color:#F76649;">{{titel}}</span>
+    </div>
+    <div
+      v-for="(item,id) in data"
+      @click="getInfo(id,item.match_id,item.game_code)"
+      class="macth row allAlignment"
+      :key="id"
+      v-if="isShow"
+    >
+      <div class="row">
+        <div class="column allAlignment center">
+          <div class="score-icon row center">
+            <span style=" margin:0.07rem; ">{{item.home_score}}</span>
+          </div>
+          <div class="score-icon row center">
+            <span style=" margin:0.07rem; ">{{item.guest_score}}</span>
+          </div>
+        </div>
+        <div class="team-box column allAlignment">
+          <span class="teamName">{{item.home_team}}</span>
+          <span style="font-size:0.2rem;padding:0.06rem 0 ;">vs</span>
+          <span class="teamName">{{item.guest_team}}</span>
+        </div>
+      </div>
+      <div class="row">
+        <div class="column allAlignment center">
+          <span class="macth-time" v-if="item.game_code != 'lq'">{{item.match_process}}</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == 'Q1'">第一节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == 'Q2'">第二节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == 'Q3'">第三节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == 'Q4'">第四节</span>
+          <img src="../assets/st-imges/stadium.png" alt>
+          <span class="macth-time">{{item.a_time ? item.a_time :'00:00'}}  </span>
+        </div>
+      </div>
+    </div>
+    <div class="rolling" v-if="isShow">
+      <RollingBall :ballName="ball.name" :bm='bm' :name="name" :index="ball.index" :gameCode="gameCode"></RollingBall>
+    </div>
+  </div>
+</template>
+<script>
+import "../css/index.css";
+import RollingBall from "./StRollingBall";
+import Loading from "./StLoading";
+export default {
+  name: "BasketballBlock",
+  props: ["type"],
+  data() {
+    return {
+      titel: "",
+      timer: [], //存储时间
+      idx: "",
+      isShow: false,
+      gameCode: "", //球类别名
+      name: "", //球类名称传值
+      bm: "gq",
+      ball: {
+        name: "",
+        index: ""
+      },
+      data: "",
+      timers: true, // 定时器
+      getIsShow:true
+    };
+  },
+  components: {
+    RollingBall,
+    Loading
+  },
+  methods: {
+    getInfo: function(val, match_id,game_code) {
+      this.$store.dispatch("GETACTIVITY", "StRollBall");
+      //onsole.log("id", val);
+      this.$router.push({
+        path: "./StRollBallBettingPage",
+        query: {
+          gameCode: this.gameCode,
+          status: 1,
+          number: 0,
+          home: true,
+          name: this.titel
+        }
+      });
+      this.$store.dispatch('GET_BALL_ID',game_code)
+      this.$store.dispatch("MACTH_ID", match_id);
+    },
+    getAjax: function(data) {
+      if(!data.matchData) return false;
+      let _this = this;
+      if (this.type == 1) {
+        let matchDtat_leng = data.matchData.length;
+        if(matchDtat_leng < 0) return false;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.name = this.titel;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.ball.index = data.matchData.length;
+        this.gameCode = data.game_code;
+        // let [f, s] = this.data[0].match_time.split(":");
+        
+        // _this.data.forEach(val => {
+        //   if (val.match_time != "") {
+        //     let [f, s] = val.match_time.split(":");
+        //     this.$public.timer(f, s, function(f, s) {
+        //       val.match_time = f + ":" + s;
+        //     });
+        //   }
+        // });
+
+      } else if (this.type == 2) {
+        let matchDtat_leng = data.matchData.length;
+        if(matchDtat_leng < 0) return false;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }        
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }        
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.name = this.titel;
+        this.ball.index = this.data.length;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.gameCode = data.game_code;
+
+      } else if (this.type == 3) {
+        let matchDtat_leng = data.matchData.length;
+        if(matchDtat_leng < 0 ) return false;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }        
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }            
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.ball.index = this.data.length;
+        this.name = this.titel;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.gameCode = data.game_code;    
+      }
+     
+      setTimeout(()=>{
+        _this.$store.dispatch("GETSHOW", false);
+      },1000)
+      
+    }
+  },
+    /**
+   * 计算属性
+   */
+  computed: {
+    getHomeRollBall() {
+      return this.$store.getters.getHomeRollBall;
+    },
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getHomeRollBall(val){
+      if(this.type == 1){
+        this.getAjax(val.zqData);
+      }else if(this.type == 2){
+       this.getAjax(val.lqData);
+      }else if(this.type == 3){
+        this.getAjax(val.bqData);
+      }
+    }
+  },
+  mounted() {
+    if(this.getIsShow){
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    } 
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style scoped>
+/* .box{
+        border-bottom: 1px soild  red;
+    } */
+.macth {
+  height: 1.76rem;
+  margin-top: 0.2rem;
+  color: #333333;
+  background: #dcdcdc;
+  border-radius: 0.08rem;
+  /* border:2px solid #CECECE; */
+  padding: 0.24rem;
+  font-size: 0.22rem;
+}
+.score-icon {
+  min-width: 0.66rem;
+  background: #f76649;
+  border-radius: 0.17rem;
+  color: #f5f5f5;
+  font-size: 0.2rem;
+}
+.teamName {
+  font-size: 0.26rem;
+}
+.team-box {
+  margin-left: 0.29rem;
+  max-width: 3.4rem;
+}
+.macth-time {
+  font-size: 0.24rem;
+}
+.title {
+  padding-top: 0.1rem;
+  margin: 0.1rem 0;
+  font-size: 0.28rem;
+  color: #000000;
+}
+.rolling {
+  padding-top: 0.41rem;
+  padding-bottom: 0.46rem;
+}
+</style>
+
+

+ 10426 - 0
.svn/pristine/16/1619d070478060ab7ee359383e5b39910d57bdd3.svn-base

@@ -0,0 +1,10426 @@
+{
+  "name": "vue_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
+    },
+    "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=",
+      "dev": true
+    },
+    "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-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=",
+      "dev": true,
+      "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=",
+      "dev": true
+    },
+    "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="
+    },
+    "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
+    },
+    "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
+        },
+        "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
+        },
+        "brace-expansion": {
+          "version": "1.1.11",
+          "bundled": 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
+        },
+        "concat-map": {
+          "version": "0.0.1",
+          "bundled": true
+        },
+        "console-control-strings": {
+          "version": "1.1.0",
+          "bundled": 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
+        },
+        "ini": {
+          "version": "1.3.5",
+          "bundled": true,
+          "optional": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "1.0.0",
+          "bundled": true,
+          "requires": {
+            "number-is-nan": "^1.0.0"
+          }
+        },
+        "isarray": {
+          "version": "1.0.0",
+          "bundled": true,
+          "optional": true
+        },
+        "minimatch": {
+          "version": "3.0.4",
+          "bundled": true,
+          "requires": {
+            "brace-expansion": "^1.1.7"
+          }
+        },
+        "minimist": {
+          "version": "0.0.8",
+          "bundled": true
+        },
+        "minipass": {
+          "version": "2.3.5",
+          "bundled": 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,
+          "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
+        },
+        "object-assign": {
+          "version": "4.1.1",
+          "bundled": true,
+          "optional": true
+        },
+        "once": {
+          "version": "1.4.0",
+          "bundled": 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
+        },
+        "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,
+          "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,
+          "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
+        },
+        "yallist": {
+          "version": "3.0.3",
+          "bundled": 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"
+      }
+    },
+    "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=",
+      "dev": true
+    },
+    "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="
+    },
+    "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
+    },
+    "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
+        }
+      }
+    }
+  }
+}

二进制
.svn/pristine/16/1678c8aed64e5372b7a918f7c5b961ad1bdc1f2a.svn-base


+ 1174 - 0
.svn/pristine/16/168d3617ac9bad39c99ae18a44828c999f3bfcd4.svn-base

@@ -0,0 +1,1174 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:23
+ * @LastEditTime: 2019-08-31 11:22:31
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div :class="getBettingIsShow?'noscoll':''">
+    <div class="lod">
+      <Loading></Loading>
+    </div>
+    <div>
+      <SportsHead></SportsHead>
+      <div class="Serch">
+        <div class="Soccer-game row center">
+          <div class="Soccer-game-title row center" @click="isreturn()">
+            <img class="returnimg" :src="searchreturn">
+            {{name}}
+          </div>
+        </div>
+      </div>
+      <!-- 足球头部 -->
+      <div class="bqHead zqHead" v-if="headStatus == 1">
+        <div class="pd-10">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+              <div>
+                <!-- <span v-if="list.match_time" class="scene">{{list.match_time.split(' ')[0]}} </span>
+                &nbsp; -->
+                <span  v-if="list.match_time" class="time">{{list.match_ptime ?  list.match_ptime : list.match_time.split(' ')[0]}}</span>
+              </div>
+            </div>
+            <div class="info">
+              <span>{{list.home_team}}</span>
+              <span class="live-score">{{list.match_score ? list.match_score :'0-0'}}</span>
+              <span>{{list.guest_team}}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 篮球头部 -->
+            <!-- 篮球头部 -->
+        <div class="header" v-if="headStatus == 2">
+          <div class=" match">
+            <div class="live">
+              <div class="tit">{{list.leagueName}}</div>
+                <div class="info">
+                <div class="infoBody flex">
+                  <div class="matchTime" style="width:25%;">
+                    <span class="scene">第四节</span>
+                    <span class="time">00:00</span>
+                  </div> 
+                  <div class="flex" style="width:75%;">
+                    <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:25%;">
+                      <span class="team">{{list.home_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div class="infoNum">22</div>
+                      <div class="infoNum">8</div>
+                      <div class="infoNum">13</div>
+                      <div class="infoNum col">13</div>
+                      <div class="infoNum"></div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">54</div>
+                    </div>
+                  </div>
+                  <div class="infoItem flex">
+                    <div style="width:25%;">
+                      <span class="team">{{list.guest_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div class="infoNum">22</div>
+                      <div class="infoNum">8</div>
+                      <div class="infoNum">13</div>
+                      <div class="infoNum col">13</div>
+                      <div class="infoNum"></div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">54</div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      <!-- 棒球头部 -->
+      <div class="tennisHead" v-if="headStatus == 3">
+        <div style="padding:0.1rem;">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+            </div>
+            <div class="ballTable">
+              <div class="listHead row allAlignment">
+                <div class="txt-c-0">
+                  <div class="section">{{matchScoreDetails.schedule}}
+                    <span v-if="matchScoreDetails.type == 'h'">▲</span> 
+                    <span v-else>▼</span>
+                    <!-- <span>▲</span> -->
+                  </div>
+                </div>
+                <div class="row ">
+                  <span class="session row center" v-for="(tiem,i) in 9" :key="tiem.id">
+                    {{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" style="width:0.85rem;">总局数</span>
+                </div>
+              </div>
+
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold " :class="{attack:matchScoreDetails.type == 'h'}">•</div>
+                  <div class="team" style="text-align:left;">{{ list.home_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"
+                   class="session row center">{{matchScoreDetails.sc_1th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}" 
+                  class="session row center">{{matchScoreDetails.sc_2th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}" 
+                  class="session row center ">{{matchScoreDetails.sc_3th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}" 
+                  class="session row center">{{matchScoreDetails.sc_4th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}" 
+                  class="session row center">{{matchScoreDetails.sc_5th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}" 
+                  class="session row center">{{matchScoreDetails.sc_6th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}" 
+                  class="session row center">{{matchScoreDetails.sc_7th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}" 
+                  class="session row center">{{matchScoreDetails.sc_8th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}" 
+                  class="session row center">{{matchScoreDetails.sc_9th_H}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_H}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_H}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_H}}</span>
+                </div>
+              </div>
+              
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold" :class="{attack:matchScoreDetails.type == 'g'}">•</div>
+                  <div class="team" style="text-align:left;">{{list.guest_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"  class="session row center">{{matchScoreDetails.sc_1th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}"  class="session row center">{{matchScoreDetails.sc_2th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}"  class="session row center">{{matchScoreDetails.sc_3th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}"  class="session row center">{{matchScoreDetails.sc_4th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}"  class="session row center">{{matchScoreDetails.sc_5th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}"  class="session row center">{{matchScoreDetails.sc_6th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}"  class="session row center">{{matchScoreDetails.sc_7th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}"  class="session row center">{{matchScoreDetails.sc_8th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}"  class="session row center">{{matchScoreDetails.sc_9th_C}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_C}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_A}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_C}}</span>
+                </div>
+              </div>
+               <div class="listHead row allAlignment"> 
+                  <div class="row center">
+                    <div  class="eliminate ">
+                      <span :class="{spanBox:matchScoreDetails.baseman_2 !='N'}" style="margin-left:.11rem;"></span>
+                      <div style="width:.31rem;" class="row allAlignment">
+                        <span :class="{spanBox:matchScoreDetails.baseman_3 !='N'}"></span>
+                        <span :class="{spanBox:matchScoreDetails.baseman_1  !='N'}"></span>
+                      </div>
+                    </div>
+                  </div>
+                 <div>
+                   <span>出局:</span>
+                   <span>{{matchScoreDetails.out_game_num}}</span>
+                 </div>
+               </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 网球头部 -->
+      <div class="tennisHead" style="padding:0.1rem;" v-if="headStatus == 4">
+        <div class="ballTable">
+          <div class="txt" style=" color:#fff">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="listHead row allAlignment">
+            <div class="txt">
+              <!-- <div class="spanCol">第{{scoreDetails.cp == 1?'一' : scoreDetails.cp ==2 ? "二": scoreDetails.cp ==3 ? "三":scoreDetails.cp== 4 ? "四":"五" }}节</div> -->
+              <div class="spanCol">第一节</div>
+              <!-- <div class="delay">天气原因延期</div> -->
+            </div>
+            <div class="headerTop row rightAlignment">
+              <span  v-for="(item,i) in 5" :key="item.id">{{i+1}}</span>
+              <span class="mg-5">分数</span>
+              <span class="mg-5">盘</span>
+              <span class="mg-5" style="width:0.8rem;">总局</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;">{{list.home_team}}</div>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">6</span>
+              <span class="spanCol">3</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">40</span>
+              <span class="mg-5 mark">0</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem">4</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;">{{list.guest_team}}</span>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">2</span>
+              <span class="spanCol">2</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">40</span>
+              <span class="mg-5 mark">0</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem;">2</span>
+            </div>
+          </div>
+          <div></div>
+        </div>
+        <!-- </div>
+        </div>-->
+      </div>
+
+    <!-- 原始头部 -->
+      <div class="gambling" v-show="this.list" v-if="headStatus == 0">
+        <div class="leagueMatch row average">
+          <yd-button size="large" @click.native="show = true"></yd-button>
+          <div class="leagueName">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="teamName">
+            <span>{{list.home_team}}</span>
+            <div class="vs">vs</div>
+            <span>{{list.guest_team}}</span>
+          </div>
+          <div class="time" :style="status == true?'':'width:2rem;'">
+            <span>{{list.match_ptime? list.match_ptime :list.match_time }}</span>
+          </div>
+          <div v-if="satatus" class="icon" :class="status == true ? 'rotate':'backRotate'">
+            <i></i>
+          </div>
+        </div>
+        <!-- 模态框 -->
+        <yd-popup v-if="satatus" v-model="show" position="center" width="90%">
+          <div class="modality">
+            <div
+              class="list"
+              v-for="(item,index) in list.league"
+              :key="index"
+              @click="check(index,item.match_id)"
+            >
+              <span :class="match_id == item.match_id?'col':''">{{item.home_team}}</span>
+              <span :class="match_id == item.match_id?'col':''">v</span>
+              <span :class="match_id == item.match_id?'col':''">{{item.guest_team}}</span>
+            </div>
+          </div>
+        </yd-popup>
+      </div>
+      <div class="box">
+          <div id="NavSlide">
+            <nav>
+              <p v-for="(item,$index) in key" @click="toggleNav($index)" :key="$index">
+                <span :class="{active:$index==active}">{{item}}</span>
+              </p>
+            </nav>
+          </div>
+        </div>
+      <div v-show="isShow">
+        <!--让球大小-->
+        <div v-show="Single =='进球:大/小' || isAll  ">
+          <goal></goal>
+        </div>
+        <!--让球1-->
+        <div v-show="Single =='让球' || isAll  ">
+          <LetBall></LetBall>
+        </div>
+        <!--最先/最后进球-->
+        <div v-show="Single =='首粒入球/最后一粒入球' || isAll  ">
+          <StartEnd></StartEnd>
+        </div>
+        <!-- 总进球数 -->
+        <div v-show="Single =='总进球数' || isAll  ">
+          <GoalSize></GoalSize>
+        </div>
+        <!-- 根据球类加载独赢/冠军 -->
+        <div v-if="name =='篮球' || name =='棒球' || name =='足球'">
+          <!--独赢-->
+          <div v-show="Single =='独赢'|| Single =='独赢盘'|| isAll  ">
+            <OnlyWin></OnlyWin>
+          </div>
+        </div>
+        <div v-else>
+          <!-- 冠军 -->
+          <div v-show="Single =='冠军' || isAll ">
+            <MatchChampion></MatchChampion>
+          </div>
+        </div>
+        <!--独赢-->
+        <!-- <div v-show="Single =='独赢'|| Single =='独赢盘'|| isAll  ">
+          <OnlyWin></OnlyWin>
+        </div> -->
+        <!-- 波胆 -->
+        <div v-show="Single =='波胆' || isAll  ">
+          <div v-if="name == '网球'">
+            <TennisWaveBravery/>
+          </div>
+          <div v-else>
+             <WaveBladder></WaveBladder>
+          </div>
+        </div>
+        <!--入球数单双-->
+        <div v-show="Single =='进球:单/双'||  Single =='总分:单/双' || isAll  ">
+          <div v-if="name =='篮球' || name =='棒球'">
+           <TotalScoreSingleDouble/>
+          </div>
+          <div v-else>
+            <GoalSingleAndDouble></GoalSingleAndDouble>
+          </div>
+        </div>
+        <!--半场/全场-->
+        <div v-show="Single =='半场/全场'|| isAll  ">
+          <FullHalf></FullHalf>
+        </div>
+        <!-- 角球
+        <div v-show="Single =='角球' || isAll ">
+          <Corner></Corner>
+        </div> -->
+        <!-- 球队进球大小 -->
+        <div v-show="Single =='球队进球数:大/小' || isAll ">
+          <TeamGoalSize></TeamGoalSize>
+        </div>
+        <!-- 总得分:大/小 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSize></TotalScoreSize>
+        </div>
+        <!-- 总得分:大/小 前五 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSizeFive></TotalScoreSizeFive>
+        </div>
+        <!-- 总得分:大/小 上半场 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreHalfSize></TotalScoreHalfSize>
+        </div>
+        <!-- 总得分:大/小  节数-->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSectionSize></TotalScoreSectionSize>
+        </div>
+        <!-- 球队得分最后一位数 -->
+        <div v-show="Single =='球队得分最后一位数' || isAll ">
+          <TeamScoreLast></TeamScoreLast>
+        </div>
+        <!-- 总局数:大/小 -->
+        <div v-show="Single =='总局数:大/小' || isAll ">   
+          <InningsSize></InningsSize>
+        </div>
+        <!-- 总局数:单/双 -->
+        <div v-show="Single =='总局数单双' || isAll ">
+          <InningsSingleDouble></InningsSingleDouble>
+        </div>
+        <!-- 冠军 -->
+        <!-- <div v-show="Single =='冠军' || isAll ">
+          <MatchChampion></MatchChampion>
+        </div> -->
+         <!-- 让盘 -->
+        <div v-show="Single =='让盘' || isAll ">
+          <LetPlate></LetPlate>
+        </div>
+
+        <!-- 让局 -->
+        <div v-show="Single =='让局' || isAll ">
+          <LetBureau></LetBureau>
+        </div>
+      </div>
+      <div v-if="!isShow">
+        <NotOpend :title="tipsTitle"></NotOpend>
+      </div>
+      <!-- <StLinkFooter></StLinkFooter> -->
+      <BettingWindow v-if="isBettingWindow== '100'"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import Goal from "@/components/StGoal";
+import LetBall from "@/components/StLetBall";
+import NotOpend from "@/components/StNotOpend";
+import Loading from "@/components/StLoading";
+import WaveBladder from "@/components/StWaveBladder";
+import StLinkFooter from "@/components/StLinkFooter";
+import SportsHead from "@/components/StSportsHead";
+import OnlyWin from "@/components/StOnlyWin";
+import GoalSize from "@/components/StGoalSize";
+import StartEnd from "@/components/StStartEnd";
+import FullHalf from "@/components/StFullHalf";
+import TeamGoalSize from "@/components/StTeamGoalSize";
+import TotalScoreSize from "@/components/StTotalScoreSize";
+import TotalScoreSizeFive from "@/components/StTotalScoreSizeFive";
+import TotalScoreHalfSize from "@/components/StTotalScoreHalfSize";
+import TotalScoreSectionSize from "@/components/StTotalScoreSectionSize";
+import TeamScoreLast from "@/components/StTeamScoreLast";
+import GoalSingleAndDouble from "@/components/StGoalSingleAndDouble";
+import Corner from "@/components/StCorner";
+import TotalScoreSingleDouble from "@/components/StTotalScoreSingleDouble";
+import BettingWindow from "@/components/StBettingWindow";
+import MatchChampion from "@/components/StMatchChampion";
+import InningsSingleDouble from "@/components/StInningsSingleDouble";
+import InningsSize from "@/components/StInningsSize";
+import LetPlate from "@/components/StLetPlate";
+import LetBureau from "@/components/StLetBureau";
+import TennisWaveBravery from "@/components/StTennisWaveBravery";
+export default {
+  data() {
+    return {
+      name:this.$route.query.name, // 球名
+      searchreturn: require("@/assets/st-imges/returnbox.png"),
+      gameCode: this.$route.query.gameCode, //别名
+      match_id: "",
+      list:'', //数据
+      previousStorage:'',//前一次list储存数据
+      key: [], //存储key值进行判定
+      isShow: "", //更具数据是否显示
+      getBettingIsShow:false,// 判断投注框背景可否滚动
+      status: false,
+      tipsTitle: "暂无相关数据信息",
+      active: 0,// 投注页是否打开
+      isBettingWindow: '-1',
+      // isIphone: false,//是否ios
+      // isAndroid: false,//是否Android
+      show: false, //是否显示模态框
+      satatus: true,
+      isAll: true,
+      Single: "",
+      timers : true,//是否开启轮询
+      headStatus : 0 ,// 头部显示滚球(1为足球,2为篮球,3为棒球,4为网球),0为普通
+      matchScoreDetails:'',//比赛得分详情
+    };
+  },
+  methods: {
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+    //滚球比赛比分详情
+    scoreDetails(data){
+      //比赛得分详细
+      let matchScoreDetails  = JSON.parse(data);
+      if(matchScoreDetails.schedule){
+        if(matchScoreDetails.schedule.startsWith('Topof')){
+          matchScoreDetails.type = 'h'
+        }else if(matchScoreDetails.schedule.startsWith('Bottomof')){
+          matchScoreDetails.type = 'g'
+        }
+        matchScoreDetails.schedule =  matchScoreDetails.schedule.match(/\d+/g)[0]
+        this.matchScoreDetails = matchScoreDetails;
+      }
+    },
+
+    //页面初始化接口请求
+    getAjax: function(game_code, matchID,oddsType) {
+      this.$http.get(this.$ports.gambling.matchOdds, {
+          oddsType,
+          game_code,
+          matchID
+        }).then(res => {
+          if (res.data.status == 1 && res.data.data) {
+            // console.log(res.data.data,'1');//
+            //result_mark
+            //滚球头部数据处理
+            // console.log(res.data.data)
+            if(res.data.data.result_mark){
+              this.scoreDetails(res.data.data.result_mark);
+            }
+            // console.log(res.data.data.result_mark,'比赛得分详细');
+            this.key = [];
+            if ( res.data.data.oddsData == [] ||res.data.data.oddsData.length == 0 ||res.data.data.oddsData == null) {
+              this.$store.dispatch("GETSHOW", false);
+              this.isShow = false;
+              return false;
+            }
+            this.list = res.data.data;
+            this.satatus  = this.list.league.length > 1 ? true :false;
+            let arrayData = [];
+            let key =res.data.data.p_code_array ;//Object.keys(res.data.data.p_code_array);
+            let values = this.$store.getters.getPlayAlias;
+            //this.$store.getters.getPlayAlias;
+            this.isShow = true;
+            this.key = ["所有盘口"];
+            key.forEach((e, index) => {
+              // console.log('e',e);
+              values.forEach(val=>{
+                if(e == val.odds_code && this.$store.getters.getBallId == val.game_code){
+                  if((this.name == '篮球' && val.odds_name =='入球数单双') || (this.name == '棒球' && val.odds_name =='入球数单双')){
+                    val.odds_name ='总分:单双'
+                  }
+                  this.key.push(val.odds_name);
+                }
+              })
+              let stripData = [];
+              this.list.oddsData.forEach(data => {
+                if (data.p_code == e) {
+                  stripData.push(data);
+                }
+                arrayData[index] = stripData;
+              });
+            });
+            //更新数据和上一次的数据匹配
+            let storage =this.previousStorage;
+            //console.log('storage',arrayData)
+            if(storage && storage.match_id == this.list.match_id  && storage.oddsData.length > 0){
+              arrayData.forEach(e=>{
+                storage.oddsData.forEach((res,index)=>{
+                  if(e[0].p_code == res[0].p_code){
+                    e.forEach(dat=>{
+                      res.forEach((val,i)=>{
+                        if(dat.id == val.id){
+                          if(dat.odds > val.odds){
+                            dat.change ='add';
+                          }else if(dat.odds  < val.odds){
+                            dat.change = 'red';
+                          }else{
+                            dat.change ='';
+                          }
+                          res.splice(i,1)
+                        }
+                      })
+                    })
+                    storage.oddsData.splice(index,1)
+                  }
+                })
+              })
+            }
+            // console.log(this.previousStorage);
+            this.list.oddsData = arrayData;
+            this.previousStorage =this.list;
+            this.$store.dispatch("GETGAMERATIO", this.list);
+            //console.log("数据源", arrayData);
+          }
+          let _this=this;
+          setTimeout(()=>{
+            this.$store.dispatch("GETSHOW", false);
+          },1000)
+        });
+      },
+
+    /**
+     * 切换赛事
+     */
+    check(index, match_id) {
+      let oddsType = localStorage.getItem('activity');
+      this.show = false;
+      if (this.list.match_id == match_id) return false;
+      this.match_id = match_id;
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("GETSHOW", true);
+      this.getAjax(this.gameCode, match_id,oddsType);
+    },
+
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    getIsBettingType() {
+      return this.$store.getters.getIsBetting;
+    },
+    // 获取投注框展示状态
+    getBettingCase(){
+        //console.log(this.$store.getters.getNoRoll,'aaaaa')
+        return this.$store.getters.getNoRoll
+    },
+  },
+
+  /**
+   * 监听器
+   */
+  watch: {
+    // 监听投注框开关
+    getIsBettingType(val) {
+      if(val=='-1'){
+        this.$store.dispatch('SET_NOROLL',false)
+      }
+      this.isBettingWindow = val;
+    },
+    getBettingCase(val){
+       this.getBettingIsShow=val
+    },
+  },
+
+  /**
+   * 
+   */
+  mounted() {
+    let ballId = this.$store.getters.getBallId;
+    let acty = this.$store.getters.getActivity;
+    if(acty == 'StRollBall'){
+      if(ballId == 'zq'){
+        this.headStatus = 1;
+      }else if(ballId == 'lq'){
+        this.headStatus = 2;
+      }else if(ballId == 'bq'){
+        this.headStatus = 3;
+      }else if(ballId == 'wq'){
+        this.headStatus = 4
+      }
+    }else{
+      this.headStatus = 0;
+    }
+    let _this = this;
+    this.match_id = this.$store.getters.getMatchId;
+    let oddsType = localStorage.getItem('activity');
+    this.$store.dispatch("GETSHOW", true);
+    this.getAjax(this.gameCode, this.match_id,oddsType);
+    //this.timers  =true;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax(_this.gameCode, _this.match_id,oddsType);
+       // _this.updateAjax(_this.gameCode, _this.match_id);
+      }else{
+        clearInterval(timing);
+      }
+    },(1000*15));
+    if (this.$store.getters.getIsBetting == '100') {
+      this.isBettingWindow = 100;
+    }
+  },
+
+  /**
+   * 关闭当前页面钩子函数
+   */
+  beforeDestroy() {
+    this.timers = false;
+  },
+  components: {
+    Corner,
+    LetBall,
+    Goal,
+    WaveBladder,
+    StLinkFooter,
+    SportsHead,
+    OnlyWin,
+    StartEnd,
+    GoalSize,
+    FullHalf,
+    GoalSingleAndDouble,
+    TeamGoalSize,
+    Loading,
+    NotOpend,
+    BettingWindow,
+    TotalScoreSize,
+    TotalScoreSizeFive,
+    TotalScoreHalfSize,
+    TotalScoreSectionSize,
+    TeamScoreLast,
+    TotalScoreSingleDouble,
+    MatchChampion,
+    InningsSingleDouble,
+    InningsSize,
+    LetPlate,
+    LetBureau,
+    TennisWaveBravery
+  }
+};
+</script>
+
+<style scoped>
+/* 禁止滚动 */
+.noscoll{
+  position: fixed;
+   width: 100%;
+  top: 0;
+  left: 0;
+}
+/* 头部 */
+.Serch {
+  height: 0.88rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: linear-gradient(to bottom, #6a6a6a, #565656);
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.33rem;
+}
+.returnimg {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.1rem;
+}
+.Soccer-game-title {
+  height: 0.88rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  height: 0.88rem;
+  /* padding: 0 0.32rem; */
+  background-color: #626262;
+}
+.gambling {
+  background: #f8f8f8;
+}
+.leagueMatch {
+  position: relative;
+  padding: 0.3rem 0.32rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  flex-wrap: nowrap;
+  border-bottom: 1px solid #e4e4e4;
+  background: linear-gradient(to top, #ffe9c9, #fff3e2);
+}
+.leagueMatch div {
+  font-size: 0.28rem;
+  text-align: left;
+  color: #333333;
+}
+.leagueName {
+  width: 2.26rem;
+}
+.leagueMatch .teamName {
+  text-align: center;
+}
+.teamName .vs {
+  text-align: center;
+  font-size: 0.24rem;
+  color: #fd8f26;
+}
+.leagueMatch .time {
+  width: 1.3rem;
+  color: #333333;
+  font-size: 0.24rem;
+  text-align: center;
+}
+.leagueMatch .icon i {
+  display: inline-block;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../../../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+  transform: rotate(180deg);
+}
+.leagueMatch .rotate {
+  transform: rotate(180deg);
+  transition: 0.2s;
+}
+.leagueMatch .backRotate {
+  transform: rotate(0deg);
+  transition: 0.2s;
+}
+
+.box {
+  padding: 0 0.14rem;
+  background: #f8f8f8;
+}
+#NavSlide {
+  width: 100%;
+  overflow: hidden;
+  height: 0.88rem;
+}
+#NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.2rem 0 0;
+  margin: 0 0.1rem 0 0;
+  color: #b8b8b8;
+  height: 0.88rem;
+  line-height: 0.88rem;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+#NavSlide .fixadd {
+  position: absolute;
+  right: -4px;
+  background-color: #31c17b;
+}
+button.yd-btn-block {
+  background: #f8f8f8;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  /* z-index: -1; */
+  margin: 0;
+  opacity: 0;
+}
+.modality {
+  text-align: center;
+  background: #fbfbfb;
+  padding: 0.2rem 0;
+  height: 5rem;
+  /* overflow: hidden; */
+}
+.modality span {
+  color: #000000;
+  font-size: 0.28rem;
+}
+.modality div {
+  /* margin: 0.06rem 0; */
+  padding: 0.2rem 0;
+  background: #fbfbfb;
+  border-bottom: 1px solid #e4e4e4;
+}
+.modality div .col {
+  color: #fd8f26;
+}
+.lod{
+    z-index: 999;
+    position: fixed;
+    width: 100%;
+}
+/* 滚球足球头部 */
+/* 棒球头部 */
+.bqHead {
+  background: url("../../../assets/st-imges/1baseball.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.zqHead {
+  color: #fff;
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.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;
+  margin-right: 4px;
+}
+.current{
+  color: orange;
+}
+.session{
+  width:0.3rem;
+}
+.mark{
+  background: hsla(0, 0%, 100%, 0.25);
+}
+.scoreInfo{
+  line-height: 0.5rem;
+  padding: 0 0.1rem ;
+}
+.mg-session{
+  width:0.7rem;
+  
+}
+.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.28rem;
+}
+.match .info .pk,
+.match .tit .scene {
+  font-weight: bold;
+  color: rgb(254, 146, 0);
+}
+.tit .time {
+  color: #bd4700;
+}
+.tit span{
+  font-size: 0.26rem;
+}
+.welcome {
+  height: 0.36rem;
+  line-height: 0.36rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #4e4e4e;
+  color: black;
+}
+/* 篮球头部 */
+.header .match{
+    background: #c28d47;
+    background-image: url("../../../assets/st-imges/1basketball.png") no-repeat;
+    background-size: 100% 100%;
+    color: #fff;
+}
+.flex{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.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.85rem;
+    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;
+}
+/* 网球头部 */
+.tennisHead {
+  background: url("../../../assets/st-imges/tennisball.png") no-repeat;
+  background-size: 100% 100%;
+  width: 100%;
+  height: auto;
+}
+.ordinaryHead .match .info{
+  display: flex;
+}
+.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 .txt-c-0 {
+  color: orange;
+}
+.listHead .spanCol{
+  color: orange;
+}
+.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);
+  line-height: 0.4rem;
+  padding: 0 0.1rem;
+  color: #fff;
+}
+
+.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;
+}
+.ordinaryHead {
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+
+  /* padding: 0.04rem; */
+  /* height: 1.2rem; */
+  /* line-height: 1.2rem; */
+}
+.ordinaryHead .match {
+  color: #fff;
+}
+.ordinaryHead .match .info {
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.ordinaryHead .match .info div span{
+  font-size: 0.22rem;
+}
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.attack{
+  color: rgb(197, 210, 60);
+}
+</style>

+ 91 - 0
.svn/pristine/17/171fddba7701e865484bd441ebb1f886934422fe.svn-base

@@ -0,0 +1,91 @@
+/* Flex 布局 */
+/* 平行 */
+.row,.column {
+    display: flex;
+    flex-direction: row;
+  }
+  /* 垂直 */
+  .column {
+    flex-direction: column;
+  }
+  /* 自动填充 */
+  .col-w,.col-h {
+    flex: 1;
+  }
+  /* 横向 */
+  .col-w {
+    width: 0;
+  }
+  /* 纵向 */
+  .col-h {
+    height: 0;
+  }
+  /* 水平垂直居中 */
+  .center {
+    justify-content: center;
+    align-items: center;
+  }
+  /* 水平居中 */
+  .item-center {
+    align-items: center;
+  }
+  /* 垂直居中 */
+  .vertical-center {
+    justify-content: center;
+  }
+  /* 上对齐 */
+  .topAlignment {
+    align-items: flex-strat;
+  }
+  /* 右对齐 */
+  .rightAlignment {
+    justify-content: flex-end;
+  }
+  /* 下对齐 */
+  .bottomAlignment {
+    align-items: flex-end;
+  }
+  /* 左右对齐,项目之间的间隔都相等 */
+  .allAlignment {
+    justify-content: space-between;
+  }
+  /* 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍 */
+  .average {
+    justify-content: space-around;
+  }
+  /* 项目的第一行文字的基线对齐 */
+  .items-baseline {
+    align-items: baseline;
+  }
+  /* 省略号 */
+  .ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+  }
+  body{
+    margin: 0;
+    padding: 0;
+  }
+
+  /* 取消苹果的safari浏览器下点击出现高亮效果 */
+  *{
+    -webkit-tap-highlight-color:rgba(0,0,0,0) 
+  }
+
+  /* 赔率变低 */
+  .reduce_color{
+    background:red !important;
+    color:#fff;
+  /* animation:mymove1 5s linear 0s 1;
+  -webkit-animation:mymove1 5s linear 0s 1; */
+  }
+  
+  /* 赔率增高 */
+  .increased_color{
+    background:Lightgreen !important;
+    color:#fff;
+    /* animation:mymove 5s linear 0s 1;
+    -webkit-animation:mymove 5s linear 0s 1;Safari and Chrome */
+    }
+  

二进制
.svn/pristine/17/176c1d8c5d4015f0bbc5a6a7969d4b7d85697c0f.svn-base


文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/17/178addcbae0671f951efb318d375426bcb435b03.svn-base


+ 146 - 0
.svn/pristine/18/1888545e713e0775c550df61699fbc4910d84b8f.svn-base

@@ -0,0 +1,146 @@
+import axios from 'axios' // 引入axios
+import qs from 'qs'  // 序列化字符串
+import store from '../store/index' // 引入全局状态管理
+import router from '../router' // 路由
+import { Toast } from 'vant' // 控件
+
+// 环境切换
+if (process.env.NODE_ENV === 'development') {
+  axios.defaults.baseURL = ''
+} else if (process.env.NODE_ENV === 'debug') {
+  axios.defaults.baseURL = '测试环境'
+} else if (process.env.NODE_ENV === 'production') {
+  axios.defaults.baseURL = '生产环境'
+}
+// 请求超时时间
+axios.defaults.timeout = 10000
+// 线上
+let Base = 'http://sports.bocai108.com'
+// 开发
+//let Base = 'http://sports.5gogo.com'
+function headerUrl (url) {
+  url = Base +  url
+  return url
+}
+// post请求头
+axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
+
+// request 请求拦截器
+axios.interceptors.request.use(
+  config => {
+    // 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加
+    // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断
+   // console.log(store);
+    const token = store.state.token
+    token && (config.headers.Authorization = token)
+    return config
+  },
+  error => {
+    return Promise.error(error)
+  })
+// response 响应拦截器
+axios.interceptors.response.use(
+  response => {
+  
+    if (response.status === 200) {
+      return Promise.resolve(response)
+    } else {
+      return Promise.reject(response)
+    }
+  },
+  // 服务状态码不是200的情况
+  error => {
+    console.log(error.response);
+    if (error.response) {
+      switch (error.response.status) {
+        // 401 未登录
+        // 未登录则跳转登录页面,并携带当前页面的路径
+        // 在登录成功后返回当前页面,这一步需要在登录页操作。
+        case 401:
+          router.replace({
+            path: '/login',
+            query: {redirect: router.currentRoute.fullPath}
+          })
+          break
+          // 403 token过期
+          // 登录过期对用户进行提示
+          // 清除本地token和清空vuex中token对象
+          // 跳转登录页面
+        case 403:
+          Toast({
+            message: '登录过期,请重新登录',
+            duration: 1000,
+            forbidClick: true
+          })
+          localStorage.removeItem('token')
+          store.commit('loginSuccess', null)
+          // 跳转登录页面,并将要浏览的页面fullpath传过去,登录成功后跳转到要访问的页面
+          setTimeout(() => {
+            router.replace({
+              path: '/login',
+              query: {
+                redirect: router.currentRoute.fullPath
+              }
+            })
+          }, 1000)
+          break
+        // 404 请求不存在
+        case 404:
+          Toast({
+            message: '网络请求不存在',
+            duration: 1500,
+            forbidClick: true
+          })
+          break
+        // 其他错误直接抛出错误提示
+        default:
+          Toast({
+            message: error.response.data.message,
+            duration: 1500,
+            forbidClick: true
+          })
+      }
+      return Promise.reject(error.response)
+    }
+  }
+)
+
+export default {
+  /**
+   * get方法对应get请求
+   * @param {String}url 请求地址
+   * @param {Object}params 携带参数
+   * @returns {Promise}
+   */
+  get (url, params) {
+  
+    return new Promise((resolve, reject) => {
+      axios.get(headerUrl(url), {
+        params
+      })
+        .then(res => {
+          resolve(res)
+        })
+        .catch(err => {
+          reject(err)
+        })
+    })
+  },
+  /**
+   * post方法对应post请求
+   * @param {String} url 请求地址
+   * @param {Object} params 携带参数
+   * @returns {Promise}
+   */
+  post (url, params) {
+    return new Promise((resolve, reject) => {
+      axios.post(headerUrl(url), qs.stringify(params))
+        .then(res => {
+          resolve(res)
+        })
+        .catch(err => {
+          reject(err)
+        })
+    })
+  }
+}

+ 454 - 0
.svn/pristine/19/194b80bcb6eef628fe47bb29768f022fbacafe6f.svn-base

@@ -0,0 +1,454 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-上半场" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'half_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-上半场',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'half_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-上半场',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第一盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'one_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第一盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'one_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第一盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第二盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'two_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第二盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'two_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第二盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第三盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'three_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第三盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'three_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第三盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第四盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'four_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第四盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'four_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第四盘',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  // 独赢
+  data() {
+    return {
+      title: "kemp",
+      home_team: " ",
+      match_id:'',
+      guest_team: " ",
+      obj:'',//
+      data: [],
+      lg_id:'',
+      isDisplay: "", //是否显示
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id, name, odds,odds_only,p_code,match_id,odds_code,play_name,condition = "",oddsType, bettingTime = "") {
+      //console.log(this.data)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+         ballId:this.$store.getters.getBallId,
+        condition,
+        odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        p_code,
+        lg_id:this.lg_id,
+        odds_id:id,
+        play_name,
+        match_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+         this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+           if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+           if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code.startsWith('kemp')){
+          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')){
+          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 
+      })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    // 获取投注删除状态
+    deleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id=val.match_id
+      if (!val) return false;
+     
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+        this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+     //监听投注框删除处理
+  deleteType(val) {
+    this.data.forEach(e => {
+      if (val == "all") {
+        this.$set(e, "isTrue", false);
+      } else {
+        if (e.id == val) {
+          this.$set(e, "isTrue", false);
+        }
+      }
+    });
+  },
+  },
+  mounted() {
+    
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  font-size: 0.28rem;
+  color: #fefefe;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.box {
+  padding: 0 0.32rem;
+}
+.row-box {
+  height: 0.9rem;
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.The-club-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.active {
+  background: #f76649;
+  color: #f4f4f4;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

+ 951 - 0
.svn/pristine/19/19abb016200acd7c2c798b5f037ca918f0bd42ba.svn-base

@@ -0,0 +1,951 @@
+<template>
+  <div>
+    <div>
+      <div class="Serch row item-center">
+        <div class="Soccer-game row item-center">
+          <div
+            style=" display:flex;align-items:center;justify-content:center;"
+            class="Soccer-game-title"
+            @click="isreturn()"
+          >
+            <img class="box-img" src="../assets/st-imges/returnbox.png" />
+            {{this.title}}
+          </div>
+        </div>
+
+        <div class="Serch-box row item-center">
+          <div class="Serch-box-home row item-center">
+            <img class="Serch-box-img" src="../assets/st-imges/sousuo.png" />
+            <input
+              v-model="SerchValue"
+              @keydown="serchchange(SerchValue)"
+              @input="searchTeam(SerchValue)"
+              class="Serch-box-input"
+              type="text"
+              placeholder="请输入球队名称"
+            />
+            <img
+              class="Serch-box-del"
+              @click="delinputvalue()"
+              v-if="Serchchange==true"
+              src="../assets/st-imges/del.png"
+            />
+          </div>
+        </div>
+      </div>
+    </div>
+    <div>
+      <div v-for="(ite,$index) in data" :key="ite.id">
+        <div class="row allAlignment box center">
+          <span>{{ite.name_chinese}}</span>
+          <div class="Match-title-num">
+            <span>{{ite.count}}</span>
+          </div>
+        </div>
+        <!-- 足球与篮球 -->
+        <div
+          v-if="ballSelt == 10"
+          v-for=" (item,index) in ite.match_info"
+          :key="index"
+          class="Match-box"
+        >
+          <div class="row allAlignment Match-box-top">
+            <div class="Match-box-top-left">
+              <span>{{item.match_date}}</span>
+              <span>{{item.match_time}}</span>
+            </div>
+            <div class="Match-box-top-right row">
+              <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
+              <span style="margin-right: .15rem;">让球</span>
+              <span style="margin-right: .15rem;">大小</span>
+            </div>
+          </div>
+          <div
+            class="row allAlignment center"
+            @click="matchInfo(item.match_id);"
+            style="padding:0 .32rem"
+          >
+            <div class="column average name-box">
+              <div>{{item.home_team}}</div>
+              <div>{{item.guest_team}}</div>
+            </div>
+            <div class="Match-bottom-right">
+              <!-- 主队 -->
+              <div v-for="(items,indexs) in item.oddsData" :key="indexs">
+                <!-- 让球 -->
+                <div class v-if="items.odds_code.startsWith('co')">
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="letballHome" v-if="items.odds_code.endsWith('h')"
+                    @click.stop="isBetting($index,item,items,item.home_team,'让球')" >
+                    <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0" >{{items.condition}}</span>
+                    <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''" >{{items.odds}}</span>
+                    <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"/>
+                    <img />
+                  </div>
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="letballGuest" v-if="items.odds_code.endsWith('g')"
+                    @click.stop="isBetting($index,item,items,item.guest_team,'让球')">
+                    <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                    <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''" >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                    <img />
+                  </div>
+                </div>
+                <!-- 足球 大小-->
+                <div v-if="items.odds_code.startsWith('gs')" class="row bigSmall">
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigHome"
+                    v-if="items.odds_code.endsWith('b')"
+                    @click.stop="isBetting($index,item,items,'大','大小')"
+                  >
+                    <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
+                      <span class="bigSmall">大</span>
+                      <span>{{items.condition}}</span>
+                    </div>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                    <img />
+                  </div>
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigGuest"
+                    v-if="items.odds_code.endsWith('s')"
+                    @click.stop="isBetting($index,item,items,'小','大小')"
+                  >
+                    <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
+                      <span class="bigSmall">小</span>
+                      <span>{{items.condition}}</span>
+                    </div>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                    <img />
+                  </div>
+                </div>
+
+                <div v-if="items.odds_code.startsWith('tn')" class="row bigSmall">
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigHome" v-if="items.odds_code == 'tnb'"
+                    @click.stop="isBetting($index,item,items,'大','大小')" >
+                    <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
+                      <span class="bigSmall">大</span>
+                      <span>{{items.condition}}</span>
+                    </div>
+                    <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''" >{{items.odds}}</span>
+                    <img v-if="items.odds <= 0"style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                  </div>
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigGuest" v-if="items.odds_code == 'tns'"
+                    @click.stop="isBetting($index,item,items,'小','大小')">
+                    <div style="color: rgb(247, 102, 73); " class="stardBig" v-if="items.odds > 0">
+                      <span class="bigSmall">小</span>
+                      <span>{{items.condition}}</span>
+                    </div>
+                    <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''" >{{items.odds}}</span>
+                    <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"/>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <!-- 网球 -->
+        <div
+          v-if="ballSelt == 100"
+          v-for=" (item,index) in ite.match_info"
+          :key="index"
+          class="Match-box"
+        >
+          <div class="row allAlignment Match-box-top wqMatch-box">
+            <div class="Match-box-top-left">
+              <span>{{item.match_date}}</span>
+              <span style="color: rgb(253, 143, 38);">{{item.match_time}}</span>
+              <!-- <div>三盘两胜</div> -->
+            </div>
+            <div class="Match-box-top-right row">
+              <span
+                style="margin-right: .15rem;height:100%;line-height:0.6rem;"
+                class="Match-box-top-num"
+              >{{item.tag}}</span>
+              <span style="margin-right: .15rem;">独赢盘</span>
+              <span style="margin-right: .15rem;">让盘</span>
+            </div>
+          </div>
+          <div
+            class="row allAlignment center"
+            @click="matchInfo(item.match_id);"
+            style="padding:0 .32rem"
+          >
+            <div class="column average name-box">
+              <div>{{item.home_team}}</div>
+              <div>{{item.guest_team}}</div>
+            </div>
+            <div class="Match-bottom-right">
+              <!-- 主队 -->
+              <div class v-for="(items,indexs) in item.oddsData" :key="indexs">
+                <div class v-if="items.odds_code.startsWith('c')">
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="letballHome"
+                    v-if="items.odds_code == 'ch'"
+                    @click.stop="isBetting($index,item,items,item.home_team,'独赢盘')"
+                  >
+                    <span
+                      style="color: rgb(247, 102, 73); "
+                      v-if="items.odds > 0"
+                    >{{items.condition}}</span>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                  </div>
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="letballGuest"
+                    v-if="items.odds_code == 'cg'"
+                    @click.stop="isBetting($index,item,items,item.guest_team,'独赢盘')"
+                  >
+                    <span
+                      style="color: rgb(247, 102, 73); "
+                      v-if="items.odds > 0"
+                    >{{items.condition}}</span>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                  </div>
+                </div>
+
+                <!-- 让盘 -->
+                <div
+                  v-if="items.odds_code.startsWith('ld')"
+                  class="row bigSmall"
+                  @click.stop="isBetting($index,item,items,item.home_team,'让盘')"
+                >
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigHome"
+                    v-if="items.odds_code == 'ldh'"
+                  >
+                    <span
+                      style="color: rgb(247, 102, 73); "
+                      v-if="items.odds > 0"
+                    >{{items.condition}}</span>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                    <img />
+                  </div>
+                  <div
+                    :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                    class="bigGuest"
+                    v-if="items.odds_code == 'ldg'"
+                    @click.stop="isBetting($index,item,items,item.guest_team,'让盘')"
+                  >
+                    <span
+                      style="color: rgb(247, 102, 73); "
+                      v-if="items.odds > 0"
+                    >{{items.condition}}</span>
+                    <span
+                      v-if="items.odds >0"
+                      :class="items.condition == '' ? 'mg':''"
+                    >{{items.odds}}</span>
+                    <img
+                      v-if="items.odds <= 0"
+                      style="width: 0.7rem;height: 0.5rem;"
+                      src="@/assets/st-imges/mima.png"
+                    />
+                    <img />
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <!-- 棒球 -->
+        <div
+          v-if="ballSelt == 1000"
+          v-for=" (item,index) in ite.match_info"
+          :key="index"
+          class="Match-box"
+        >
+          <div class="row allAlignment Match-box-top">
+            <div class="Match-box-top-left">
+              <span>{{item.match_date}}</span>
+              <span>{{item.match_time}}</span>
+            </div>
+            <div class="Match-box-top-right row">
+              <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
+              <span style="margin-right: .15rem;">独赢盘</span>
+            </div>
+          </div>
+          <div
+            class="row allAlignment center"
+            @click="matchInfo(item.match_id);"
+            style="padding:0 .32rem"
+          >
+            <div class="column average name-box">
+              <div>{{item.home_team}}</div>
+              <div>{{item.guest_team}}</div>
+            </div>
+            <div class="Match-bottom-right">
+              <!-- 主队 -->
+              <div class="row">
+                <div class v-for="(items,indexs) in item.oddsData" :key="indexs">
+                  <div v-if="items.odds_code.startsWith('c')" class="row bigSmall">
+                    <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                      class="bigHome" v-if="items.odds_code == 'ch'"  @click.stop="isBetting($index,item,items,item.home_team,'独赢盘')">
+                      <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0" >{{items.condition}}</span>
+                      <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+                      <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;"  src="@/assets/st-imges/mima.png"/>
+                    </div>
+                    <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                      class="bigGuest" v-if="items.odds_code == 'cg'"
+                      @click.stop="isBetting($index,item,items,item.guest_team,'独赢盘')">
+                      <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                      <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''" >{{items.odds}}</span>
+                      <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png" />
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <BettingWindow v-show="isBettingWindow == '100'" />
+  </div>
+</template>
+<script>
+import BettingWindow from "@/components/StBettingWindow";
+import NotOpend from "@/components/StNotOpend";
+import Loading from "@/components/StLoading";
+export default {
+  name: "entryForm",
+  data() {
+    return {
+      SerchValue: "",
+      Serchchange: false,
+      title: this.$route.query.name, //标题
+      data: "",
+      game_code: this.$route.query.game_code, //球的类型别名
+      lg_id: this.$route.query.lg_id, //获取联赛id
+      isBettingWindow: "-1",
+      thisNum: 10000,
+      info: "没有相关联赛信息",
+      noData: false, //没有数据为true
+      betting: [], //vuex里面玩法投注数据
+      timers: true,
+      index: "",
+      getIsShow: true,
+      ballSelt: 0, // 当为10的时候为篮球,足球,100的时候为网球,1000的时候为棒球
+      // 存储变色数据
+      previousStorage: []
+    };
+  },
+  components: {
+    BettingWindow,
+    NotOpend,
+    Loading
+  },
+  methods: {
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+
+    /******************查询数据*******************/
+    getmatchInfo(search) {
+      this.$http
+        .get(this.$ports.match.participateDtl, {
+          game_code: this.game_code,
+          code: this.$route.query.code,
+          lg_id: this.lg_id,
+          search
+        })
+        .then(res => {
+          this.codeShow = false;
+
+          if (res.data.status == 1) {
+            // console.log(res.data.data)
+            this.dataGroup(res.data.data);
+            // console.log("参赛表单", res.data.data);
+            // this.data = res.data.data;
+          }
+        });
+      let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+      }, 1000);
+    },
+
+    /*****************是否显示删除按钮***************/
+    serchchange(val) {
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+    },
+
+    /********************查询球队*********************/
+    searchTeam(val) {
+      let getActivity = this.$store.getters.getActivity;
+      let matchDate = this.$route.query.matchDate;
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+      this.getmatchInfo(val);
+    },
+    //清空输入
+    delinputvalue() {
+      this.SerchValue = "";
+      this.Serchchange = false;
+      this.getmatchInfo("");
+    },
+
+    /****************添加、删除vuex投注数据公共方法*******************/
+    AddDelete: function($index, item, items, name, play_name) {
+      let match_odds = JSON.stringify(items);
+      let isAdd = true,
+        isNew = true;
+      let matchList = this.$store.getters.getBetting;
+      let bettingInfo = JSON.parse(match_odds);
+      bettingInfo.home_team = item.home_team;
+      bettingInfo.guest_team = item.guest_team;
+      bettingInfo.lg_id = item.lg_id;
+      bettingInfo.odds_id = items.id;
+      bettingInfo.ballId = this.$store.getters.getBallId;
+      bettingInfo.name = name;
+      bettingInfo.play_name = play_name;
+      //添加新的玩法赔率数据
+      let obj = {
+        title: bettingInfo.p_code,
+        data: [bettingInfo]
+      };
+
+      //投注数据处理
+      if (matchList != null) {
+        let id = bettingInfo.id;
+        for (let i = 0; i < matchList.length; i++) {
+          if (matchList[i].title == bettingInfo.p_code) {
+            //删除vuex投注数据
+            matchList[i].data.forEach((res, index) => {
+              // console.log(res.id,id)
+              if (res.id == id) {
+                matchList[i].data.splice(index, 1);
+                this.$store.dispatch("SET_LIMIT", false);
+                this.$store.dispatch("BETTING", []);
+                this.$store.dispatch("BETTING", matchList);
+                isAdd = false;
+                isNew = false;
+                //处理当前页面样式
+                this.modifyStyle($index, id);
+              }
+            });
+            //添加vuex投注数据
+            if (isAdd) {
+              isNew = false;
+              if (this.$store.getters.getLimit * 1 >= 10) return false;
+              //处理当前页面样式
+              this.modifyStyle($index, id);
+              matchList[i].data.push(bettingInfo);
+              this.$store.dispatch("BETTING", []);
+              this.$store.dispatch("BETTING", matchList);
+              if (this.$store.getters.getIsBetting == "100") return false;
+              this.$store.dispatch("ISBETTING", 100);
+            }
+            break;
+          }
+        }
+        if (isNew) {
+          matchList.push(obj);
+          this.$store.dispatch("BETTING", []);
+          this.$store.dispatch("BETTING", matchList);
+          this.modifyStyle($index, id);
+          if (this.$store.getters.getIsBetting == "100") return false;
+          this.$store.dispatch("ISBETTING", "100");
+        }
+      } else {
+        this.$store.dispatch("BETTING", [obj]);
+        this.modifyStyle($index, id);
+        if (this.$store.getters.getIsBetting == "100") return false;
+        this.$store.dispatch("ISBETTING", "100");
+      }
+    },
+
+    /*******************修改当前页面样式公共方法********************/
+    modifyStyle: function($index, id, type = "") {
+      // console.log($index,id, type)
+      this.data[$index].match_info.every(e => {
+        let ret = false;
+        e.oddsData.every((res, index) => {
+          if (res.id == id) {
+            this.$set(res, "isTrue", res.isTrue ? false : true);
+            ret = true;
+            return false;
+          }
+          return true;
+        });
+      });
+    },
+
+    /******************修改投注样式******************/
+    isBetting($index, item, items, name, play_name) {
+      if (items.odds <= 0) return false;
+      this.index = $index;
+      if (this.data) {
+        //处理vuex里面数据
+        this.AddDelete($index, item, items, name, play_name);
+        //处理当前页面样式
+        // this.modifyStyle($index,id, type);
+      }
+    },
+
+    /*******************跳转到赛事详情******************/
+    matchInfo: function(id) {
+      this.$router.push({
+        path: "/StRollBallBettingPage",
+        query: { gameCode: this.game_code, home: 1, name: this.title }
+      });
+      this.$store.dispatch("MACTH_ID", id);
+    },
+    /*--------------------------------------------------------------------------------*/
+    /**
+     * 赛事赔率玩法数据组合方法
+     */
+    dataGroup: function(data) {
+      //console.log('数据',this.data)
+      // let homeOdds = [],
+      // guestOdds = [];
+      let A, B, C, D;
+      // console.log('daa',data)
+      let ball = this.$store.getters.getBallId;
+      data.forEach(i => {
+        i.match_info.forEach((column, index) => {
+          if (column.oddsData == null || column.oddsData.length == 0) {
+          } else {
+            column.oddsData.forEach(val => {
+              if (this.betting.length > 0) {
+                this.betting.forEach(e => {
+                  e.forEach(item => {
+                    if (val.id == item.id) {
+                      val.isTrue = true;
+                    }
+                  });
+                });
+              }
+            });
+          }
+        });
+      });
+      // console.log('ddddd',data)
+      this.data = data;
+      // console.log('data',this.data)
+      //更新数据和上一次的数据匹配
+      let storage = this.previousStorage;
+      // console.log('storege',storage)
+      if (storage && storage != null && storage.length > 0) {
+        this.data.forEach(e => {
+          e.match_info.forEach(k => {
+            k.oddsData.forEach(item => {
+              storage.forEach(a => {
+                a.forEach(b => {
+                  if (item.id == b.id) {
+                    if (item.odds > b.odds) {
+                      item.change = "add";
+                    } else if (item.odds < b.odds) {
+                      item.change = "red";
+                    } else {
+                      item.change = "";
+                    }
+                  }
+                });
+              });
+            });
+          });
+        });
+      }
+      this.previousStorage = [];
+      this.data.forEach(e => {
+        e.match_info.forEach(k => {
+          this.previousStorage.push(k.oddsData);
+        });
+      });
+      this.$store.dispatch("GETGAMERATIO", this.data);
+    }
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+    getIsBetting() {
+      return this.$store.getters.getIsBetting;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getIsBetting(val) {
+      this.isBettingWindow = val;
+    },
+    // 监听删除投注
+    getDeleteType(val) {
+      let flag = true;
+      this.data.forEach(e => {
+        if (val == "all") {
+          e.match_info.forEach(data => {
+            data.oddsData.forEach((k, i) => {
+              this.$set(k, "isTrue", false);
+            });
+            data.oddsData.forEach((k, i) => {
+              this.$set(k, "isTrue", false);
+            });
+          });
+        } else {
+          let showData = true;
+          e.match_info.forEach((res, index) => {
+            res.oddsData.forEach((k, i) => {
+              if (k.id == val) {
+                this.$set(k, "isTrue", false);
+                showData = true;
+              }
+            });
+          });
+          if (showData) {
+            e.match_info.forEach(data => {
+              data.oddsData.forEach(item => {
+                if (item.id == val) {
+                  this.$set(item, "isTrue", false);
+                }
+              });
+            });
+          }
+        }
+      });
+    }
+  },
+  mounted() {
+    this.$store.dispatch("GETSHOW", true);
+    // 获取球类,判定状态
+    let ball = this.$route.query.game_code;
+    // 是否展示投注框
+    if (this.$store.getters.getIsBetting == "100") {
+      this.isBettingWindow = "100";
+    }
+    //获取vuex玩法已投注相对应的数据
+    let getBetting = this.$store.getters.getBetting;
+    // if(getBetting){
+    if (ball == "zq") {
+      this.ballSelt = 10;
+      if (getBetting) {
+        getBetting.forEach((e, index) => {
+          if ("concede" == e.title || "goal_size" == e.title) {
+            this.betting.push(e.data);
+          }
+        });
+      }
+    } else if (ball == "lq") {
+      this.ballSelt = 10;
+      if (getBetting) {
+        getBetting.forEach((e, index) => {
+          if ("concede" == e.title || "total_size" == e.title) {
+            this.betting.push(e.data);
+          }
+        });
+      }
+    } else if (ball == "bq") {
+      this.ballSelt = 1000;
+      if (getBetting) {
+        getBetting.forEach((e, index) => {
+          if ("capot" == e.title) {
+            this.betting.push(e.data);
+          }
+        });
+      }
+    } else if (ball == "wq") {
+      this.ballSelt = 100;
+      if (getBetting) {
+        getBetting.forEach((e, index) => {
+          if ("dishes" == e.title || "kemp" == e.title) {
+            this.betting.push(e.data);
+          }
+        });
+      }
+    }
+    // }
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getmatchInfo("");
+      } else {
+        clearInterval(timing);
+      }
+    }, 1000 * 10);
+    // console.log("data", this.data);
+    /*-----------------------*/
+    this.getmatchInfo("");
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style scoped>
+.Serch {
+  height: 0.75rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #363636;
+  color: #fd8f26;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.32rem;
+}
+.lock {
+  background: #f4f4f4;
+}
+.Serch-box-input {
+  width: 2rem;
+  border: none;
+  position: absolute;
+  left: 0.5rem;
+  top: 0.06rem;
+}
+/* .BettingWindow{
+  z-index: 10000;
+  position:fixed;
+  top:0;
+  width: 100%;
+} */
+
+.Serch-box-img {
+  width: 0.3rem;
+  height: 0.3rem;
+  position: absolute;
+  left: 0.1rem;
+  top: 0.06rem;
+}
+.Serch-box-del {
+  width: 0.2rem;
+  height: 0.2rem;
+  position: absolute;
+  right: 0.2rem;
+}
+.Serch-box-home {
+  height: 0.44rem;
+  width: 4.73rem;
+  background: #e4e4e4;
+  border-radius: 0.2rem;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  padding-left: 0.1rem;
+  padding-right: 0.1rem;
+  position: relative;
+}
+.box-img {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.18rem;
+}
+.Soccer-game-title {
+  display: flex;
+  color: #f76649;
+  align-items: center;
+  width: 1.3rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  display: flex;
+  left: -0.3rem;
+  top: 0.2rem;
+  background: #fff;
+  background: #626262;
+  color: #a6a6a6;
+  height: 0.7rem;
+  align-items: center;
+}
+.Soccer-game-src {
+  width: 0.25rem;
+  height: 0.25rem;
+}
+.box {
+  padding: 0 0.32rem;
+  color: #e1e1df;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: linear-gradient(to bottom, #999999, #6a6a6b);
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #f5f5f5;
+}
+
+.Match-box-top-right > span {
+  width: 1.07rem;
+  text-align: center;
+}
+.Match-box {
+  /* height: 2.45rem; */
+}
+.name-box {
+  width: 4rem;
+  height: 1.76rem;
+}
+.Match-box-top {
+  height: 0.45rem;
+  line-height: 0.45rem;
+  background: #dcdcdc;
+  font-size: 0.23rem;
+  padding: 0 0.32rem;
+}
+.Match-box-top-num {
+  width: 0.64rem !important;
+  height: 0.45rem;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.Match-box {
+  background: #f8f8f8;
+}
+.Match-bottom-right {
+  height: 2rem;
+  width: 2.5rem;
+  padding: 0.1rem 0.1rem 0 0.14rem;
+  position: relative;
+}
+.Match-list-left div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  padding: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.Match-list-right div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.active {
+  background: #f76649;
+  border: none;
+  color: #e1e1df !important;
+}
+.active span,
+.active i {
+  color: #e1e1df !important;
+}
+.wqavg {
+  width: 4.3rem;
+}
+div .wqMatch-box {
+  /* height: 0.65rem;
+  line-height: 0.3rem; */
+}
+/* 赔率 */
+
+.letballHome,
+.letballGuest,
+.bigHome,
+.bigGuest {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+  /* padding: 0.1rem 0; */
+  /* margin: 0.06rem 0.6rem 0.06rem 0; */
+  text-align: center;
+}
+.letballGuest {
+  position: absolute;
+  bottom: 0.19rem;
+}
+.bigHome span,
+.bigGuest span,
+.letballHome span,
+.letballGuest span {
+  display: block;
+}
+.bigHome {
+  position: absolute;
+  right: 0;
+  top: 0.1rem;
+}
+.bigGuest {
+  position: absolute;
+  right: 0;
+  top: 0.93rem;
+}
+.active span {
+  color: #e1e1df !important;
+}
+.stardBig {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.stardBig .bigSmall {
+  color: #9b9999;
+}
+.mg {
+  margin-top: 0.2rem;
+}
+</style>

+ 1006 - 0
.svn/pristine/1a/1a4032782b31ca15642059a9309a0e8e9c6e205c.svn-base

@@ -0,0 +1,1006 @@
+<template>
+  <div class="head" :class="newIsShrink ?'hiddenbox':'bgcolor'">
+    <div style="padding-top:2rem; height:100%;width:90%" class="baffleBox"  v-show="!newIsShrink">
+      <div class="allBox">
+        <div class="box">
+          <div class="row allAlignment center">
+            <span style="color:#f8f8f8;font-size:0.24rem;">余额:{{cash}}</span>
+            <span style="font-size:0.28rem; color:#333333;font-weight:bold">投注单</span>
+            <img style="width:.50rem;height:0.8rem" :src="img_size" alt @click="shrink()">
+            <!-- style="color:#33333;font-size:0.24rem;" -->
+          </div>
+        </div>
+
+        <!-- 数据列表 -->
+        <div
+          class="titleBox"
+          v-for="(item,index) in dataList"
+          :key="index"
+          @click="activekey(index)"
+        >
+          <div class="tilteMatch">
+            <div class="row center allAlignment" style="height:.5rem;padding-left:0.32rem">
+              <span :style="item.repeat? 'background: #f76649;':'' ">{{item.play_name}}</span>
+              <span class="cancel" @click.stop="delarr(item.p_code,item.id)">
+                <img style="width:.25rem;height:.25rem" :src="img" alt>
+              </span>
+            </div>
+            <div class="tilteMatchDiv" style="min-height:1rem;padding:0 .32rem">
+              <div class="row item-center" style="height:50%">
+             
+                <div v-if="item.p_code =='capot'">
+                  <span>{{item.name}}</span>&emsp;
+                  <span>{{item.condition == 1 ? item.home_team :item.condition == 'x'? '和局':item.condition == 2? item.guest_team:item.condition }}</span>@
+                  <span>{{item.odds}}</span>
+                </div>
+                <div v-else>
+                  <span>{{item.name}}</span>&emsp;
+                  <span>{{item.condition}}</span>@
+                  <span>{{item.odds}}</span>
+                </div>
+              </div>
+              <div class="row item-center" style="height:50%;">
+                <span>{{item.home_team}}</span>
+                <span style="color:#F76649">vs</span>
+                <span>{{item.guest_team}}</span>
+              </div>
+            </div>
+          </div>
+
+          <div class="bettingInput row item-center allAlignment">
+            <div class="inputBox row allAlignment">
+              <input
+                class="input_text"
+                type
+                @click.stop="go()"
+                v-model="bettingNumber[index]"
+                placeholder="投注额"
+                @click="activekey(index)"
+              >
+              <span style="padding:0 0.22rem;" @click.stop="ClearData(index)">
+                <img style="width:.2rem;height:.2rem" :src="img" alt>
+              </span>
+            </div>
+            <div class>
+              <span v-if="bettingNumber[index]">{{(bettingNumber[index]*item.odds).toFixed(2)}}</span>
+              <span v-else>可赢额</span>
+            </div>
+          </div>
+
+          <div class="bottonBox row allAlignment" v-show="clickIndex==index">
+            <div class="bottonBox-num  column allAlignment center">
+              <div @click="additionFun(100,index) ">+100</div>
+              <div @click="additionFun(1000,index) ">+1000</div>
+              <div @click="additionFun(10000,index) ">+10000</div>
+            </div>
+            <div class="column allAlignment center" >
+              <div class="row allAlignment center" style="width:3.8rem">
+                <div v-for=" n in 3" @click="updateNumber(n,index)">
+                  <button>{{n}}</button>
+                </div>
+              </div>
+              <div class="row allAlignment center" style="width:3.8rem">
+                <div v-for=" n in 3" @click="updateNumber(n+3,index)">
+                  <button>{{n+3}}</button>
+                </div>
+              </div>
+              <div class="row allAlignment center" style="width:3.8rem">
+                <div v-for=" n in 3" @click="updateNumber(n+6,index)">
+                  <button>{{n+6}}</button>
+                </div>
+              </div>
+            </div>
+            <div class="column allAlignment center" >
+              <button class="btn-right"  @click="delNumder(index)" >x</button>
+              <button class="btn-right"  style="margin:0.1rem 0;" @click="updateNumber('0',index)">0</button>
+              <button class="btn-right" @click="updateNumber('00',index)">00</button>
+            </div>
+          </div>
+        </div>
+
+        <!-- 单注 -->
+        <div class="showNumber" @click.stop="activekey('all')">
+          <div v-if="dataList.length>1">
+            <span v-if="dataList" style="font-size:.3rem">单注</span>
+            <div class="bettingInput row item-center allAlignment">
+              <div class="inputBox row allAlignment">
+                <input type @click="go()" v-model="arrNumber" placeholder="投注额">
+                <span class="cancel" @click.stop="ClearData('all')">
+                  <img style="width:.2rem;height:.2rem" :src="img" alt>
+                </span>
+                <!-- <span @click.stop="ClearData('all')">x</span> -->
+              </div>
+              <div class>
+                <span v-if="arrNumber">{{(datamMoney).toFixed(2)}}</span>
+                <span v-else>可赢额</span>
+              </div>
+            </div>
+            <!-- <div class="bottonBox" v-if="clickIndex=='all'">
+              <div class="bottonBox-num row allAlignment" style="padding:0 .2rem">
+                <div @click="additionFun(100,'all') ">+100</div>
+                <div @click="additionFun(1000,'all')">+1000</div>
+                <div @click="additionFun(10000,'all')">+10000</div>
+              </div>
+              <div style="margin-top:0.42rem;margin-bottom:0.42rem">
+                <div class="row allAlignment center">
+                  <div v-for=" n in 6" @click="updateNumber(n,'all')">
+                    <button>{{n}}</button>
+                  </div>
+                </div>
+
+                <div class="row allAlignment center" style="margin-top:0.17rem;">
+                  <div v-for=" n in 3" @click="updateNumber(n+6,'all')">
+                    <button>{{n+6}}</button>
+                  </div>
+                  <button @click="updateNumber('0','all')">0</button>
+                  <button @click="updateNumber('00','all')">00</button>
+                  <button
+                    @click="delNumder('all')"
+                    style="background:rgb(247, 102, 73);font-size:.4rem;line-height:.86rem;"
+                  >x</button>
+                </div>
+              </div>
+            </div> -->
+            <div class="bottonBox row allAlignment" v-if="clickIndex=='all'">
+              <div class="bottonBox-num  column allAlignment center">
+                <div @click="additionFun(100,'all') ">+100</div>
+                <div @click="additionFun(1000,'all') ">+1000</div>
+                <div @click="additionFun(10000,'all') ">+10000</div>
+              </div>
+              <div class="column allAlignment center" >
+                <div class="row allAlignment center" style="width:3.8rem">
+                  <div v-for=" n in 3" @click="updateNumber(n,'all')">
+                    <button>{{n}}</button>
+                  </div>
+                </div>
+                <div class="row allAlignment center" style="width:3.8rem">
+                  <div v-for=" n in 3" @click="updateNumber(n+3,'all')">
+                    <button>{{n+3}}</button>
+                  </div>
+                </div>
+
+                <div class="row allAlignment center" style="width:3.8rem">
+                  <div v-for=" n in 3" @click="updateNumber(n+6,'all')">
+                    <button>{{n+6}}</button>
+                  </div>
+              
+                </div>
+              </div>
+              <div class="column allAlignment center" >
+                <button class="btn-right"  @click="delNumder('all')" >x</button>
+                <button class="btn-right"  style="margin:0.1rem 0;" @click="updateNumber('0','all')">0</button>
+                <button class="btn-right" @click="updateNumber('00','all')">00</button>
+              </div>
+            </div>
+          </div>
+        </div>
+
+        <!-- 过关投注  && compound.length > 0 -->
+        <div v-if="!passThroughPlay && dataList.length > 2 ">
+          <yd-accordion>
+            <yd-accordion-item title="复式连串过关投注" open>
+              <div
+                class="showNumber"
+                v-for="(item,index) in compound"
+                @click.stop="activekey('through'+index)"
+              >
+                <span v-if="dataList" style="font-size:.3rem">{{item.title}}</span>
+                <div class="bettingInput row item-center allAlignment">
+                  <div class="row center">
+                    <div class="inputBox row allAlignment">
+                      <input type @click="go()" v-model="item.money " placeholder="投注额">
+                      <!-- <span @click.stop="ClearData('through')">x</span> -->
+                      <span class="cancel" @click.stop="ClearData('through',index)">
+                        <img style="width:.2rem;height:.2rem" :src="img" alt>
+                      </span>
+                    </div>
+                    <span style="font-size:0.26rem;margin-left: 0.1rem;">X{{item.index}}</span>
+                  </div>
+                  <div class>
+                    <span v-if="item.money*1 > 0 ">{{(item.money * item.odds).toFixed(2)}}</span>
+                    <span v-else>可赢额</span>
+                  </div>
+                </div>
+                <!-- <div class="bottonBox" v-if="clickIndex=='through'+index">
+                  <div class="bottonBox-num " style="padding:0 .2rem">
+                    <div @click="additionFun(100,'through',index) ">+100</div>
+                    <div @click="additionFun(1000,'through',index)">+1000</div>
+                    <div @click="additionFun(10000,'through',index)">+10000</div>
+                  </div>
+                  <div style="margin-top:0.42rem;margin-bottom:0.42rem">
+                    <div class="row allAlignment center">
+                      <div v-for=" n in 6" @click="updateNumber(n,'through',index)">
+                        <button>{{n}}</button>
+                      </div>
+                    </div>
+                    <div class="row allAlignment center" style="margin-top:0.17rem;">
+                      <div v-for=" n in 3" @click="updateNumber(n+6,'through',index)">
+                        <button>{{n+6}}</button>
+                      </div>
+                      <button @click="updateNumber('0','through',index)">0</button>
+                      <button @click="updateNumber('00','through',index)">00</button>
+                      <button
+                        @click="delNumder('through',index)"
+                        style="background:rgb(247, 102, 73);font-size:.4rem;line-height:.86rem;"
+                      >x</button>
+                    </div>
+                  </div>
+                </div> -->
+                <div class="bottonBox row allAlignment" v-if="clickIndex=='through'+index">
+                  <div class="bottonBox-num  column allAlignment center">
+                    <div @click="additionFun(100,'through',index) ">+100</div>
+                    <div @click="additionFun(1000,'through',index) ">+1000</div>
+                    <div @click="additionFun(10000,'through',index) ">+10000</div>
+                  </div>
+                  <div class="column allAlignment center" >
+                    <div class="row allAlignment center" style="width:3.8rem">
+                      <div v-for=" n in 3" @click="updateNumber(n,'through',index)">
+                        <button>{{n}}</button>
+                      </div>
+                    </div>
+                    <div class="row allAlignment center" style="width:3.8rem">
+                      <div v-for=" n in 3" @click="updateNumber(n+3,'through',index)">
+                        <button>{{n+3}}</button>
+                      </div>
+                    </div>
+
+                    <div class="row allAlignment center" style="width:3.8rem">
+                      <div v-for=" n in 3" @click="updateNumber(n+6,'through',index)">
+                        <button>{{n+6}}</button>
+                      </div>
+                  
+                    </div>
+                  </div>
+                  <div class="column allAlignment center" >
+                    <button class="btn-right"  @click="delNumder('through',index)" >x</button>
+                    <button class="btn-right"  style="margin:0.1rem 0;" @click="updateNumber('0','through',index)">0</button>
+                    <button class="btn-right" @click="updateNumber('00','through',index)">00</button>
+                  </div>
+                </div>
+              </div>
+            </yd-accordion-item>
+          </yd-accordion>
+
+          <!-- <div class="row allAlignment center " style="height: 0.8rem;background: #ccc;padding: 0 0.2rem;">
+          <span>复式连串过关投注</span>
+          <img  style="width:.4rem;height:.4rem" src="../assets/st-imges/xiangxia.png" alt="">
+          </div>-->
+        </div>
+
+        <div v-if="passThroughPlay" class="row center" style="background:#f8f8f8;">
+          <span style="color:red ">红色选项不可以结合进行过关投注</span>
+        </div>
+
+        <!-- 总数据展示 -->
+        <div class="row allAlignment" style="padding:.1rem .2rem;background:#f8f8f8;">
+          <span v-if="dataNum" class="showNumberSpan">所有投注({{dataNum}}):</span>
+          <span v-else class="showNumberSpan">所有投注:</span>
+          <span v-if="dataNumbe" style="font-size:0.24rem">{{(dataNumbe)}}</span>
+          <span v-else style="font-size:0.24rem">0.00</span>
+        </div>
+        <div class="row allAlignment" style="padding:0 .2rem;background:#f8f8f8;">
+          <span class="showNumberSpan">可赢金额:</span>
+          <span
+            v-if="datamMoney || compound_amount "
+            style="font-size:0.24rem;color:#F76649;"
+          >{{compound_amount *1 ?(compound_amount*1+datamMoney*1).toFixed(2):(datamMoney).toFixed(2)}}</span>
+          <span v-else style="font-size:0.24rem;color:#F76649;">0.00</span>
+        </div>
+        <div style="background:#f8f8f8;padding:.1rem 0;border-radius: 0 0 .1rem .1rem; ">
+          <div class="btn" style="background:#F76649;" @click="betOrder" v-if="isLogin">
+            <span>确认投注</span>
+          </div>
+          <div class="btn" style="background:#F76649;" @click="loginReg" v-else>
+            <span>登陆/注册</span>
+          </div>
+          <div class="btn" style="background:#A1A1A1;" @click="shrink">
+            <span>添加更多的选择</span>
+          </div>
+          <div class="btn" style="background:#333;margin-bottom:.1rem;" @click.stop="alldel()">
+            <span>全删除</span>
+          </div>
+        </div>
+      </div>
+
+      <!-- <div class="loading_box row center" >
+        <div class="weui-loading"></div>
+      </div>-->
+    </div>
+    <div
+      class="shrink"
+      :style="newIsShrink?'':'display:none'"
+      @click="show()"
+    >
+      投注单--选项
+      <span class="num">{{dataList?dataList.length:'0'}}</span>
+    </div>
+    <div></div>
+    <div v-if="isshow" class="login">
+      <Login></Login>
+    </div>
+    <div v-else-if="rgShow" class="login">
+      <register></register>
+    </div>
+  </div>
+</template>
+<script>
+import "../css/index.css";
+import Login from "@/pages/Login/index/StLogin";
+import register from "@/pages/Login/index/register";
+export default {
+  data() {
+    return {
+      img: require("../assets/st-imges/del.png"),
+      img_size: require("../assets/st-imges/narrow.png"),
+      bettingNumber: [],
+      balance: "", //余额
+      bettingquantity: "", // 投注信息
+      betting: "",
+      dataList: [],
+      arr: [], // 是否缩小
+      isshrink: false, //小键盘显示位
+      clickIndex: 0,
+      // money:0,//可赢金额
+      arrNumber: "", //单注数量
+      dataNum: 0, //已投注数量
+      dataNumbe: 0, //总投数
+      datamMoney: 0, //可赢总金额
+      isThrough: false, //触发过关玩法
+      cash: 0.0, //余额
+      compound: [], //复合玩法
+      passThroughPlay: false, //判断比赛数据是否有相同赛事
+      isLogin: false, //是否登陆
+      isshow: false, //登陆显示/隐藏
+      rgShow: false, //注册显示/隐藏
+      compound_amount: "", //复合玩法可赢金额
+      isSubmit: false //防止重复提交
+    };
+  },
+  components: {
+    Login,
+    register
+  },
+  methods: {
+    //
+    /*---------------------------------- */
+    //阻止input框获取焦点
+    go: function() {
+      document.activeElement.blur();
+    },
+
+    /*---------------------------------- */
+    //小键盘数字字符串拼接
+    updateNumber: function(val, index, num) {
+      // console.log(index);
+      let temporaryData = "";
+      let isNumbers = true;
+      if (index != "through" && index == "all") {
+        temporaryData =
+          this.arrNumber * 1 ? this.arrNumber + val + "" : val + "";
+        if (temporaryData * 1 > 999999999) {
+          temporaryData = 999999999 + "";
+        }
+        this.arrNumber = temporaryData;
+      }
+      if (index == "through") {
+        isNumbers = false;
+        let dataVal =
+          this.compound[num].money * 1 > 0
+            ? this.compound[num].money + (val + "")
+            : val + "";
+        if (dataVal * 1 > 999999999) {
+          dataVal = 999999999 + "";
+        }
+        this.$set(this.compound[num], "money", dataVal);
+      } else {
+        this.dataList.forEach((e, i) => {
+          if (index != "all" && index != "through") {
+            if (index == i) {
+              temporaryData =
+                this.bettingNumber[index] * 1
+                  ? this.bettingNumber[index] + (val + "")
+                  : val + "";
+              if (temporaryData * 1 > 999999999) {
+                temporaryData = 999999999 + "";
+              }
+              this.bettingNumber.splice(index, 1, temporaryData);
+              this.arrNumber = "";
+            }
+          } else if (index == "all") {
+            this.bettingNumber.splice(i, 1, temporaryData);
+          }
+        });
+      }
+      this.profitFun();
+    },
+
+    /*---------------------------------------------*/
+    //投注加法
+    additionFun: function(val, index, num) {
+      let data = "";
+      let isNumbers = true;
+      if (index != "through" && index == "all") {
+        let dataAdd = 0;
+        data =
+          this.arrNumber * 1 ? this.arrNumber * 1 + val * 1 + "" : val + "";
+        if (data * 1 > 999999999) {
+          data = 999999999 + "";
+        }
+        this.arrNumber = data;
+      }
+      if (index == "through") {
+        isNumbers = false;
+        let dataVal =
+          this.compound[num].money * 1 > 0
+            ? this.compound[num].money * 1 + val * 1
+            : val + "";
+        if (dataVal * 1 > 999999999) {
+          dataVal = 999999999 + "";
+        }
+        this.$set(this.compound[num], "money", dataVal);
+      } else {
+        this.dataList.forEach((e, i) => {
+          if (index != "all" && index != "through") {
+            if (index == i) {
+              data =
+                this.bettingNumber[index] * 1
+                  ? this.bettingNumber[index] * 1 + val + ""
+                  : val + "";
+              if (data * 1 > 999999999) {
+                data = 999999999 + "";
+              }
+              this.bettingNumber.splice(index, 1, data);
+              this.arrNumber = "";
+            }
+          } else if (index == "all") {
+            this.bettingNumber.splice(i, 1, data);
+          }
+        });
+      }
+      //if(!isNumbers) return false;
+      this.profitFun();
+    },
+
+    /*---------------------------------- */
+    //删除投注数的一位数
+    delNumder: function(index, num) {
+      //console.log(this.compound);
+      let Str = this.bettingNumber;
+      let strVal = "";
+      let isNumbers = true;
+      if (index == "through") {
+        isNumbers = false;
+        strVal = this.compound[num].money.substring(
+          0,
+          this.compound[num].money.length - 1
+        );
+        this.$set(this.compound[num], "money", strVal);
+      } else {
+        if (index != "all") {
+          Str.forEach((e, i) => {
+            if (i == index) {
+              strVal = e;
+              e = strVal.substring(0, strVal.length - 1);
+              this.bettingNumber.splice(index, 1, e);
+              this.arrNumber = "";
+            }
+          });
+        } else {
+          Str.forEach((e, i) => {
+            strVal = e.substring(0, e.length - 1);
+            // console.log(strVal);
+            this.bettingNumber.splice(i, 1, strVal);
+          });
+          this.arrNumber = this.arrNumber.substring(
+            0,
+            this.arrNumber.length - 1
+          );
+        }
+      }
+      //if(!isNumbers) return false;
+      this.profitFun();
+    },
+
+    /*---------------------------------- */
+    //清空input框数据
+    ClearData: function(index, num) {
+      let isNumbers = true;
+      if (index == "through") {
+        //console.log(num);
+        isNumbers = false;
+        this.$set(this.compound[num], "money", "");
+      } else {
+        this.bettingNumber.forEach((e, i) => {
+          if (index != "all") {
+            if (i == index) {
+              this.bettingNumber.splice(index, 1, "");
+              this.arrNumber = "";
+            }
+          } else if (index == "all") {
+            this.bettingNumber.splice(i, 1, "");
+            this.arrNumber = "";
+          }
+        });
+      }
+      //if(!isNumbers) return false;
+      this.profitFun();
+    },
+
+    /*---------------------------------- */
+    // 删除所有投注
+    alldel() {
+      let betting = this.$store.getters.getBetting;
+      betting.forEach(e => {
+        e.data = [];
+      });
+      this.$store.dispatch("SET_NOROLL", false);
+      this.bettingNumber = [];
+      this.$store.dispatch("BETTING", []);
+      this.$store.dispatch("BETTING", betting);
+      this.$public.setItem("box_size", 2);
+      this.$store.dispatch("ISBETTING", "-1");
+      this.$store.dispatch("DEL_TYPE", "all");
+      this.profitFun();
+    },
+
+    /*---------------------------------- */
+    // 激活投注框的小键盘
+    activekey(index) {
+      this.clickIndex = index;
+    },
+
+    /*---------------------------------- */
+    // 删除指定的投注数据
+    delarr(name, numid) {
+      let betting = this.$store.getters.getBetting;
+      betting.forEach(res => {
+        if (res.title == name) {
+          res.data.forEach((e, index) => {
+            if (e.id == numid) {
+              res.data.splice(index, 1);
+              //删除数据也要删除想对应的值
+              this.bettingNumber.splice(index, 1);
+            }
+          });
+        }
+        this.$store.dispatch("BETTING", []);
+        this.$store.dispatch("BETTING", betting);
+      });
+      this.$store.dispatch("DEL_TYPE", numid);
+      this.profitFun();
+    },
+
+    /*---------------------------------- */
+    //投注窗口放大
+    shrink() {
+      this.isshrink = true;
+      this.$public.setItem("box_size", 1);
+    },
+
+    /*---------------------------------- */
+    //计算可赢金额(总额)
+    profitFun() {
+      let dataNum = 0;
+      let dataNumbe = 0;
+      let datamMoney = 0;
+      let compound_amount = 0;
+      this.bettingNumber.forEach((e, i) => {
+        if (e) {
+          dataNum++;
+          dataNumbe += e * 1;
+          datamMoney += e * 1 * this.dataList[i].odds;
+        }
+      });
+      this.compound.forEach(e => {
+        //console.log(e);
+        if (e.money * 1 > 0) {
+          dataNum += e.index * 1;
+          dataNumbe += e.money * 1 * e.index * 1;
+          compound_amount += e.money * e.odds;
+        }
+      });
+      this.dataNum = dataNum;
+      this.dataNumbe = dataNumbe + "";
+      this.datamMoney = datamMoney;
+      this.compound_amount = compound_amount;
+    },
+
+    /*---------------------------------- */
+    //投注窗口缩小
+    show() {
+      this.isshrink = false;
+      this.$public.setItem("box_size", 2);
+    },
+
+    /*---------------------------------- */
+    //登陆
+    loginReg() {
+      let isShow = true;
+      this.isshow = true;
+      this.$store.dispatch("GET_ISSHOW", isShow);
+    },
+    /*------------------------------- */
+    //投注确认提交
+    betOrder() {
+      if (this.isSubmit) return false;
+      let limitingCond = JSON.parse(this.$public.getItem('limitingCond'));
+      this.isSubmit = true;
+      let list = [],
+        obj = {},
+        obj1 = {};
+      this.dataList.forEach((res, index) => {
+        //单式数据组合
+        if (this.bettingNumber[index]) {
+          obj = {
+            type: "1",
+            index: index,
+            bet_amount: this.bettingNumber[index]
+          };
+          list.push(obj);
+        }
+      });
+      //串式数据组合
+      this.compound.forEach(e => {
+        if (e.money) {
+          obj = {
+            type: e.title,
+            // odds:e.odds,
+            bet_amount: e.money //e.amount
+          };
+          list.push(obj);
+        }
+      });
+      list.push(this.dataList);
+      if (list.length > 1 && this.dataNumbe *1 >0 ) {
+        if(limitingCond.lower_limit * 1 <= this.dataNumbe  && limitingCond.upper_limit * 1 >= this.dataNumbe){
+          let token = this.$public.getItem("token");
+          this.$http.post(this.$ports.betOrder.Bet, {
+            data: list,
+            token,
+            bet_money: this.dataNumbe
+          }).then(res => {
+            //console.log('数据',res.data);
+            if (res.data.status == 1) {
+              this.alldel();
+              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();
+            }else{
+              this.$dialog.alert({ mes: "错误代码:"+res.data.status});
+            }
+            this.isSubmit = false;
+          });
+        }else if(this.dataNumbe < limitingCond.lower_limit*1 ){
+          this.$dialog.alert({ mes: `亲!你输入的投注额,小于最低投注限制${limitingCond.lower_limit}元` });
+          this.isSubmit = false;
+
+        }else if(this.dataNumbe > limitingCond.upper_limit*1 ){
+          this.$dialog.alert({ mes: `亲!你输入的投注额,大于最高投注限制${limitingCond.upper_limit}元` });
+          this.isSubmit = false;
+        }
+      } else {
+        this.$dialog.alert({ mes: "亲!你还未输入投注金额啦。" });
+        this.isSubmit = false;
+      }
+    },
+
+    /*---------------------------------- */
+    //投注页面数据处理
+    getDataList: function(val) {
+      let arrays = [];
+      this.dataList = [];
+      if (val) {
+        val.forEach(e => {
+          if (e.data.length > 0) {
+            e.data.forEach((res, index) => {
+              if (this.bettingNumber.length < e.data.length) {
+                this.bettingNumber.push("");
+              }
+              res.repeat = false;
+              this.passThroughPlay = false;
+              arrays.push(res);
+              //console.log('什么数据',arrays);
+            });
+          }
+        });
+        this.dataList = arrays;
+
+        //判断比赛数据是否相同赛事
+        if (this.dataList.length > 1) {
+          this.dataList.forEach((res, i) => {
+            this.dataList.forEach((e, index) => {
+              if (res.match_id == e.match_id && i != index) {
+                e.repeat = true;
+                this.passThroughPlay = true;
+              }
+            });
+          });
+        }
+
+        // 查看是否还有数据确定是否要关闭窗口
+      }
+      if (this.dataList.length == 0) {
+        this.$public.setItem("box_size", 2);
+        this.$store.dispatch("ISBETTING", "-1");
+      }
+      //console.log('处理完成的数据',this.dataList);
+
+      //判断是否有过关玩法
+      if (this.dataList.length >= 3) {
+        this.compound.splice(0, this.compound.length);
+        this.isThrough = true;
+        this.dataList.forEach((res, index) => {
+          if (index >= 2) {
+            //this.$public.betPlay(index+1,this.dataList)
+            this.compound.push(this.$public.betPlay(index + 1, this.dataList));
+          }
+        });
+      } else {
+        this.compound.splice(0, this.compound.length);
+      }
+      this.$store.dispatch("DEL_TYPE", "");
+    },
+
+    /*---------------------------------- */
+    //获取用户个人信息
+    getUserInfo() {
+      let token = this.$public.getItem("token");
+      this.$http.post(this.$ports.login.getAgent, { token }).then(res => {
+        //console.log('检测',res);
+        if (res.data.status == 1 && res.data.data != null) {
+          this.cash = res.data.data.cash;
+          this.isLogin = true;
+        } else {
+          this.isLogin = false;
+        }
+      });
+    }
+  },
+
+  /**
+   *
+   */
+  computed: {
+    //获取vuex投注数据
+    getBetting: function() {
+      return this.$store.getters.getBetting;
+    },
+    /*------------------------------*/
+    //获取投注框放大缩小状态
+    newIsShrink() {
+      // 改变背景滑动
+      this.$store.dispatch("SET_NOROLL", !this.isshrink);
+      return this.isshrink;
+    },
+    //获取注册页面状态
+    getRgShow() {
+      return this.$store.getters.getRgShow;
+    },
+    //获取登陆页面状态
+    getIsShow() {
+      return this.$store.getters.getIsShow;
+    },
+    //获取用户token
+    getToken() {
+      return this.$store.getters.getToken;
+    }
+  },
+
+  /**
+   *
+   */
+  watch: {
+    getIsShow(val) {
+      this.isshow = val;
+    },
+    getBetting(val) {
+      this.getDataList(val);
+    },
+    //显示注册页面
+    getRgShow(val) {
+      this.rgShow = val;
+      this.isshow = val ? false : true;
+      //console.log(this.rgShow);
+    },
+    getToken(val) {
+      //this.getUserInfo();
+      this.isLogin = true;
+    }
+  },
+
+  /**
+   * 页面初始化完成进行挂载
+   */
+  mounted() {
+    if (this.$public.getItem("box_size") == 1) {
+      this.isshrink = true;
+    }
+    this.getDataList(this.$store.getters.getBetting);
+    this.getUserInfo();
+    if (this.$public.getItem("token")) {
+      this.isLogin = true;
+    }
+  }
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.login {
+  z-index: 999999;
+  position: fixed;
+  top: 0;
+}
+.num {
+  display: inline-block;
+  width: 0.46rem;
+  height: 0.46rem;
+  background: #dcdcdc;
+  border-radius: 50%;
+  line-height: 0.46rem;
+  text-align: center;
+  color: #f76649;
+}
+.bgcolor {
+  background: rgba(40, 40, 40, 0.75);
+  height: 55rem;
+}
+.hiddenbox {
+  height: 1rem;
+}
+.head {
+  display: flex;
+  justify-content: center;
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 1000000;
+}
+.baffleBox {
+  position: fixed;
+  overflow-y: scroll;
+  top: 0;
+  left: 0.4rem;
+  width: 100%;
+  height: 100%;
+  -webkit-overflow-scrolling: touch;
+  z-index: 29;
+  box-sizing: border-box;
+}
+.baffleBox::-webkit-scrollbar {
+  width: 0;
+  height: 0;
+  background: transparent;
+}
+.allBox {
+  width: 100%;
+  height: 100%;
+  border-radius: 0.1rem 0.1rem;
+}
+.box {
+  background: #f76649;
+  border-radius: 0.1rem 0.1rem 0 0;
+  height: 1rem;
+  line-height: 1rem;
+  padding: 0 0.32rem 0 0.22rem;
+}
+.bottonBox {
+  /* margin-top: 0.1rem;*/
+  padding: 0.22rem 0; 
+  background: #CFD3D9;
+}
+.titleBox {
+  padding: 0.21rem 0.07rem;
+  border-bottom: 1px solid #ebebeb;
+  background: #f8f8f8;
+}
+.bettingInput {
+  padding-right: 0.32rem;
+  padding-left: 0.45rem;
+  height: 0.9rem;
+  margin-top: 0.1rem;
+}
+.inputBox {
+  width: 2.6rem;
+  height: 0.8rem;
+  border: 1px solid #CFD3D9;
+  border-radius: 0.1rem;
+  line-height: 0.8rem;
+  padding-left: 0.22rem;
+}
+input {
+  border: 0;
+  width: 1.7rem;
+}
+.tilteMatch {
+  height: 1.52rem;
+  background: #ebebeb;
+}
+.tilteMatchDiv {
+  margin-left: 0.13rem;
+}
+.cancel {
+  padding: 0 0.15rem;
+}
+.btn-right{
+  color: #FFFFFF;
+  background: #A7AFBC;
+}
+button {
+  width: 1.2rem;
+  height: 0.8rem;
+  border: 0;
+  background: #FFFFFF;
+  border-radius: 0.1rem;
+  color: #000000;
+}
+.bottonBox-num > div {
+  text-align: center;
+  width: 1.2rem;
+  height: 0.8rem;
+  line-height: 0.8rem;
+  border-radius: 0.1rem;
+  color: #FFFFFF;
+  background: #A7AFBC;
+}
+.showNumber {
+  /* margin-top: 0.36rem; */
+  border-bottom: 1px solid #ebebeb;
+  background: #f8f8f8;
+  padding-top: 0.2rem;
+  padding: 0.21rem 0.2rem;
+}
+.btn {
+  width: 100%;
+  height: 0.94rem;
+  border-radius: 0.1rem;
+  line-height: 0.94rem;
+  color: #f8f8f8;
+  text-align: center;
+  margin-top: 0.1rem;
+}
+.showNumberSpan {
+  color: #363636;
+  font-size: 0.28rem;
+}
+.shrink {
+  height: 1rem;
+  width: 100%;
+  background: #f76649;
+  color: #dcdcdc;
+  position: fixed;
+  left: 0;
+  bottom: 0rem;
+  line-height: 1rem;
+  text-align: center;
+  font-size: 0.3rem;
+}
+.loading_box {
+  width: 3rem;
+  height: 3rem;
+  background: #ebebeb;
+}
+</style>
+
+

二进制
.svn/pristine/1a/1a6ace377133f14a2b2cd7c48f10369a6bc54b2e.svn-base


+ 102 - 0
.svn/pristine/1a/1acee2bf067f9a9ce1747be97615a39b52012ee6.svn-base

@@ -0,0 +1,102 @@
+<template>
+    <div>
+        <div class="TheOdds-title">{{data.title}}</div>
+        <div class="TheOdds-list" v-for="(i,index) in data.list" :key="i.id">
+            <div class="TheOdds-list-left">
+                <span>{{i.name}}</span>
+            </div>
+            <div class="TheOdds-list-right">
+                <div :class="i.istrue==true?'TheOdds-list-right-num active':'TheOdds-list-right-num'" @click="myisclick(index)">
+                    {{i.ratio}}
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+    export default {
+        name:"TheOdds",
+        data() {
+            return {
+                data:{
+                    title:'冠军',
+                    list:[
+                        {
+                            name:"曼城",
+                            ratio:"3.25"
+                        },
+                         {
+                            name:"尤文图斯",
+                            ratio:"3.25"
+                        },
+                         {
+                            name:"巴塞罗那",
+                            ratio:"3.25"
+                        },
+                        {
+                            name:"利物浦",
+                            ratio:"3.25"
+                        }
+                    ]
+                }
+            }
+        },
+            methods: {
+                    myisclick(index){
+                        this.$set(this.data.list[index],'istrue',this.data.list[index].istrue==true?false:true)
+                    }
+                },
+    }
+</script>
+
+<style scoped>
+    .TheOdds-title{
+        height: .88rem;
+        background: #e4e4e4;
+        display: flex;
+        padding:0 .32rem;
+        align-items: center;
+        font-size: .28rem;
+        color: #333;
+    }
+    .TheOdds-list{
+        height: .88rem;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        border-bottom: 1px solid #e4e4e4;
+        padding: 0 .32rem;
+        background: #fff;
+    }
+    .TheOdds-list-left,.TheOdds-list-right{
+        width: 50%;
+        height: 100%;
+    }
+    .TheOdds-list-left{
+        font-size: .32rem;
+        color: #333;
+        display: flex;
+        align-items: center;
+    }
+    .TheOdds-list-right{
+        font-size: .26rem;
+        color: #333;
+        display: flex;
+        justify-content: flex-end;
+        align-items: center;
+    }
+    .TheOdds-list-right-num{
+        width: 1.07rem;
+        height: .76rem;
+        border: 1px solid #e4e4e4;
+        border-radius: .1rem;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-weight: bold;
+    }
+    .active{
+        background: #e4e4e4;
+    }
+</style>

+ 684 - 0
.svn/pristine/1a/1ae687aef986c675ea97c0ab57f990c41bbc79b4.svn-base

@@ -0,0 +1,684 @@
+<template>
+  <div>
+    <div class="Serch">
+      <div class="Soccer-game row center">
+        <div class="Soccer-game-title row center">
+          <img class="returnimg" :src="img.searchreturn" @click="isreturn()">
+          {{Regulations.title}}
+        </div>
+        <div
+          class="row center"
+          style="height:0.88rem;margin-left:0.1rem;padding:0 0.1rem;"
+          @click="IsSoccerGameClick(isSoccerGameClick)"
+        >
+          <img
+            :class="isSoccerGameClick==true?'Soccer-game-src act':'Soccer-game-src return'"
+            :src="img.Soccerimg1"
+          >
+        </div>
+      </div>
+      <div class="Serch-box">
+        <div class="Serch-box-home">
+          <img class="Serch-box-img" :src="img.Serchimg">
+          <input
+            v-model="SerchValue"
+            @input="serchchange(SerchValue)"
+            class="Serch-box-input"
+            type="text"
+            placeholder="请输入联赛名称"
+          >
+          <img
+            class="Serch-box-del"
+            @click="delinputvalue()"
+            v-if="Serchchange==true"
+            :src="img.Serchdel"
+          >
+        </div>
+      </div>
+    </div>
+    <div class="Soccer-game-box row" v-if="isSoccerGameClick==true">
+      <p
+        @click="listActive(i.id)"
+        v-for="(i,index) in Regulations.list"
+        :key="index"
+        :class="listnum==i.id?'active':''"
+      >{{i.name}}</p>
+    </div>
+    <div v-if="this.$route.query.id =='zq'&&  this.isTrue == true " class="box">
+      <div id="NavSlide">
+        <nav style="background:#ebebeb">
+          <p v-for="(item,$index) in arr" @click="toggle($index,item.id)" :key="$index">
+            <span :class="{active:$index==active}">{{item.title}}</span>
+          </p>
+        </nav>
+      </div>
+    </div>
+    <div class="match" v-if="entryShow">
+      <yd-accordion accordion>
+        <div class="matchBox" v-for="items in data" :key="items.id">
+          <yd-accordion-item :title="items.region" open>
+            <div class="list">
+              <div
+                v-for="item in items.league_count"
+                :key="item.lg_id"
+                @click="goMatchInfo(item.lg_id )"
+              >
+                <span>{{item.league}}</span>
+                <span class="num">{{item.count}}</span>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </div>
+      </yd-accordion>
+    </div>
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+    <!-- 参赛表 -->
+    <div v-if="!entryShow" class="entry">
+      <div
+        class="list"
+        v-for="item in entryList.info"
+        :key="item.id"
+        @click="goMatchInfo(item.lg_id,item.code,item.count )"
+      >
+        <span>{{item.name}}</span>
+        <span class="num">{{item.count}}</span>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import NotOpend from "@/components/StNotOpend";
+import "../css/index.css";
+export default {
+  data() {
+    return {
+      SerchValue: "",
+      data: "", //联赛列表
+      ballId: "", //球类别名
+      noData: false, //没有数据为true
+      datetimeNum: "", //赛事时间
+      active: 0,
+      listnum: 2, //赛事类型
+      isTrue: true, //显示日期
+      Serchchange: false,
+      info: "没有相关联赛信息",
+      isSoccerGameClick: true,
+      entryShow: false, //显示参赛表
+      entryList: "", // 参赛表数据
+      img: {
+        Soccerimg1: require("../assets/st-imges/soccer1.png"),
+        Soccerimg2: require("../assets/st-imges/soccer1.png"),
+        Serchimg: require("../assets/st-imges/sousuo.png"),
+        Serchdel: require("../assets/st-imges/del.png"),
+        searchreturn: require("../assets/st-imges/returnbox.png")
+      },
+      Regulations: {
+        title: " ",
+        list: [
+          { id: 1, name: "参赛表" },
+          { id: 2, name: "赛事" },
+          { id: 3, name: "冠军盘口" }
+        ]
+      },
+      active: 0,
+      arr: [{ id: "", title: "所有赛事" }, { id: "today", title: "今日赛事" }],
+      timers: true,
+      getIsShow:true,
+    };
+  },
+  components: {
+    NotOpend
+  },
+  created() {
+    this.fun_date();
+  },
+  methods: {
+    //设置一周赛事
+    fun_date: function() {
+      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.arr.push(time);
+        if (i == 6) {
+          this.arr.push({ id: "morning", title: "早盘" });
+        }
+      }
+    },
+    
+    //获取数据信息
+    //game_code=球类型、search=联赛搜索关键字、datetime=日期搜索、event_type=赛事类型
+    getAjaxInfo: function(url,typeGame,gameType,game_code,search,datetime,event_type
+    ) {
+      this.$http
+        .get(url, { typeGame, gameType, search, datetime, event_type })
+        .then(res => {
+          if (
+            res.status == 200 &&
+            res.data.data != [] &&
+            res.data.data != null
+          ) {
+            // console.log("数据", res.data);
+            this.noData = false;
+            if (this.listnum == 1) {
+              this.entryList = res.data.data;
+              // console.log("entry", this.entryList);
+            }
+            this.Regulations.title = res.data.data.type;
+            if (res.data.data.info.length > 0) {
+              this.data = res.data.data.info;
+            } else {
+              this.data = "";
+              this.noData = true;
+            }
+            // this.$store.dispatch('GET_BALL_DATA',res.data);//将活动类别存入vuex里面
+          }
+        });
+        let _this=this;
+        setTimeout(()=>{
+            _this.$store.dispatch('GETSHOW',false); 
+        },1000)
+    },
+    //获取冠军盘口数据
+    getChampion: function(game_code, search) {
+      this.$store.dispatch("GETSHOW", true);
+      this.$http
+        .get(this.$ports.match.matchState, {
+          type_code: "StChampion",
+          game_code,
+          search
+        })
+        .then(res => {
+          this.data = '';
+          // console.log("res", res);
+          if (
+            res.data.status == 1 &&
+            res.data.data.length > 0 &&
+            res.data.data != null
+          ) {
+            this.data = res.data.data;
+            this.noData = false;
+            // console.log("res", res);
+          } else {
+            this.noData = true;
+          }
+          let _this = this;
+        setTimeout(function(){
+          _this.$store.dispatch('GETSHOW',false);
+        },1000)
+        });
+    },
+    //显示隐藏赛事类型
+    IsSoccerGameClick(isclick) {
+      this.isSoccerGameClick = !isclick;
+    },
+    //获取input输入的值查询数据
+    serchchange(val) {
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+      if (this.listnum == 2) {
+        this.getAjaxInfo(
+          this.$ports.match.matchData,
+          "",
+          this.$route.query.id,
+          this.$route.query.id,
+          val,
+          this.datetimeNum,
+          this.listnum
+        );
+      } else if (this.listnum == 3) {
+        this.getChampion(this.$route.query.id, val);
+      }
+    },
+    //删除搜索框数据
+    delinputvalue() {
+      this.SerchValue = "";
+      this.Serchchange = false;
+      if (this.listnum == 2) {
+        this.getAjaxInfo(
+          this.$ports.match.matchData,
+          "",
+          this.$route.query.id,
+          this.$route.query.id,
+          "",
+          this.datetimeNum,
+          this.listnum
+        );
+      } else if (this.listnum == 3) {
+        this.getChampion(this.$route.query.id);
+      }
+    },
+    //切换赛事类型
+    listActive(id) {
+      if (this.listnum == id) return false;
+      this.SerchValue = "";
+      this.listnum = id;
+      if (id == 2) {
+        this.entryList = ''
+        this.isTrue = true;
+        this.entryShow = true;
+        this.getAjaxInfo(
+          this.$ports.match.matchData,
+          "",
+          this.$route.query.id,
+          this.$route.query.id,
+          "",
+          this.datetimeNum,
+          id
+        );
+      }else if(id == 1){
+        this.isTrue = false;
+        this.entryShow = false;
+        this.data = '';
+        this.getAjaxInfo(this.$ports.match.participate, this.$route.query.id);
+      }
+       else {
+        this.isTrue = false;
+        this.entryShow = true;
+        this.getChampion(this.$route.query.id);
+      }
+    },
+    //切换日期时间
+    toggle: function(index, id) {
+      this.active = index;
+      this.datetimeNum = id;
+      // console.log("id", this.datetimeNum);
+      this.SerchValue = "";
+      this.getAjaxInfo(
+        this.$ports.match.matchData,
+        "",
+        this.$route.query.id,
+        this.$route.query.id,
+        "",
+        id,
+        this.listnum
+      );
+    },
+    //打开联赛投注页面
+    goMatchInfo: function(sessionId, code,count) {
+      this.$store.dispatch("GETACTIVITY", 'home')
+      if(count == 0){
+
+      }else{
+            if (this.listnum == 3) {
+        this.$router.push({
+          path: "StLeagueList",
+          query: {
+            game_code: this.ballId,
+            leagueID: sessionId,
+            name: this.Regulations.title,
+            matchDate: this.datetimeNum,
+            code: code,
+            champion: 3
+          }
+        });
+      } else if (this.listnum == 2) {
+        this.$router.push({
+          path: "StLeagueList",
+          query: {
+            game_code: this.ballId,
+            leagueID: sessionId,
+            name: this.Regulations.title,
+            matchDate: this.datetimeNum,
+            code: code,
+            matchDtl: 2
+          }
+        });
+      } else {
+        this.$router.push({
+          path: "StLeagueList",
+          query: {
+            game_code: this.ballId,
+            leagueID: sessionId,
+            name: this.Regulations.title,
+            matchDate: this.datetimeNum,
+            lg_id : '',
+            code: code,
+            getIsShow:true,
+          }
+        });
+      }
+      }
+  
+    },
+    // 返回上一层页面
+    isreturn() {
+      history.go(-1);
+    }
+  },
+  mounted() {
+    if(this.getIsShow){
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjaxInfo(
+          _this.$ports.match.matchData,
+          "",
+          _this.$route.query.id,
+          _this.$store.getters.getBallId
+        );
+      }else{
+        clearInterval(timing);
+
+      }
+    },(1000*180));
+    //分球的类型获取默认数据
+    this.ballId = this.$route.query.id;
+    //console.log(this.$route.query.id);
+    this.$store.dispatch("GETSHOW", true);
+    this.getAjaxInfo(
+      this.$ports.match.matchData,
+      "",
+      this.$route.query.id,
+      this.$store.getters.getBallId
+    );
+    if (this.listnum == 2) {
+      this.entryShow = true;
+    }
+  },
+  computed: {
+    changeListNum() {
+      return this.listnum;
+    }
+  },
+  watch: {
+    changeListNum(val) {
+      let _this = this;
+      this.timers = false;
+      if (val == 1) {
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+            _this.getAjaxInfo(
+              _this.$ports.match.participate,
+              _this.$route.query.id
+            );
+          }else{
+            clearInterval(timing);
+
+          }
+        },(1000*180));
+      } else if (val == 2) {
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+            _this.getAjaxInfo(
+              _this.$ports.match.matchData,
+              "",
+              _this.$route.query.id,
+              _this.$route.query.id,
+              "",
+              _this.datetimeNum,
+              '2'
+            );
+          }else{
+            clearInterval(timing);
+
+          }
+        },(1000*180));
+      } else {
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+          _this.getChampion(_this.$route.query.id);
+          }else{
+            clearInterval(timing);
+
+          }
+        },(1000*180));
+      }
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.act {
+  transform: rotate(180deg);
+  transition: 0.2s;
+}
+.return {
+  transform: rotate(0deg);
+  transition: 0.2s;
+}
+.Serch {
+  height: 0.88rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: linear-gradient(to bottom, #6a6a6a, #565656);
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.33rem;
+}
+.returnimg {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.1rem;
+}
+.Serch-box {
+  display: flex;
+  align-items: center;
+}
+.Serch-box-input {
+  width: 3.8rem;
+  border: none;
+  position: absolute;
+  height: 0.44rem;
+  line-height: 0.44rem;
+  left: 0.5rem;
+  color: #aaa;
+}
+.Serch-box-img {
+  width: 0.3rem;
+  height: 0.3rem;
+  position: absolute;
+  left: 0.1rem;
+  top: 0.06rem;
+}
+.Serch-box-del {
+  width: 0.2rem;
+  height: 0.2rem;
+  position: absolute;
+  right: 0.2rem;
+}
+.Serch-box-home {
+  height: 0.45rem;
+  line-height: 0.45rem;
+  width: 4.73rem;
+  background: #e4e4e4;
+  border-radius: 0.2rem;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  padding-left: 0.1rem;
+  padding-right: 0.1rem;
+  position: relative;
+}
+.Soccer-game-title {
+  height: 0.88rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  height: 0.88rem;
+  /* padding: 0 0.32rem; */
+  background-color: #626262;
+}
+.Soccer-game-box > p {
+  margin: 0.3rem;
+  color: #a6a6a6;
+}
+.Soccer-game-box p.active {
+  color: #f76649;
+}
+.Soccer-game-src {
+  width: 0.25rem;
+  height: 0.15rem;
+  /* margin-left: .3rem */
+}
+.box {
+  background: #ebebeb;
+  padding: 0 0.14rem;
+}
+#NavSlide {
+  width: 100%;
+  height: .88rem;
+  overflow: hidden;
+  background: #ebebeb;
+}
+#NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  margin: 0 0.05rem;
+  color: #b8b8b8;
+  height: 0.88rem;
+  line-height: 0.88rem;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+
+.yd-cell-box .yd-cell {
+  z-index: 99;
+  border-radius: 0.2rem;
+}
+.matchBox {
+  margin-bottom: 0.12rem;
+  background: #f9f9f9;
+  padding: 0.27rem 0.34rem 0 0.32rem;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.13rem 0 0;
+}
+div /deep/ .yd-accordion-content:after {
+  height: 0;
+}
+.match .tit {
+  display: flex;
+  justify-content: space-between;
+  font-size: 0.32rem;
+  margin-bottom: 0.3rem;
+}
+.match .list {
+  overflow: hidden;
+  transition: all 0.3s cubic-bezier(0.4, 0.6, 0.2, 1);
+}
+.match .list div {
+  background: #dcdcdc;
+  width: 100%;
+  height: 0.88rem;
+  padding: 0.26rem 0.56rem 0.3rem 0.3rem;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  border-radius: 0.08rem;
+  margin-bottom: 0.12rem;
+}
+div /deep/ .yd-accordion-head:after {
+  height: 0;
+}
+.match .list span {
+  color: #333333;
+  font-size: 0.28rem;
+}
+.match .list .num {
+  width: 0.4rem;
+  height: 0.4rem;
+  display: inline-block;
+  line-height: 0.4rem;
+  text-align: center;
+  color: #f5f5f5;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #f76649;
+}
+.yd-accordion {
+  background: transparent;
+}
+.match .list div:nth-last-child(1) {
+  margin-bottom: 0.34rem;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title,
+div /deep/ .yd-accordion-title-full {
+  height: 0.3rem;
+}
+div /deep/ .yd-accordion-title {
+  min-height: 0;
+}
+div /deep/ .yd-accordion-head {
+  margin-bottom: 0.3rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 0.4rem 0.4rem;
+}
+/* 参赛表 */
+.entry .list {
+  height: 1rem;
+  line-height: 0.6rem;
+  padding: 0.2rem;
+  width: 100%;
+  display: flex;
+  background: #a0a0a0;
+  color: #fefefe;
+  justify-content: space-between;
+  border-bottom: 1px solid #aaa;
+  font-size: 0.28rem;
+}
+.entry .list .num {
+  margin-top: 0.1rem;
+  width: 0.4rem;
+  height: 0.4rem;
+  display: inline-block;
+  line-height: 0.4rem;
+  text-align: center;
+  color: #f5f5f5;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #f76649;
+}
+</style>

+ 13 - 0
.svn/pristine/1c/1c44d115e76735a2eaf310e25c0882a0c443fe3e.svn-base

@@ -0,0 +1,13 @@
+<template>
+    <div>
+        <span>篮球比赛</span>
+    </div>
+</template>
+<script>
+export default {
+    name:'BasketComponents'
+}
+</script>
+<style  scoped>
+
+</style>

+ 53 - 0
.svn/pristine/1e/1e6a7707b7c8f1567501dd782839639eb5cdb179.svn-base

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" name="viewport"/>
+    <!-- <script src="//unpkg.com/vue-ydui/dist/ydui.flexible.js"></script> -->
+    <title>sports</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <!-- built files will be auto injected -->
+  </body>
+  <script>
+    /**
+ * YDUI 可伸缩布局方案
+ * rem计算方式:设计图尺寸px / 100 = 实际rem  【例: 100px = 1rem,32px = .32rem】
+ */
+!function (window) {
+  /* 设计图文档宽度 */
+  var docWidth = 750;
+
+  var doc = window.document,
+      docEl = doc.documentElement,
+      resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize';
+
+  var recalc = (function refreshRem () {
+      var clientWidth = docEl.getBoundingClientRect().width;
+
+      /* 8.55:小于320px不再缩小,11.2:大于420px不再放大 */
+      docEl.style.fontSize = Math.max(Math.min(20 * (clientWidth / docWidth), 11.2), 8.55) * 5 + 'px';
+
+      return refreshRem;
+  })();
+
+  /* 添加倍屏标识,安卓为1 */
+  docEl.setAttribute('data-dpr', window.navigator.appVersion.match(/iphone/gi) ? window.devicePixelRatio : 1);
+
+  if (/iP(hone|od|ad)/.test(window.navigator.userAgent)) {
+      /* 添加IOS标识 */
+      doc.documentElement.classList.add('ios');
+      /* IOS8以上给html添加hairline样式,以便特殊处理 */
+      if (parseInt(window.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)[1], 10) >= 8)
+          doc.documentElement.classList.add('hairline');
+  }
+
+  if (!doc.addEventListener) return;
+  window.addEventListener(resizeEvt, recalc, false);
+  doc.addEventListener('DOMContentLoaded', recalc, false);
+
+  }(window);
+  
+  </script>
+</html>

+ 1049 - 0
.svn/pristine/1f/1f5d7b7dc2b2db751becb2ce951e01003561fdad.svn-base

@@ -0,0 +1,1049 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 11:32:22
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <!-- 禁止滚动 -->
+  <div>
+    <div class="Serch row item-center">
+      <div class="Soccer-game row item-center">
+        <div
+          style=" display:flex;align-items:center;justify-content:center;"
+          class="Soccer-game-title"
+          @click="isreturn()"
+        >
+          <img class="box-img" src="../assets/st-imges/returnbox.png">
+          {{this.title}}
+        </div>
+      </div>
+      <div class="Serch-box row item-center">
+        <div class="Serch-box-home row item-center">
+          <img class="Serch-box-img" src="../assets/st-imges/sousuo.png">
+          <input
+            v-model="SerchValue"
+            @input="searchTeam(SerchValue)"
+            class="Serch-box-input"
+            type="text"
+            placeholder="请输入球队名称"
+          >
+          <img
+            class="Serch-box-del"
+            @click="delinputvalue()"
+            v-if="Serchchange==true"
+            src="../assets/st-imges/del.png"
+          >
+        </div>
+      </div>
+    </div>
+    <div v-if="isMatchShow" class="row allAlignment box center">
+      <span>{{data.leagueName}}</span>
+      <div class="Match-title-num">
+        <span>{{data.matchNum}}</span>
+      </div>
+    </div>
+
+    <div v-if="isMatchShow && ballSelt == 10" v-for=" (item,index) in data.matchData" :key="index" class="Match-box">
+      <div class="row allAlignment Match-box-top">
+        <div class="Match-box-top-left">
+          <span>{{item.match_date}}</span>
+          <span>{{item.match_time}}</span>
+        </div>
+        <div class="Match-box-top-right row">
+          <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
+          <span style="margin-right: .15rem;">让球</span>
+          <span style="margin-right: .15rem;">大小</span>
+        </div>
+      </div>
+      <div
+        class="row allAlignment center"
+        @click="matchInfo(item.match_id);"
+        style="padding:0 .32rem"
+      >
+        <div class="column average name-box">
+          <div>{{item.home_team}}</div>
+          <div>{{item.guest_team}}</div>
+        </div>
+        <div class="Match-bottom-right">
+          <!-- 主队 -->
+          <div class=""  v-for="(items,indexs) in item.oddsData" :key="indexs">
+            <div v-if="items.odds">
+
+          
+          <div class="" v-if="items.odds_code.startsWith('co')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="letballHome" v-if="items.odds_code.endsWith('h')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'让球')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="letballGuest"  v-if="items.odds_code.endsWith('g')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'让球')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          <div v-if="items.odds_code.startsWith('gs')"  class="row bigSmall"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigHome" v-if="items.odds_code.endsWith('h')">
+              <div style="color: rgb(247, 102, 73); "  class="stardBig"  v-if="items.odds > 0">
+                 <span class="bigSmall">大</span> 
+                 <span v-if="items.condition != '大'">{{items.condition}}</span>
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigGuest"  v-if="items.odds_code.endsWith('g')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+              <div style="color: rgb(247, 102, 73); " class="stardBig"  v-if="items.odds > 0">
+                <span class="bigSmall">小</span>
+                <span v-if="items.condition != '小'">{{items.condition}}</span>  
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          <div v-if="items.odds_code.startsWith('gs')"  class="row bigSmall"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigHome" v-if="items.odds_code.endsWith('b')">
+              <div style="color: rgb(247, 102, 73); " class="stardBig"  v-if="items.odds > 0">
+                <span class="bigSmall">大</span>
+                <span v-if="items.condition != '大'">{{items.condition}}</span>  
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigGuest"  v-if="items.odds_code.endsWith('s')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+              <div style="color: rgb(247, 102, 73); " class="stardBig"  v-if="items.odds > 0">
+                <span class="bigSmall">小</span>
+                <span v-if="items.condition != '小'">{{items.condition}}</span>  
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          <div  v-if="items.odds_code.startsWith('gs')"  class="row bigSmall"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+              <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigHome" v-if="items.odds_code.endsWith('b')">
+              <div style="color: rgb(247, 102, 73); "  class="stardBig"  v-if="items.odds > 0">
+                 <span class="bigSmall">大</span> 
+                 <span v-if="items.condition != '大'">{{items.condition}}</span>
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+              </div>
+              <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigGuest"  v-if="items.odds_code.endsWith('s')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'大小')">
+              <div style="color: rgb(247, 102, 73); "  class="stardBig"  v-if="items.odds > 0">
+                 <span class="bigSmall">小</span> 
+                 <span v-if="items.condition != '小'">{{items.condition}}</span>
+              </div>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 网球 -->
+    <div  v-if="isMatchShow && ballSelt == 100"  v-for=" (item,index) in data.matchData" :key="item.id" class="Match-box">
+          
+           <div class="row allAlignment Match-box-top wqMatch-box">
+        <div class="Match-box-top-left">
+          <span>{{item.match_date}}</span>
+          <span style="color: rgb(253, 143, 38);">{{item.match_time}}</span>
+          <div>三盘两胜</div>
+        </div>
+        <div class="Match-box-top-right row">
+          <span style="margin-right: .15rem;height:100%;line-height:0.65rem;" class="Match-box-top-num">{{item.tag}}</span>
+          <span style="margin-right: .15rem;line-height:0.65rem;">独赢盘</span>
+          <span style="margin-right: .15rem;line-height:0.65rem;">让盘</span>
+        </div>
+      </div>
+      <div
+        class="row allAlignment center"
+        @click="matchInfo(item.match_id);"
+        style="padding:0 .32rem"
+      >
+        <div class="column average wqavg name-box">
+          <div>{{item.home_team}}</div>
+          <div>{{item.guest_team}}</div>
+        </div>
+        <div class="Match-bottom-right">
+          <!-- 主队 -->
+          <div class=""  v-for="(items,indexs) in item.oddsData" :key="indexs">
+          <div class="" v-if="items.odds_code.startsWith('c')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="letballHome" v-if="items.odds_code.endsWith('h')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="letballGuest"  v-if="items.odds_code.endsWith('g')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          <div v-if="items.odds_code.startsWith('ld')"  class="row bigSmall"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'让盘')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigHome" v-if="items.odds_code.endsWith('h')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigGuest"  v-if="items.odds_code.endsWith('g')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'让盘')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 棒球 -->
+    <div v-if="isMatchShow && ballSelt == 1000"   v-for=" (item,index) in data.matchData" :key="item.id" class="Match-box">
+       <div class="row allAlignment Match-box-top">
+        <div class="Match-box-top-left">
+          <span>{{item.match_date}}</span>
+          <span>{{item.match_time}}</span>
+        </div>
+        <div class="Match-box-top-right row">
+          <span style="margin-right: .15rem;" class="Match-box-top-num">{{item.tag}}</span>
+          <span style="margin-right: .15rem;">独赢盘</span>
+        </div>
+      </div>
+      <div
+        class="row allAlignment center"
+        @click="matchInfo(item.match_id);"
+        style="padding:0 .32rem"
+      >
+        <div class="column average name-box">
+          <div>{{item.home_team}}</div>
+          <div>{{item.guest_team}}</div>
+        </div>
+        <!-- <div class="Match-bottom-right">
+
+          <div class="row">
+            <div
+              class="Match-list-left"
+              v-for="(items,indexs) in item.oddsData.homeOdds"
+              :key="indexs"
+              @click.stop="bteBetting(item.match_id, items.id,item.home_team,item.guest_team,item.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.lg_id,items.status,items.p_code)"
+            >
+              <div :class="{ 'active' : items.isTrue == true}" class="column center">
+                <span style="color:#FD8F26"  v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+              </div>
+            </div>
+          </div>
+      
+          <div class="row">
+            <div
+              class="Match-list-right row"
+              v-for="(items,indexs) in item.oddsData.guestOdds"
+              :key="indexs"
+              @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.lg_id,items.status,items.p_code)"
+            >
+              <div :class="{'active':items.isTrue==true}" class="column center">
+                <span v-if="items.odds > 0">
+                  <i style="color:#FD8F26">{{items.condition}}</i>
+                </span>
+                <span v-if="items.odds >0">{{items.odds}}</span>
+                <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+              </div>
+            </div>
+          </div>
+        </div> -->
+                <div class="Match-bottom-right">
+          <!-- 主队 -->
+          <div class=""  v-for="(items,indexs) in item.oddsData"  :key="indexs">
+            <div v-if="items.odds_code">
+          <div v-if="items.odds_code.startsWith('c')"  class="row bigSmall"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigHome" v-if="items.odds_code.endsWith('h')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+            <div  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"  class="bigGuest"  v-if="items.odds_code.endsWith('g')"  @click.stop="bteBetting(item.match_id,items.id,item.home_team,item.guest_team,item.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',data.lg_id,items.status,items.p_code,'独赢盘')">
+              <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+              <span v-if="items.odds >0" :class="items.condition == '' ? 'mg':''">{{items.odds}}</span>
+              <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+            </div>
+          </div>
+          </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- <div class = "lod">
+      <Loading></Loading>
+    </div>-->
+    <div class="BettingWindow" v-if="isBettingShow =='100'">
+      <BettingWindow/>
+    </div>
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import BettingWindow from "./StBettingWindow.vue";
+import NotOpend from "@/components/StNotOpend";
+import Loading from "@/components/StLoading";
+
+export default {
+  name: "SerchBox",
+  data() {
+    return {
+      SerchValue: "",
+      Serchchange: false,
+      title: " ", //标题
+      data: " ",
+      isMatchShow: true,
+      lg_id: "",
+      isAddData: false, //判断是否添加
+      game_code: this.$route.query.game_code, //球的类型别名
+      leagueID: this.$route.query.leagueID, //获取联赛id
+      isBettingShow: "0", //投注显示关闭默认false
+      score: "0", //比分
+      codeShow: false, // 如果是参赛表传值过来,则显示另一部分
+      info: "没有相关联赛信息",
+      noData: false, //没有数据为true
+      betting: [], //vuex里面玩法投注数据
+      timers: true,
+      getIsShow:true,
+      ballSelt:0, // 当为10的时候为篮球,足球,100的时候为网球,1000的时候为棒球
+      // 存储变色数据
+      previousStorage:[]      
+    };
+  },
+  components: {
+    BettingWindow,
+    NotOpend,
+    Loading
+  },
+  /**
+   *函数方法
+   */
+  methods: {
+   
+    /*--------------------------------------------------------------------------------*/
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    // 是否显示删除按钮
+    serchchange(val) {
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    // 查询球队
+    searchTeam(val) {
+      let getActivity = this.$store.getters.getActivity;
+      let matchDate = this.$route.query.matchDate;
+      let dataObj = this.dataObj;
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+      dataObj.search = val;
+      if (this.$route.query.navBall) {
+        this.getMatchData(this.$ports.match.matchState, dataObj);
+      } else {
+        dataObj.type_code = "";
+        dataObj.search = val;
+        this.getMatchData(this.$ports.match.matchDetails, dataObj);
+      }
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    // 清空输入
+    delinputvalue() {
+      this.SerchValue = "";
+      this.Serchchange = false;
+      let matchDate = this.$route.query.matchDate;
+      let dataObj = {
+        oddsType: this.$store.getters.activity,
+        game_code: this.game_code,
+        leagueID: "",
+        lg_id: this.leagueID,
+        type_code: this.$store.getters.getActivity,
+        matchDate: "",
+        match_date: matchDate,
+        search: "",
+        str_type: ""
+      };
+      if (this.$route.query.navBall) {
+        this.getMatchData(this.$ports.match.matchState, dataObj);
+      } else {
+        dataObj.leagueID = this.leagueID;
+        dataObj.lg_id = "";
+        dataObj.type_code = "";
+        dataObj.matchDate = matchDate;
+        dataObj.match_date = "";
+        this.getMatchData(this.$ports.match.matchDetails, dataObj);
+      }
+    },
+    /*--------------------------------------------------------------------------------*/
+    // 添加、删除vuex投注数据公共方法
+    AddDelete: function(match_id,id,home,guest,name,odds,condition,odds_only,odds_code,type,lg_id,status,p_code,play_name
+    ) {
+      let isAdd = true,isNew=true;
+      let matchList = this.$store.getters.getBetting;
+      if (status == "-1") return false;
+      let ball = this.$store.getters.getBallId;
+      // if(ball == 'zq'){
+       let bettingInfo = {
+        id,
+        home_team: home,
+        guest_team: guest,
+        name,
+        odds,
+        match_id,
+        condition,
+        ballId: ball,
+        odds_code: odds_code,
+        p_code,
+        play_name,
+        score: this.score,
+        bettingTime: "",
+        odds_only,
+        lg_id,
+        odds_id: id
+      };
+      //添加新的玩法赔率数据
+      let obj = {
+        title:p_code,
+        data: [bettingInfo]
+      };
+      if(matchList !=null ){
+        for(let i =0 ;i < matchList.length; i++ ){
+          if(matchList[i].title == p_code){
+            //删除vuex投注数据
+            matchList[i].data.forEach((res, index) => {
+              // console.log(res.id,id)
+              if (res.id == id) {
+                matchList[i].data.splice(index, 1);
+                this.$store.dispatch("SET_LIMIT", false);
+                this.$store.dispatch("BETTING", []);
+                this.$store.dispatch("BETTING", matchList);
+                isAdd = false;
+                isNew = false;
+                //处理当前页面样式
+                this.modifyStyle(id,type);
+              }
+            });
+            //添加vuex投注数据
+            if (isAdd){ 
+              isNew = false;
+              if (this.$store.getters.getLimit * 1 >= 10) return false;
+              //处理当前页面样式
+              this.modifyStyle(id, type);
+              matchList[i].data.push(bettingInfo);
+              this.$store.dispatch("BETTING",[]);
+              this.$store.dispatch("BETTING",matchList);
+              if (this.$store.getters.getIsBetting == "100") return false;
+              this.$store.dispatch("ISBETTING",100);
+            }
+            break;
+          }
+        }
+        if(isNew){
+          matchList.push(obj)
+          this.$store.dispatch("BETTING",[]);
+          this.$store.dispatch("BETTING",matchList);
+          this.modifyStyle(id, type);
+          if (this.$store.getters.getIsBetting == "100") return false;
+          this.$store.dispatch("ISBETTING", "100");
+        }
+
+      }else{
+        this.$store.dispatch("BETTING",[obj]);
+        this.modifyStyle(id, type);
+        if (this.$store.getters.getIsBetting == "100") return false;
+        this.$store.dispatch("ISBETTING", "100");
+      }
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    //修改当前页面样式公共方法
+    modifyStyle: function(id, type) {
+      // console.log('type',type)
+      //if(this.$store.getters.getLimit*1 > 10 )
+      this.data.matchData.every(e => {
+        let ret = false;
+        if (type == "homeOdds") {
+          e.oddsData.every((res, index) => {
+            if (res.id == id) {
+              this.$set(
+               res,
+                "isTrue",
+                res.isTrue ? false : true
+              );
+              this.$forceUpdate()
+              ret = true;
+              return false;
+            }
+            return true;
+          });
+        } else if (type == "guestOdds") {
+          e.oddsData.every((res, index) => {
+            if (res.id == id) {
+              this.$set(
+               res,
+                "isTrue",
+                res.isTrue ? false : true
+              );
+                this.$forceUpdate()
+              ret = true;
+              return false;
+            }
+            return true;
+          });
+        }
+        if (ret) {
+          return false;
+        } else {
+          return true;
+        }
+      });
+    },
+    /*--------------------------------------------------------------------------------*/
+    // 修改投注样式
+    bteBetting( match_id, id,home,guest,name,odds,condition,odds_only,odds_code,type,lg_id,status,p_code,play_name) {
+    //  console.log('data',id)
+     if(odds > 0){
+      if (this.data) {
+          //处理vuex里面数据
+          this.AddDelete(match_id,id,home,guest,name,odds, condition, odds_only,odds_code, type,lg_id,status,p_code,play_name);
+          if (this.$store.getters.getLimit * 1 >= 10) {
+            this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+          }
+        }       
+     }
+
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    //跳转到赛事详情
+    matchInfo: function(id) {
+      this.$router.push({
+        path:"/StRollBallBettingPage",
+        query: {
+          gameCode: this.game_code,
+          home: 1,
+          name: this.$route.query.name
+        }
+      });
+      this.$store.dispatch("MACTH_ID", id);
+    },
+    /*--------------------------------------------------------------------------------*/
+    // url : 地址, game_code 球类 leagueID lg_id 	联赛id   type_code 状态 matchDate match_date 赛事日期 search 搜索 str_type 选项类型
+    //获取联赛比赛列表
+    getMatchData: function(url, data) {
+      // console.log('ajax')
+      //“concede_home”: 主队全场让球,“concede_guest”: 客队全场让球,“size_home”: 主队大小,“size_guest”: 客队大小
+      this.$http.get(url, data).then(res => {
+     
+        this.codeShow = true;
+        // let 
+        if (res.data.status == 1 && res.data.data != null) {
+             this.lg_id = res.data.data.lg_id;
+          if (res.data.data.matchData && res.data.data.matchData.length < 1) {
+            this.isMatchShow = false;
+            this.noData = true;
+          } else if (res.data.data.matchData &&res.data.data.matchData.length > 0 ) {
+            this.isMatchShow = true;
+            this.noData = false;
+            this.dataGroup(res.data.data);
+          }
+        }else{
+          this.data = '';
+          this.noData = true;
+          this.isMatchShow = false;
+        }
+      });
+      let _this = this;
+      setTimeout(function(){
+        _this.$store.dispatch("GETSHOW", false);
+      },1000)
+    },
+     /*--------------------------------------------------------------------------------*/
+    /*--------------------------------------------------------------------------------*/
+    // 赛事赔率玩法数据组合方法
+    dataGroup: function(data) {
+      console.log('SerchBox')
+      let homeOdds = [],guestOdds = [];
+      let A, B, C, D;
+      // console.log('beeeee',this.betting)
+      let ball = this.$store.getters.getBallId;
+      data.matchData.forEach((column, index) => {
+        if (column.oddsData == null || column.oddsData.length == 0) {
+          if(ball == 'bq'){
+            column.oddsData = {
+            homeOdds: [{ status: -1 }],
+            guestOdds: [{ status: -1 }]
+          };
+          }else{
+          column.oddsData = {
+            homeOdds: [{ status: -1 }, { status: -1 }],
+            guestOdds: [{ status: -1 }, { status: -1 }]
+          };
+          }
+        } else {
+          column.oddsData.forEach(val => {
+            if(this.betting.length > 0){
+              this.betting.forEach(e =>{
+                e.forEach(item =>{
+                  if(val.id == item.id){
+                    val.isTrue = true;
+                  }
+                })
+              })
+            }
+          });
+        }
+      });
+      this.data = data;
+      // console.log('处理数据',this.data);
+       //更新数据和上一次的数据匹配
+      let storage =this.previousStorage;
+      if(storage && storage != null && storage.length > 0){
+        // if(this.data){
+          // this.data.forEach(e =>{
+          //   e.match_info.forEach(k =>{
+            this.data.matchData.forEach(k=>{
+              k.oddsData.forEach(item =>{
+                storage.forEach(a =>{
+                  a.forEach(b =>{
+                    if(item.id == b.id){
+                      if(item.odds > b.odds){
+                        item.change = 'add'
+                      }else if(item.odds  < b.odds){
+                        item.change = 'red';
+                      }else{
+                        item.change = '';
+                      }
+                    }
+                  })
+                })
+              })
+            })
+          //})
+        // }else{
+        //   console.log('ss')
+        // }
+      }
+      this.previousStorage = [];
+      console.log('111',this.data)
+      this.data.matchData.forEach(e =>{
+          this.previousStorage.push(e.oddsData)
+      })
+      this.$store.dispatch('GETGAMERATIO',this.data)      
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    
+    //
+    getIsBettingType() { 
+      return this.$store.getters.getIsBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    /*--------------------------------------------------------------------------------*/
+    // 监听投注框开关
+    getIsBettingType(val) {
+      this.isBettingShow = val;
+    },
+
+    getDeleteType(val) {
+      let flag = true;
+      this.data.matchData.forEach(e => {
+        if (val == "all") {
+          e.oddsData.forEach(data => {
+            this.$set(data, "isTrue", false);
+          });
+          e.oddsData.forEach(data => {
+            this.$set(data, "isTrue", false);
+          });
+        } else {
+          let showData = true;
+          e.oddsData.forEach(data => {
+            if (data.id == val) {
+              this.$set(data, "isTrue", false);
+              showData = false;
+            }
+          });
+          if (showData) {
+            e.oddsData.forEach(data => {
+              if (data.id == val) {
+                this.$set(data, "isTrue", false);
+              }
+            });
+          }
+        }
+      });
+    },
+    /*--------------------------------------------------------------------------------*/
+  
+  },
+  /***
+   * 页面加载完成触发事件
+   */
+  mounted() {
+    // 获取球类,判定状态
+    let ball = this.$store.getters.getBallId;
+    if(ball == 'zq' || ball == 'lq'){
+      this.ballSelt = 10;
+    }else if(ball == 'wq'){
+      this.ballSelt = 100;
+    }else if(ball == 'bq'){
+      this.ballSelt = 1000;
+    }
+    if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    let _this = this;
+    let matchDate = this.$route.query.matchDate;
+    let query = this.$route.query;
+    let { game_code, leagueID, name } = this.$route.query;
+    this.title = name;
+    this.game_code = game_code;
+    let dataObj = {
+      oddsType: this.$store.getters.getActivity,
+      game_code: this.game_code,
+      leagueID: "",
+      lg_id: this.leagueID,
+      type_code: this.$store.getters.getActivity,
+      matchDate: "",
+      match_date: matchDate,
+      search: "",
+      str_type: ""
+    };
+    this.dataObj = dataObj;
+    //
+    if (this.$store.getters.getIsBetting == "100") {
+      this.isBettingShow = 100;
+    }
+    // //获取vuex玩法已投注相对应的数据
+    let getBetting = this.$store.getters.getBetting;
+    if(getBetting){
+      if(ball == 'zq'){
+        getBetting.forEach((e,index) =>{
+          if('CO' == e.title || 'GS' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }else if(ball == 'lq'){
+        getBetting.forEach((e,index) =>{
+          if('CO' == e.title || 'TN' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }else if(ball == 'bq'){
+        getBetting.forEach((e,index) =>{
+          if('C' == e.title){
+            this.betting.push(e.data);
+          }          
+        })
+      }else if(ball == 'wq'){
+        getBetting.forEach((e,index) =>{
+          if('LD' == e.title || 'C' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }
+    }
+    if (query.navBall &&query.strType != undefined && query.code != undefined) {
+      this.$public.ajaxTimerFun(function(timing) {
+        // console.log(1)
+        if (_this.timers) {
+        _this.getMatchData(_this.$ports.match.matchState, dataObj);
+        }else{
+          clearInterval(timing);
+        }
+      },(1000*10));
+
+      this.getMatchData(this.$ports.match.matchState, dataObj);
+    } else if (this.$route.query.strType != undefined) {
+      dataObj.str_type = this.$route.query.strType;
+
+      if (this.$store.getters.getActivity != "StChampion") {
+        this.$public.ajaxTimerFun(function(timing) {
+            // console.log(2)
+          if (_this.timers) {
+          _this.getMatchData(_this.$ports.match.matchState, dataObj);
+          }else{
+            clearInterval(timing);
+          }
+        },(1000*10));
+        this.getMatchData(this.$ports.match.matchState, dataObj);
+      } else {
+        this.$public.ajaxTimerFun(function(timing) {
+          // console.log(3)
+          if (_this.timers) {
+          _this.getMatchData(_this.$ports.match.matchState, dataObj);
+          }else{
+
+            clearInterval(timing);
+
+          }
+        },(1000*10));
+        this.getMatchData(this.$ports.match.matchState, dataObj);
+        
+      }
+    } else if (this.$route.query.matchDtl != undefined) {
+      this.$public.ajaxTimerFun(function(timing) {
+       
+        dataObj.leagueID = _this.leagueID;
+        dataObj.lg_id='';
+        dataObj.matchDate = matchDate
+        if (_this.timers) {
+        _this.getMatchData(_this.$ports.match.matchDetails, dataObj);
+        }else{
+          //  console.log(4)
+          clearInterval(timing);
+        }
+      },(1000*10));
+     dataObj.leagueID=this.leagueID;
+     dataObj.matchDate = this.$route.query.matchDate;
+     dataObj.lg_id='';
+      this.getMatchData(this.$ports.match.matchDetails, dataObj);
+    } else if (this.$route.query.btn != undefined) {
+      dataObj.lg_id = "27822";
+      this.getMatchData(this.$ports.match.matchState, dataObj);
+    } else {
+      this.$public.ajaxTimerFun(function(timing) {
+        // console.log(5)
+        if (_this.timers) {
+        _this.getMatchData(_this.$ports.match.matchState, dataObj);
+        }else{
+          clearInterval(timing); 
+        }
+      },(1000*10));
+      this.getMatchData(this.$ports.match.matchState, dataObj);
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.Serch {
+  height: 0.75rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #363636;
+  color: #fd8f26;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.32rem;
+}
+.lock {
+  background: #f4f4f4;
+}
+.Serch-box-input {
+  width: 2rem;
+  border: none;
+  position: absolute;
+  left: 0.5rem;
+  top: 0.06rem;
+}
+.Serch-box-img {
+  width: 0.3rem;
+  height: 0.3rem;
+  position: absolute;
+  left: 0.1rem;
+  top: 0.06rem;
+}
+.Serch-box-del {
+  width: 0.2rem;
+  height: 0.2rem;
+  position: absolute;
+  right: 0.2rem;
+}
+.Serch-box-home {
+  height: 0.44rem;
+  width: 4.73rem;
+  background: #e4e4e4;
+  border-radius: 0.2rem;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  padding-left: 0.1rem;
+  padding-right: 0.1rem;
+  position: relative;
+}
+.box-img {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.18rem;
+}
+.Soccer-game-title {
+  display: flex;
+  color: #f76649;
+  align-items: center;
+  width: 1.5rem;
+  height: 0.75rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  display: flex;
+  left: -0.3rem;
+  top: 0.2rem;
+  background: #fff;
+  background: #626262;
+  color: #a6a6a6;
+  height: 0.7rem;
+  align-items: center;
+}
+.Soccer-game-src {
+  width: 0.25rem;
+  height: 0.25rem;
+}
+.box {
+  padding: 0 0.32rem;
+  color: #e1e1df;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: linear-gradient(to bottom, #999999, #6a6a6b);
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #f5f5f5;
+}
+
+.Match-box-top-right > span {
+  width: 1.07rem;
+  text-align: center;
+}
+.Match-box {
+  /* height: 2.45rem; */
+}
+.name-box {
+  height: 1.76rem;
+}
+
+.Match-box-top {
+  height: 0.45rem;
+  line-height: 0.45rem;
+  background: #dcdcdc;
+  font-size: 0.23rem;
+  padding: 0 0.32rem;
+}
+div.wqMatch-box{
+  height: 0.65rem;
+  line-height: 0.3rem;
+}
+.Match-box-top-num {
+  width: 0.64rem !important;
+  height: 0.45rem;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.Match-box {
+  background: #f8f8f8;
+}
+.Match-bottom-right {
+  height: 2rem;
+  width: 2.5rem;
+  padding: 0.1rem 0.1rem 0 0.14rem;
+  position: relative;
+}
+.Match-list-left div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  padding: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.Match-list-right div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.active {
+  background: #f76649;
+  border: none;
+  color: #e1e1df !important;
+}
+.wqavg{
+  width: 4.3rem;
+}
+/* 赔率 */
+
+.letballHome,.letballGuest,.bigHome,.bigGuest{
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+  padding: 0.05rem 0;
+  /* margin: 0.06rem 0.6rem 0.06rem 0; */
+  text-align: center;
+}
+.letballGuest{
+    position: absolute;
+    bottom: 0.19rem;
+}
+.bigHome span,.bigGuest span,.letballHome span,.letballGuest span{
+  display: block;
+}
+.bigHome{
+  position: absolute;
+  right: 0;
+  top: 0.1rem;
+}
+.bigGuest{
+  position: absolute;
+  right: 0;
+  top: 0.93rem;
+}
+.active span{
+  color: #e1e1df !important;
+}
+.stardBig{
+  display: flex;
+  align-items: center;
+  justify-content: center;
+
+}
+.stardBig .bigSmall{
+  color: #9b9999;
+}
+.mg{
+  margin-top: 0.2rem;
+}
+</style>

+ 1692 - 0
.svn/pristine/1f/1f8086c2b55129d17017b848750d02c05a59a05e.svn-base

@@ -0,0 +1,1692 @@
+<template>
+  <div>
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+    <!-- 足球 -->
+    <!-- 让球&大小 -->
+    <div class="match" v-if="isShow && wq_show && zlBallShow">
+      <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
+        <div class="row allAlignment haderBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="row Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div class="Match-box">
+          <div v-for="(itemList,index) in item.matchData"  :key="index"  @click="matchInfo(itemList.match_id)">
+            <div class="row allAlignment Match-box-top">
+              <div class="Match-box-top-left">
+                <span>{{itemList.match_process}}</span>
+                <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
+                <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
+                <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
+              </div>
+              <div class="Match-box-top-right row">
+                <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
+                <span style="margin-right: .1rem;">让球</span>
+                <span style="margin-right: .1rem;">大小</span>
+              </div>
+            </div>
+            <div class="row allAlignment center listbox">
+              <div class="column average name-box">
+                <div class="box noBox row item-center main-box">
+                  <span
+                    v-if="itemList.home_score == '0' || itemList.home_score"
+                    class="num-box"
+                    style="color:#eb921e"
+                  >{{itemList.home_score}}</span>
+                  <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
+                  &nbsp;&nbsp;{{itemList.home_team}}
+                </div>
+                <div class="box noBox row item-center main-box">
+                  <span
+                    v-if="itemList.guest_score || itemList.guest_score == '0'"
+                    class="num-box"
+                    style="color:#eb921e"
+                  >{{itemList.guest_score}}</span>
+                  <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
+                  &nbsp;&nbsp;{{itemList.guest_team}}
+                </div>
+              </div>
+              <div class="Match-list-box row item-center average">
+                <div class="Match-bottom-right">
+                  <!-- 主队 -->
+                  <div class v-for="(items,indexs) in itemList.oddsData[0]" :key="indexs" :class="items.odds == 0?'locking':''" >
+                    <div v-if="items.odds ">
+                      <div class v-if="items.odds_code.startsWith('concede')">
+                        <div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballHome  column center"
+                          v-if="items.odds_code.endsWith('home')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballGuest column center"
+                          v-if="items.odds_code.endsWith('guest')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'homeOdds',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                      <div
+                        v-if="items.odds_code.startsWith('goal')"
+                        class="row bigSmall"
+                        @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                      >
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigHome column center"
+                          v-if="items.odds_code.endsWith('big')"
+                        >
+                          <div style="color: rgb(247, 102, 73);" class="stardBig" v-if="items.odds > 0"> 
+                            <span class="bigSmall">大</span> 
+                            <span v-if="items.condition !='大'">{{items.condition}}</span>
+                            
+                            </div>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigGuest column center"
+                          v-if="items.odds_code.endsWith('small')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                        >
+                          <div style="color: rgb(247, 102, 73); "  class="stardBig" v-if="items.odds > 0">
+                            <span class="bigSmall">小</span>
+                            <span v-if="items.condition !='小'">{{items.condition}}</span>  
+                          </div>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                      <div  v-if="items.odds_code.startsWith('total')"  class="row bigSmall"
+                        @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                      >
+                        <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigHome column center" v-if="items.odds_code.endsWith('big')">
+                          <div style="color: rgb(247, 102, 73);" class="stardBig"> 
+                            <span class="bigSmall">大</span> 
+                            <span>{{items.condition}}</span>
+                            
+                            </div>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigGuest column center"
+                          v-if="items.odds_code.endsWith('small')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'guestOdds',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                        >
+                          <div style="color: rgb(247, 102, 73); "  class="stardBig" v-if="items.odds > 0">
+                            <span class="bigSmall">小</span>
+                            <span>{{items.condition}}</span>  
+                          </div>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 1x2 -->
+    <div v-if="!isShow && !ishow && wq_show">
+      <div v-for="(item,$index) in letBallData" :key="item.id" @click="bettingChange()">
+        <div class="row allAlignment haderBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div
+          v-for="(itemList,idx) in item.matchData"
+          :key="idx"
+          @click="matchInfo(itemList.match_id)"
+        >
+          <div class="box noPd">
+            <div class="row allAlignment item-center top-box">
+              <span>
+                <span>{{itemList.match_process}}</span>
+                <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
+                <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
+                <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
+              </span>
+              <span class="top-num">{{itemList.tag}}</span>
+            </div>
+          </div>
+          <div class="box-bottom">
+            <div class="box row item-center main-box">
+              <span
+                v-if="itemList.home_score == '0' || itemList.home_score"
+                class="num-box"
+                style="color:#eb921e"
+              >{{itemList.home_score}}</span>
+              <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
+              &nbsp;&nbsp;{{itemList.home_team}}
+            </div>
+            <div class="box row item-center main-box">
+              <span
+                v-if="itemList.guest_score || itemList.guest_score == '0'"
+                class="num-box"
+                style="color:#eb921e"
+              >{{itemList.guest_score}}</span>
+              <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
+              &nbsp;&nbsp;{{itemList.guest_team}}
+            </div>
+            <div class="footBox" style="position:relative">
+              <div class="box row allAlignment bottom-box center" v-for="(items,i) in itemList.oddsData[1]" 
+              :key="i" v-if="items != null">
+                <div v-if="items.condition == 1" class="item-center bottom-num stardLeft"
+                  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                  @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
+                >
+                  <p style="color:#eb921e">{{items.condition}}</p>
+                  <p>{{items.odds}}</p>
+                </div>
+                <div v-if="items.condition == 'X'" class="item-center bottom-num stardCenter"
+                  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                  @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
+                >
+                  <p style="color:#eb921e">{{items.condition}}</p>
+                  <p>{{items.odds}}</p>
+                </div>
+                <div v-if="items.condition == 2" class="item-center bottom-num stardRight"
+                  :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                  @click.stop="isClick($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.oddsType,item.lg_id,'1X2')"
+                >
+                  <p style="color:#eb921e">{{items.condition}}</p>
+                  <p>{{items.odds}}</p>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 篮球 -->
+    <div class="match" v-if="isShow && wq_show && !zlBallShow">
+      <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
+        <div class="row allAlignment haderBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="row Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div class="Match-box">
+          <div
+            v-for="(itemList,index) in item.matchData"
+            :key="index"
+            @click="matchInfo(itemList.match_id)"
+          >
+            <div class="row allAlignment Match-box-top">
+              <div class="Match-box-top-left">
+                <span>{{itemList.match_process}}</span>
+                <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.wait_time}}</span>
+                 <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
+                <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
+              </div>
+              <div class="Match-box-top-right row">
+                <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
+                <span style="margin-right: .1rem;">让球</span>
+                <span style="margin-right: .1rem;">大小</span>
+              </div>
+            </div>
+            <div class="row allAlignment center listbox">
+              <div class="column average name-box">
+                <div class="box noBox row item-center main-box">
+                  <span
+                    v-if="itemList.home_score == '0' || itemList.home_score"
+                    class="num-box"
+                    style="color:#eb921e"
+                  >{{itemList.home_score}}</span>
+                  <span v-else style="color:#eb921e">{{itemList.home_score}}</span>
+                  &nbsp;&nbsp;{{itemList.home_team}}
+                </div>
+                <div class="box noBox row item-center main-box">
+                  <span
+                    v-if="itemList.guest_score || itemList.guest_score == '0'"
+                    class="num-box"
+                    style="color:#eb921e"
+                  >{{itemList.guest_score}}</span>
+                  <span v-else style="color:#eb921e">{{itemList.guest_score}}</span>
+                  &nbsp;&nbsp;{{itemList.guest_team}}
+                </div>
+              </div>
+              <div class="Match-list-box row item-center average">
+                <div class="Match-bottom-right">
+                  <!-- 主队 -->
+                  <div class  v-for="(items,idx) in itemList.oddsData[0]" :key="idx">
+                    <div v-if="items != null">
+                      <div class v-if="items.odds_code.startsWith('concede')">
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballHome  column center"
+                          v-if="items.odds_code.endsWith('home')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'concede',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
+                        >
+                         <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballGuest column center"
+                          v-if="items.odds_code.endsWith('guest')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'concede',items.p_code,items.status,item.lg_id,'让球',items.oddsType)"
+                        >
+                         <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    <div class="row bigSmall" v-if="items.odds_code.startsWith('total')">
+                      <div
+                        :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                        class="bigHome column center"
+                        v-if="items.odds_code.endsWith('big')"
+                        @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'total_size',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                      >
+                        <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"  >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                      </div>
+                      <div
+                        :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                        class="bigGuest column center"
+                        v-if="items.odds_code.endsWith('small')"
+                        @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'total_size',items.p_code,items.status,item.lg_id,'大小',items.oddsType)"
+                      >
+                        <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                        <span v-if="items.odds >0"  >{{items.odds}}</span>
+                        <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                      </div>
+                    </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 独赢盘 -->
+    <div class="match" v-if="!isShow && ishow && wq_show">
+      <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
+        <div class="row allAlignment letBallBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="row Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div class="Match-box">
+          <div
+            v-for="(itemList,index) in item.matchData"
+            :key="index"
+            class="Match-box"
+            @click="matchInfo(itemList.match_id)"
+          >
+            <div class="row allAlignment Match-box-top">
+              <div class="Match-box-top-left">
+                <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
+                 <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
+                <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
+              </div>
+              <div class="Match-box-top-right row">
+                <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
+                <span style="margin-right: .1rem;">独赢盘</span>
+              </div>
+            </div>
+            <div class="row allAlignment center listbox">
+              <div class="column average name-box">
+                <div>{{itemList.home_team}}</div>
+                <div>{{itemList.guest_team}}</div>
+              </div>
+              <div class="Match-list-box row item-center average">
+                <div class="Match-bottom-right" style="width:1.3rem;">
+                  <!-- 主队 -->
+                  <div class="capotBox">
+                    <div
+                      class="Match-list-left"
+                      v-for="(items,indexs) in itemList.oddsData[1]"
+                      :key="indexs"
+               
+                      @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'capot',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
+                    >
+                      <div :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}" class="column center">
+                        <span style="color:#f76649">{{items.condition}}</span>
+                        <span>{{items.odds}}</span>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 如过是网球则显示 -->
+    <div class="match" v-if="isShow && !wq_show">
+      <div v-for="(item,$index) in letBallData" :key="$index" class="mg">
+        <!-- <div v-for="items in list[index]" :key="items.id"> -->
+        <div class="row allAlignment letBallBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="row Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div class="Match-box">
+          <div
+            v-for="(itemList,index) in item.matchData"
+            :key="index"
+            class="Match-box"
+            @click="matchInfo(itemList.match_id)"
+          >
+            <div class="row allAlignment Match-box-top">
+              <div class="Match-box-top-left">
+                <!-- <span>{{itemList.match_date}}</span> -->
+                <span class="texttop">{{itemList.match_process}}</span>
+                <span class="texttop" v-if="activity == 'StRollBall'">{{itemList.a_time}}</span>
+                <span class="texttop" v-if="activity == 'StSoon' && itemList.wait_time > 0">{{itemList.wait_time}}分钟</span>
+                <span class="texttop" v-else-if="activity == 'StSoon' && itemList.wait_time < 0">--分钟</span>
+              </div>
+              <div class="Match-box-top-right row">
+                <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
+                <span style="margin-right: .1rem;">独赢盘</span>
+                <span style="margin-right: .1rem;">让盘</span>
+              </div>
+            </div>
+            <div class="row allAlignment center listbox">
+              <div class="column average name-box">
+                <div>{{itemList.home_team}}</div>
+                <div>{{itemList.guest_team}}</div>
+              </div>
+              <div class="Match-list-box row item-center average">
+                <div class="Match-bottom-right">
+                  <!-- 主队 -->
+                  <div class v-for="(items,indexs) in itemList.oddsData" :key="indexs">
+                    <div v-if="items.odds">
+                      <div class v-if="items.odds_code.startsWith('kemp')">
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballHome  column center"
+                          v-if="items.odds_code.endsWith('home')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'kemp',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"   >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="letballGuest column center"
+                          v-if="items.odds_code.endsWith('guest')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.home_team,items.odds,items.condition,items.odds_only,items.odds_code,'kemp',items.p_code,items.status,item.lg_id,'独赢盘',items.oddsType)"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"   >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                      <div
+                        v-if="items.odds_code.startsWith('dishes')"
+                        class="row bigSmall"
+                        @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'dishes_home',items.p_code,items.status,item.lg_id,'让盘',items.oddsType)"
+                      >
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigHome column center"
+                          v-if="items.odds_code.endsWith('guest')"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"   >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                        <div
+                          :class="{active:items.isTrue,increased_color:items.change == 'add',reduce_color:items.change == 'red'}"
+                          class="bigGuest column center"
+                          v-if="items.odds_code.endsWith('home')"
+                          @click.stop="isBetting($index,itemList.match_id,items.id,itemList.home_team,itemList.guest_team,itemList.guest_team,items.odds,items.condition,items.odds_only,items.odds_code,'dishes_home',items.p_code,items.status,item.lg_id,'让盘',items.oddsType)"
+                        >
+                          <span style="color: rgb(247, 102, 73); " v-if="items.odds > 0">{{items.condition}}</span>
+                          <span v-if="items.odds >0"   >{{items.odds}}</span>
+                          <img v-if="items.odds <= 0" style="width: 0.7rem;height: 0.5rem;margin-top:0.1rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div v-if="isBettingWindow == '100'">
+      <BettingWindow/>
+    </div>
+  </div>
+</template>
+<script>
+import Bus from "../assets/bus.js";
+import NotOpend from "@/components/StNotOpend";
+import BettingWindow from "@/components/StBettingWindow";
+export default {
+  props: ["gameCode", "name", "ishow"],
+  components: { NotOpend, BettingWindow },
+  data() {
+    return {
+      show: false, //暂时状态
+      isShow: true,
+      noData: true, //显示暂无数据
+      wq_show: true, //是否为棒球与网球,是则不显示
+      info: "没有相关比赛信息",
+      status: false,
+      isBettingWindow: -1, //投注组件隐藏
+      isAjax: false, //开关
+      list: [],
+      letBallData: [], //让球大小和1X2数据
+      timers: true,
+      activity: "",
+      betting: [], //vuex里面玩法投注数据
+      thisNum: 10000, //vuex里面
+      index: "", //
+      data: "", //玩法赔率数据源
+      getIsShow: true,
+      score: "0", //比分
+      actydy: "", // 切换独赢状态BUG
+      ball: this.$store.getters.getBallId, // 球类bm
+      zlBallShow: true, //显示足球还是篮球
+      previousStorage:[],
+      wqPreviousStorage :[]
+    };
+  },
+  /**
+   * 函数方法
+   */
+  methods: {
+    matchInfo(id) {
+      this.$router.push({
+        path: "/StRollBallBettingPage",
+        query: {
+          gameCode: this.$store.getters.getBallId,
+          number: 1,
+          home: true,
+          name: this.name
+        }
+      });
+      this.$store.dispatch("MACTH_ID", id);
+    },
+    //打开联赛投注页面
+    goMatchInfo: function() {
+      let ball = this.$store.getters.getBallId;
+      // this.$store.dispatch("GETSHOW", true);
+      Bus.$on("show", data => {
+        this.isShow = data;
+        if (this.isShow == false && this.ishow == true) {
+          this.actydy = true;
+        } else {
+          this.actydy = false;
+        }
+        // // 暂时注释,有BUG
+        // if (ball == "wq" || ball == "zq") {
+        
+        // } else {
+          
+        //   // for(var i = 0; i < this.letBallData.length; i++){
+        //   //   this.letBallData[i].matchData.forEach(val =>{
+        //   //     // console.log('val',val)
+        //   //     if(val.oddsData[0].homeOdds || val.oddsData[0].guestOdds){
+        //   //       val.oddsData = [];
+        //   //     }
+        //   //   })
+        //   //   this.dataGroup(this.letBallData[i],i)
+        //   // }
+        // }
+      });
+    },
+    getAjax: function(game_code, type_code) {
+      if (!game_code || !type_code) return false;
+      this.$http
+        .get(this.$ports.match.matchState, { game_code, type_code })
+        .then(res => {
+          //console.log('数据结构',res.data.data);
+          this.isAjax = true;
+          if (
+            res.data.status == 1 &&
+            res.data.data.length > 0 &&
+            res.data != null
+          ) {
+            this.letBallData = res.data.data;
+            // console.log(this.letBallData)
+            this.noData = false;
+            //让球大小组合
+            // for (var i = 0; i < res.data.data.length; i++) {
+              this.dataGroup(this.letBallData);
+            // }
+            // //滚球比赛时间倒计时
+            // if (this.activity == "StRollBall" && this.ball == 'zq') {
+            //   let _this = this;
+            //   _this.letBallData.forEach(val => {
+            //     val.matchData.forEach(e => {
+            //       if(e.a_time){
+            //         let [f, s] = e.a_time.split(":");
+            //         if (e.a_time != "") {
+            //           let [f, s] = e.a_time.split(":");
+            //           this.$public.timer(f, s, function(f, s) {
+            //             e.a_time = f + ":" + s;
+            //           });
+            //         }
+            //       }
+            //     });
+            //   });
+            // }
+          } else {
+            //  是否显示组件
+            this.noData = true;
+            //console.log('data',this.noData)
+            // 每次更新数据没有数据时则置空。
+            this.letBallData = [];
+          }
+        });
+      let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+      }, 1000);
+    },
+    /*--------------------------------------------------------------------------------*/
+    // 添加、删除vuex投注数据公共方法
+    AddDelete: function(array, $index, type) {
+      let bettingInfo = array;
+      let isAdd = true,isNew=true;
+      let matchList = this.$store.getters.getBetting;
+      let ball = this.$store.getters.getBallId;
+            //添加新的玩法赔率数据
+      let obj = {
+        title:bettingInfo.p_code,
+        data: [bettingInfo]
+      };
+      if(matchList != null){
+        for(let i = 0; i < matchList.length;i++){
+          if(matchList[i].title == bettingInfo.p_code){
+            //删除vuex投注数据
+            // console.log(matchList[i].data)
+            matchList[i].data.forEach((res, index) => {
+              
+              // console.log(res.id,id)
+              if (res.id == array.id) {
+                matchList[i].data.splice(index, 1);
+                this.$store.dispatch("SET_LIMIT", false);
+                this.$store.dispatch("BETTING", []);
+                this.$store.dispatch("BETTING", matchList);
+                isAdd = false;
+                isNew = false;
+                //处理当前页面样式
+                this.modifyStyle($index, array.id,type);
+              }
+            });
+            //添加vuex投注数据
+            if (isAdd){ 
+              isNew = false;
+              if (this.$store.getters.getLimit * 1 >= 10) return false;
+              //处理当前页面样式
+              this.modifyStyle($index, array.id, type);
+              matchList[i].data.push(bettingInfo);
+              this.$store.dispatch("BETTING",[]);
+              this.$store.dispatch("BETTING",matchList);
+              if (this.$store.getters.getIsBetting == "100") return false;
+              this.$store.dispatch("ISBETTING",100);
+            }
+            break;         
+        }
+        }
+        if(isNew){
+          matchList.push(obj)
+          this.$store.dispatch("BETTING",[]);
+          this.$store.dispatch("BETTING",matchList);
+          this.modifyStyle($index, array.id, type);
+          if (this.$store.getters.getIsBetting == "100") return false;
+          this.$store.dispatch("ISBETTING", "100");
+        }
+      }else{
+        this.$store.dispatch("BETTING",[obj]);
+        this.modifyStyle($index, array.id, type);
+        if (this.$store.getters.getIsBetting == "100") return false;
+        this.$store.dispatch("ISBETTING", "100");        
+      }
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    //修改当前页面样式公共方法
+    modifyStyle: function($index, id, type) {
+      let ball = this.$store.getters.getBallId;
+      this.letBallData[$index].matchData.every((e, i) => {
+        let ret = false;
+              if(ball == 'lq'){
+               if(type == 'concede'){
+                 e.oddsData[0].forEach((res,index) =>{
+                   if(res != null){
+                     if(res.id == id){
+                         this.$forceUpdate();
+                         this.$set(res,'isTrue',res.isTrue ? false : true)
+                     }
+                   }
+                 })
+
+               }else if(type =='total_size'){
+                 e.oddsData[0].forEach((res,index) =>{
+                  if(res.id == id){
+                   // console.log('id',res.id,id)
+                      this.$forceUpdate();
+                      this.$set(res,'isTrue',res.isTrue ? false : true)
+                  }
+                 })
+               }else if(type == 'capot'){
+                 e.oddsData[1].forEach((res,index) =>{
+                   if(res.id == id){
+                      this.$forceUpdate();
+                     this.$set(res,'isTrue',res.isTrue ? false : true)
+                   }
+                 })
+               }
+               
+      }else{
+        if (type == "homeOdds") {
+          e.oddsData[0].every((res, index) => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+              ret = true;
+              return false;
+            }
+            return true;
+          });
+        } else if (type == "guestOdds") {
+          e.oddsData[0].every((res, index) => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+              ret = true;
+              return false;
+            }
+            return true;
+          });
+        } else if (type == "capot") {
+          e.oddsData[1].every((res, index) => {
+            if (res.id == id) {
+              this.$forceUpdate();
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+              ret = true;
+              return false;
+            }
+            return true;
+          });
+        }else if(type == 'kemp'){
+          e.oddsData.every((res,index) =>{
+            if(res.id == id){
+              this.$forceUpdate();
+              this.$set(res,'isTrue',res.isTrue ? false : true);
+              ret = true;
+              return false;
+            }
+            return true;
+          })
+        }else if(type == 'dishes_home'){
+          e.oddsData.forEach((res,index) =>{
+            if(res.id == id){
+              this.$forceUpdate();
+              this.$set(res,'isTrue',res.isTrue ? false : true)
+            }
+          })
+        }
+      }
+        if (ret) {
+          return false;
+        } else {
+          return true;
+        }
+      });
+    },
+
+    /*--------------------------------------------------------------------------------*/
+    // 修改投注样式
+    isBetting(
+      $index,
+      match_id,
+      id,
+      home,
+      guest,
+      name,
+      odds,
+      condition,
+      odds_only,
+      odds_code,
+      type,
+      p_code,
+      status,
+      lg_id,
+      play_name,
+      oddsType
+    ) {
+       let ball = this.$store.getters.getBallId;
+       let bettingInfo = {};
+       if(odds > 0){  
+        let bettingInfo = {
+        id,
+        home_team: home,
+        guest_team: guest,
+        name,
+        odds,
+        match_id,
+        condition,
+        ballId: this.$store.getters.getBallId,
+        odds_code: odds_code,
+        p_code: p_code,
+        play_name,
+        score: this.score,
+        bettingTime: "",
+        odds_only,
+        lg_id,
+        oddsType
+      };
+      
+      this.AddDelete(bettingInfo, $index, type);
+        if (this.$store.getters.getLimit * 1 >= 10) {
+        this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+      }
+       }
+
+
+    },
+
+    /*--------------------------------------------- */
+    //让球大小数据组合
+    dataGroup: function(data) {
+      let ball = this.$store.getters.getBallId;
+      data.forEach(item =>{
+        item.matchData.forEach((column, index) => {
+            if (this.$store.getters.getBallId == "wq") {
+              column.oddsData.forEach(val =>{
+                if(this.betting.length > 0){
+                    this.betting.forEach(e => {
+                      e.forEach(item =>{
+                      if (val.id == item.id) {
+                        this.$set(val, "isTrue", true);
+                      }
+                      })
+                    });
+                }
+              })
+            }else {
+                if(Array.isArray(column.oddsData[1]) == true){
+                  column.oddsData[1].forEach(val => {
+                    if (this.betting.length >0) {
+                      this.betting.forEach(e => {
+                        e.forEach(item =>{
+                          if (val.id == item.id) {
+                          this.$forceUpdate();
+                          this.$set(val, "isTrue", true);
+                        }
+                        })
+                      });
+                    }
+                  });
+                }
+                if(Array.isArray(column.oddsData[0]) == true){
+                  column.oddsData[0].forEach(val => {
+                    if(val != null){
+                      if (this.betting.length >0) {
+                        this.betting.forEach(e => {
+                          e.forEach(item =>{
+                          if (val.id == item.id) {
+                             this.$forceUpdate();
+                            this.$set(val, "isTrue", true);
+                          }
+                          })
+                        });
+                      }
+                    }
+                  });
+            }
+          }
+        });
+
+      })
+      // 数据更新切换样式
+      let  storage = this.previousStorage;
+      let  wqStorage = this.wqPreviousStorage;
+      // console.log('a',storage)
+      // console.log('222',storage)
+      if(storage && storage != null && storage != '' && storage.length > 0 ){
+        if(ball == 'zq' || ball == 'lq' || ball == 'bq'){
+          // let dataa = data;
+          data.forEach(itemList =>{
+            itemList.matchData.forEach((e,idx) =>{
+              e.oddsData.forEach(item =>{
+                if(item.length > 0){
+                  item.forEach((list,index) =>{
+                    if(list != null){
+                      storage.forEach((a,i) =>{
+                        
+                        a.forEach(b =>{ 
+                          b.forEach(k =>{
+                            if(k != null){
+                              if(list.id == k.id){
+                                if(list.odds > k.odds){
+                                  // console.log("1")
+                                  list.change = 'add'
+                                }else if(list.odds < k.odds){
+                                  // console.log("2")
+                                  list.change = 'red';
+                                }
+                                else if(list.odds == k.odds){  
+                                  // console.log("3")
+                                  list.change = '';
+                                }
+                              }
+                            }
+                          })
+                        })
+                        // a.splice(i,1)
+                      })
+                    }
+                  })
+                }
+              // item.splice(idx,1)
+              })
+            })
+          })
+        }
+      }else if(wqStorage && wqStorage != null && wqStorage != '' && wqStorage.length > 0 ){
+        if(ball == 'wq'){
+          data.forEach(list =>{
+            list.matchData.forEach(e =>{
+              e.oddsData.forEach(item =>{
+                wqStorage.forEach(a =>{
+                  a.forEach(b =>{
+                    if(item.id == b.id){
+                      if(item.odds > b.odds){
+                        item.change = 'add'
+                      }else if(item.odds < b.odds){
+                        item.change = 'red';
+                      }else{
+                        item.change = ''; 
+                      }
+                    }
+                  })
+                })
+              })
+            })
+          })
+        }
+      }
+      this.previousStorage = [];
+      this.wqPreviousStorage = [];
+      if(ball =='lq' || ball =='zq' || ball =='bq'){
+        data.forEach(list =>{
+          list.matchData.forEach(k =>{
+            this.previousStorage.push(k.oddsData)
+          })
+        })
+      }else{
+        data.forEach(res =>{
+          res.matchData.forEach(k =>{
+            this.wqPreviousStorage.push(k.oddsData)
+          })
+        })
+      }
+      this.$store.dispatch('GETGAMERATIO',data)
+      // console.log("处理数据", this.letBallData); 
+    },
+
+    /*---------------------------------------------*/
+    //
+    isClick(
+      $index,
+      match_id,
+      id,
+      home,
+      guest,
+      name,
+      odds,
+      condition,
+      odds_only,
+      odds_code,
+      type,
+      p_code,
+      oddsType
+    ) {
+      let bettingInfo = {
+        id,
+        home_team: home,
+        guest_team: guest,
+        name,
+        odds,
+        match_id,
+        condition,
+        ballId: this.$store.getters.getBallId,
+        odds_code: odds_code,
+        p_code: p_code,
+        play_name: "1X2",
+        score: this.score,
+        bettingTime: "",
+        odds_only,
+        oddsType
+      };
+      this.AddDelete(bettingInfo, $index, type);
+      if (this.$store.getters.getLimit * 1 >= 10) {
+        this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+      }
+    },
+
+    /*---------------------------------------------*/
+    //
+    bettingChange() {
+      // this.isBettingWindow = '100';
+    }
+    /*---------------------------------------------*/
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    // 监听vuex状态值的改变
+    getInfo: function() {
+      return {
+        game_code: this.$store.getters.getBallId,
+        type_code: this.$store.getters.getActivity
+      };
+    },
+
+    getIsBetting: function() {
+      return this.$store.getters.getIsBetting;
+    },
+
+    // // 获取滚动状态
+    // getscorllcode() {
+    //   return this.$public.getCache("box_size");
+    // },
+    // getBetting() {
+    //   return this.$store.getters.getBetting;
+    // },
+
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    },
+
+    getActivity: function() {
+      return this.$store.getters.getActivity;
+    }
+  },
+  watch: {
+    getActivity(val) {
+      this.activity = val;  
+    },
+
+    /*--------------------------------- */
+    getInfo(obj) {
+      let getBetting = this.$store.getters.getBetting;
+    // console.log('111',getBetting)
+    this.betting = [];
+    if(getBetting){
+      if(obj.game_code == 'zq'){
+        getBetting.forEach((e,index) =>{
+          if('concede' == e.title || 'goal_size' == e.title || 'capot' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+        // console.log('zq',this.betting)
+      }else if(obj.game_code == 'lq'){
+        getBetting.forEach((e,index) =>{
+          if('concede' == e.title || 'total_size' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }else if(obj.game_code == 'bq'){
+        getBetting.forEach((e,index) =>{
+          if('capot' == e.title || 'concede' == e.title || 'total_size' == e.title){
+            this.betting.push(e.data);
+          }          
+        })
+      }else if(obj.game_code == 'wq'){
+        getBetting.forEach((e,index) =>{
+          if('dishes' == e.title || 'kemp' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }
+    }        
+
+
+
+      //console.log("obj.game_code", obj.game_code);
+      let getActivity = this.$store.getters.getActivity;
+      this.goMatchInfo();
+      // if (getActivity == "StSoon" || getActivity == "StRollBall") {
+      // if (this.isAjax) {
+      this.$store.dispatch("GETSHOW", true);
+      this.letBallData = [];
+      this.getAjax(obj.game_code, obj.type_code);
+      // }
+      // }
+      if (obj.game_code == "zq") {
+        this.zlBallShow = true;
+      } else if (obj.game_code == "lq") {
+        this.zlBallShow = false;
+      }
+      if (obj.game_code == "lq" || obj.game_code == "bq") {
+        this.ishow = true;
+      }
+      if (obj.game_code == "wq") {
+        //this.rShow = false;
+        this.isShow = true;
+        this.wq_show = false;
+      } else {
+        //this.rShow = true;
+        this.wq_show = true;
+      }
+    },
+
+    /*-------------------------------------*/
+    // 监听投注框开关
+    getIsBetting(val) {
+      this.isBettingWindow = val;
+    },
+    getDeleteType(val) {
+      let flag = true;
+      // 下标问题
+      let ball = this.$store.getters.getBallId;
+      //("matchData", this.letBallData);
+      this.letBallData.forEach((item, index) => {
+        //console.log("item", item);
+        item.matchData.forEach(e => {
+          if (val == "all") {
+              if(ball == 'lq'){
+                e.oddsData[0].forEach(data =>{
+                  this.$set(data, "isTrue", false);
+                })
+                // e.oddsData[0].total_size.forEach(data =>{
+                //   this.$set(data, "isTrue", false);
+                // })
+              }else if(ball == 'wq'){
+                e.oddsData.forEach(data =>{
+                  this.$set(data,'isTrue',false);
+                })
+              }
+              else{
+            e.oddsData[0].forEach(data => {
+              this.$set(data, "isTrue", false);
+            });
+            e.oddsData[0].forEach(data => {
+              this.$set(data, "isTrue", false);
+            });
+            e.oddsData[1].forEach(data => {
+              this.$set(data, "isTrue", false);
+            });
+              }
+
+          } else {
+            let showData = true;
+            if(ball == 'lq'){
+            e.oddsData[0].forEach(data => {
+              if (data.id == val) {
+                this.$set(data, "isTrue", false);
+                showData = false;
+              }
+            });
+            // e.oddsData[0].total_size.forEach(data => {
+            //   if (data.id == val) {
+            //     this.$set(data, "isTrue", false);
+            //     showData = false;
+            //   }
+            // });
+                 if (showData) {
+              e.oddsData[0].forEach(data => {
+                if (data.id == val) {
+                  this.$set(data, "isTrue", false);
+                }
+              });
+              //  e.oddsData[0].total_size.forEach(data => {
+              //   if (data.id == val) {
+              //     this.$set(data, "isTrue", false);
+              //   }
+              // });
+            }
+            }else if(ball == 'wq'){
+                e.oddsData.forEach(data =>{
+                  this.$set(data,'isTrue',false);
+                })
+              }
+            else{
+             e.oddsData[0].forEach(data => {
+                if (data.id == val) {
+                  this.$set(data, "isTrue", false);
+                  showData = false;
+                }
+              });
+              if (this.isShow == false && this.$store.getters.getBallId == "zq" || ball == 'bq') {
+                e.oddsData[1].forEach(data => {
+                  if (data.id == val) {
+                    this.$set(data, "isTrue", false);
+                    showData = false;
+                  }
+                });
+              }
+                  if (showData) {
+                e.oddsData[0].forEach(data => {
+                  if (data.id == val) {
+                    this.$set(data, "isTrue", false);
+                  }
+                });
+              }
+            }
+          }
+        });
+      });
+    },
+    /*--------------------------------------------------------------------------------*/  
+    /*--------------------------------------------------------------------------------*/
+  },
+  mounted() {
+    // 调用bus传值
+    this.goMatchInfo();
+    //console.log("ssa", 123);
+    this.activity = this.$store.getters.getActivity;
+    let _this = this;
+    let getters = this.$store.getters;
+    if(getters.getBallId == 'wq'){
+      this.wq_show = false;
+    }
+    // 获取是否滑动信息
+    if (this.$public.getCache("box_size") == 1) {
+      this.isshrink = true;
+    }
+    //是否展示投注框
+    if (getters.getIsBetting == "100") {
+      this.isBettingWindow = 100;
+    }
+    //获取vuex玩法已投注相对应的数据
+    let getBetting = this.$store.getters.getBetting;
+    let ball = this.$store.getters.getBallId;
+    if(getBetting){
+      if(ball == 'zq'){
+        getBetting.forEach((e,index) =>{
+          if('concede' == e.title || 'goal_size' == e.title || 'capot' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }else if(ball == 'lq'){
+        getBetting.forEach((e,index) =>{
+          if('concede' == e.title || 'total_size' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }else if(ball == 'bq'){
+        getBetting.forEach((e,index) =>{
+          if('capot' == e.title || 'concede' == e.title || 'total_size' == e.title){
+            this.betting.push(e.data);
+          }          
+        })
+      }else if(ball == 'wq'){
+        getBetting.forEach((e,index) =>{
+          if('dishes' == e.title || 'kemp' == e.title){
+            this.betting.push(e.data);
+          }
+        })
+      }
+    }
+    if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    this.getAjax(ball,this.activity);
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax(getters.getBallId, getters.getActivity);
+      } else {
+        clearInterval(timing);
+      }
+    }, 1000 * 10);
+
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style scoped>
+.yd-cell-box .yd-cell {
+  z-index: 99;
+  border-radius: 0.2rem;
+}
+.matchBox {
+  background: #f9f9f9;
+  padding: 0.27rem 0.34rem 0 0.32rem;
+}
+.match .tit {
+  display: flex;
+  justify-content: space-between;
+  font-size: 0.32rem;
+  margin-bottom: 0.3rem;
+}
+.match .list {
+  overflow: hidden;
+  transition: all 0.3s cubic-bezier(0.4, 0.6, 0.2, 1);
+}
+.match .list div {
+  background: #dcdcdc;
+  width: 100%;
+  height: 0.88rem;
+  padding: 0.26rem 0.56rem 0.3rem 0.3rem;
+  display: flex;
+  justify-content: space-between;
+  border-radius: 0.08rem;
+  margin-bottom: 0.12rem;
+}
+.match .list span {
+  color: #333333;
+  font-size: 0.28rem;
+}
+.match .list .num {
+  width: 0.4rem;
+  height: 0.4rem;
+  display: inline-block;
+  line-height: 0.4rem;
+  text-align: center;
+  color: #f5f5f5;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #f76649;
+}
+.yd-accordion {
+  background: transparent;
+}
+.match .list div:nth-last-child(1) {
+  margin-bottom: 0.34rem;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title,
+div /deep/ .yd-accordion-title-full {
+  height: 0.3rem;
+}
+div /deep/ .yd-accordion-title {
+  min-height: 0;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head {
+  margin-bottom: 0.3rem;
+  border: none;
+}
+.list-box {
+  border: 2px solid #cecece;
+  border-radius: 0.2rem;
+}
+div /deep/ .yd-accordion-head:after {
+  height: 0px;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 0.4rem 0.4rem;
+}
+/* 1x2 */
+.top-box {
+  height: 0.45rem;
+  /* font-size: 0.24rem;
+  background: #fff; */
+  border-bottom: 1px solid #e4e4e4;
+  padding: 0 0.32rem;
+  /* line-height: 0.44rem; */
+  background: #dcdcdc;
+  font-size: 0.23rem;
+}
+.box-bottom {
+  padding: 0.1rem 0.32rem;
+  background: #f8f8f8;
+}
+.top-num {
+  display: inline-block;
+  width: 0.64rem;
+  height: 0.44rem;
+  line-height: 0.44rem;
+  color: #000000;
+  text-align: center;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.noPd {
+  padding: 0;
+}
+.noBox {
+  padding: 0;
+  background: #f4f4f4;
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #e4e4e4;
+}
+.haderBox {
+  margin-top: .05rem;
+  padding: 0 0.32rem;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: #f8f8f8;
+}
+.main-box {
+  height: 0.9rem;
+  font-size: 0.24rem;
+}
+.bottom-box {
+  height: 1.1rem;
+  background: #f8f8f8;
+  font-size: 0.24rem;
+}
+.bottom-box div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  font-size: 0.24rem;
+}
+.bottom-num {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+}
+.bottom-num p{
+  width: 100%;
+  text-align: center;
+}
+.active {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.active > p {
+  color: #e4e4e4 !important;
+}
+.num-box {
+  width: 0.66rem;
+  height: 0.34rem;
+  background: #f76649;
+  border-radius: 0.17rem;
+  color: #f5f5f5 !important;
+  line-height: 0.34rem;
+  text-align: center;
+}
+.footBox {
+  height: 1rem;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-around;
+  align-items: center;
+}
+.footBox .box {
+  display: flex;
+  align-items: center;
+}
+/* 让球&大小 */
+.letBallBox {
+  padding: 0 0.32rem;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: #f4f4f4;
+}
+
+.mg {
+  margin-bottom: 0.1rem;
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  align-items: center;
+  justify-content: center;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.2rem;
+  border-radius: 50%;
+  color: #f5f5f5;
+}
+
+.Match-box-top-right > span {
+  width: 1.07rem;
+  text-align: center;
+}
+.listbox {
+  padding: 0.1rem 0.32rem;
+}
+.name-box {
+  height: 1.76rem;
+  width: 3.8rem;
+}
+.Match-box-top {
+  height: 0.44rem;
+  padding: 0 0.32rem;
+  /* line-height: 0.44rem; */
+  background: #dcdcdc;
+  font-size: 0.23rem;
+}
+.Match-box-top-num {
+  width: 0.64rem !important;
+
+  height: 0.44rem;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.texttop {
+  color: #f76649;
+}
+.Match-box {
+  /* padding: 0 0 0.12rem; */
+  background: #f8f8f8;
+}
+.Match-list-box {
+  /* width: 35%; */
+  height: 1.76rem;
+  flex-wrap: wrap;
+  position: relative;
+}
+.rbigMall{
+  position: absolute;
+  right: 0;
+  top: 0.1rem;
+}
+.rbigMall .letballGuest{
+  position: absolute;
+  top: 0.81rem;
+  right: 0;
+}
+.Match-list-box .match-list div {
+  width: 1.07rem;
+  height: 0.8rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  flex-wrap: wrap;
+}
+.active {
+  background: #e4e4e4;
+}
+
+/* 后加 */
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #f5f5f5;
+}
+
+.Match-box-top-right > span {
+  width: 1.07rem;
+  text-align: center;
+}
+.name-box {
+  height: 1.76rem;
+}
+.Match-box-top {
+  height: 0.45rem;
+  line-height: 0.45rem;
+  background: #dcdcdc;
+  font-size: 0.23rem;
+  padding: 0 0.32rem;
+}
+.Match-box-top-num {
+  width: 0.64rem !important;
+  height: 0.45rem;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.Match-box {
+  background: #f4f4f4;
+}
+.Match-bottom-right {
+  padding: 0 0.14rem;
+}
+.Match-list-left div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  padding: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.Match-list-right div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+}
+.active {
+  background: #f76649;
+  border: none;
+  color: #e1e1df !important;
+}
+.active span {
+  color: #e1e1df !important;
+}
+.active i {
+  color: #e1e1df !important;
+}
+/* 赔率 */
+.Match-bottom-right {
+  height: 2rem;
+  width: 2.5rem;
+  padding: 0.1rem 0.1rem 0 0.14rem;
+  position: relative;
+}
+.letballHome,
+.letballGuest,
+.bigHome,
+.bigGuest {
+  width: 1.07rem;
+  height: 0.76rem;
+  /* line-height:  0.76rem; */
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  margin: 0.06rem 0.08rem;
+  /* padding: 0.1rem 0; */
+  /* margin: 0.06rem 0.6rem 0.06rem 0; */
+  text-align: center;
+}
+.letballGuest{
+    position: absolute;
+    bottom: 0.19rem;
+}
+.bigHome span,
+.bigGuest span,
+.letballHome span,
+.letballGuest span {
+  display: block;
+}
+
+.bigHome {
+  position: absolute;
+  right: 0;
+  top: 0.1rem;
+}
+.bigGuest {
+  position: absolute;
+  right: 0;
+  top: 0.93rem;
+}
+.active span {
+  color: #e1e1df !important;
+}
+.capotBox{
+  display: flex;
+  flex-direction: column;
+}
+.ratio {
+  width: 1rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.locking{
+  display: flex;
+  justify-content: space-between;
+  flex-wrap: wrap;
+  align-items: center;
+}
+.stardLeft{
+  position: absolute;
+  left: 0.2rem;
+}
+.stardCenter{
+  position: absolute;
+  left: 2.9rem;
+}
+.stardRight{
+  position: absolute;
+  right: 0.2rem;
+}
+.stardBig{
+  display: flex;
+  align-items: center;
+  justify-content: center;
+
+}
+.stardBig .bigSmall{
+  color: #9b9999;
+}
+.mg{
+  margin-top: 0.2rem;
+}
+</style>

+ 340 - 0
.svn/pristine/1f/1f8df11d41431cbbefd3bbbeb176851bad743480.svn-base

@@ -0,0 +1,340 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-for="item in data">
+        <yd-accordion>
+          <!-- 组件标题 -->
+          <yd-accordion-item class="Match-game" :title="item.title" open>
+            <!-- 让球 -->
+            <div v-if="item.title == '角球:让球'|| item.title =='角球:让球-上半场' ">
+              <!-- <div slot="txt" class="Match-game-stat" v-if="table.census">
+								当前总数:{{ table.census }}
+              </div>-->
+              <div v-if="item.val.a">
+                <div v-for="(items) in item.val.a.data">
+                  <div class="row allAlignment center rowBox">
+                    <span class="The-club">{{ item.val.a.type }}</span>
+                    <span class="column center btn-box">
+                      <i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+                      <i>{{ items.odds }}</i>
+                    </span>
+                  </div>
+                </div>
+              </div>
+              <div v-if="item.val.b">
+                <div v-for="(items) in item.val.b.data">
+                  <div class="row allAlignment center rowBox">
+                    <span class="The-club">{{ item.val.b.type }}</span>
+                    <span class="column center btn-box">
+                      <i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+                      <i>{{ items.odds }}</i>
+                    </span>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!-- 大小  a==大 , b ==小-->
+            <div v-if="item.title == '角球:进球大小'|| item.title =='角球:进球大小-上半场' ">
+              <div class="row allAlignment center rowBox" style="padding:0;">
+                <!-- {{item.data.a}} -->
+                <div class="column  width-box" style="border-right: 1px solid #e4e4e4;">
+                  <div v-for="(items) in item.data.a" class=" left-box">
+                    <div class="row allAlignment center">
+                      <span>大</span>
+                      <div class="column center btn-box">
+                        <span style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</span>
+                        <span>{{ items.odds }}</span>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div class="column width-box">
+                  <div v-for="(items) in item.data.b" class="right-box">
+                    <div class="row allAlignment center ">
+                      <span>小</span>
+                      <div class="column center btn-box">
+                        <span style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</span>
+                        <span>{{ items.odds }}</span>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+
+            <!-- 独赢 -->
+            <div v-if="item.title == '角球:独赢'|| item.title =='角球:独赢-上半场' ">
+              独赢
+              <!-- <div v-if="item.val.a">
+									<div v-for="(items) in item.val.a.data"> 
+										<div style="background: #F0F0F0;">
+											<span class="The-club">{{ item.val.a.type }}</span>
+											<span>
+												<i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+												<i > {{ items.odds }}</i>
+											</span>
+										</div>
+									</div>
+									<div v-for="(items) in item.val.b.data">
+										<div style="background: #F0F0F0;">
+											<span class="The-club">{{ item.val.b.type }}</span>
+											<span>
+												<i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+												<i> {{ items.odds }}</i>
+											</span>
+										</div>
+									</div> 
+              </div>-->
+            </div>
+
+            <!-- 单双 -->
+            <div v-if="item.title == '角球:单双'|| item.title =='角球:单双-上半场' ">
+              单双
+              <!-- <div v-if="item.val.a">
+									<div v-for="(items) in item.val.a.data"> 
+										<div style="background: #F0F0F0;">
+											<span class="The-club">{{ item.val.a.type }}</span>
+											<span>
+												<i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+												<i > {{ items.odds }}</i>
+											</span>
+										</div>
+									</div>
+									<div v-for="(items) in item.val.b.data">
+										<div style="background: #F0F0F0;">
+											<span class="The-club">{{ item.val.b.type }}</span>
+											<span>
+												<i style="color: #FD8F26;" v-if="items.condition">{{ items.condition }}</i>
+												<i> {{ items.odds }}</i>
+											</span>
+										</div>
+									</div> 
+              </div>-->
+            </div>
+
+            <!--  -->
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      title: "角球",
+      data: [],
+      isDisplay: false
+    };
+  },
+  methods: {
+    // 点击更改组件选中状态
+    Theclubboxclick(num) {
+      // 更改组件是否选中
+      this.$set(
+        this.table.list[num],
+        "istrue",
+        this.table.list[num].istrue == true ? false : true
+      );
+    }
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      let objA = [],
+        objB = [],
+        objC = [],
+        objD = [];
+      let lelBall = {},
+        lelBall1 = {};
+      let sizeA = {},
+        sizeB = {};
+      let singleA = {},
+        singleB = {};
+      let sinA = {},
+        sinB = {};
+      val.oddsData.forEach(res => {
+        if (res.key == this.title) {
+          this.isDisplay = true;
+          let key = Object.keys(res.data);
+          let data = Object.values(res.data);
+          key.forEach((e, index) => {
+            let str = e.split("|");
+            if (str[2] == "让球") {
+              if (str[0] == "全场") {
+                if (str[1] == "主队") {
+                  lelBall.a = { type: this.home_team, data: data[index] };
+                } else if (str[1] == "客队") {
+                  lelBall.b = { type: this.guest_team, data: data[index] };
+                }
+                objA[0] = { title: "角球:让球", val: lelBall };
+              } else if (str[0] == "上半场") {
+                if (str[1] == "主队") {
+                  lelBall1.a = { type: this.home_team, data: data[index] };
+                } else if (str[1] == "客队") {
+                  lelBall1.b = { type: this.guest_team, data: data[index] };
+                }
+                objA[1] = { title: "角球:让球-上半场", val: lelBall1 };
+              }
+            } else if (str[2] == "大小") {
+              if (str[0] == "全场") {
+                if (str[1] == "主队") {
+                  sizeA.a = data[index];
+                  // { type: "大", data: data[index] };
+                } else if (str[1] == "客队") {
+                  sizeA.b = data[index];
+                  // { type: "小", data: data[index] };
+                }
+                objB[0] = { title: "角球:进球大小", data: sizeA };
+              } else if (str[0] == "上半场") {
+                if (str[1] == "主队") {
+                  sizeB.a = data[index];
+                  //{ type: "大", data: data[index] };
+                } else if (str[1] == "客队") {
+                  sizeB.b = data[index];
+                  //{ type: "小", data: data[index] };
+                }
+                objB[1] = { title: "角球:进球大小-上半场", data: sizeB };
+              }
+            } else if (str[2] == "独赢") {
+              console.log("独赢");
+              if (str[0] == "全场") {
+                if (str[1] == "主队") {
+                  singleA.a = { type: this.home_team, data: data[index][0] };
+                } else if (str[1] == "客队") {
+                  singleA.b = { type: this.guest_team, data: data[index][0] };
+                } else if (str[1] == "主客平") {
+                  singleA.c = { type: "和局", data: data[index][0] };
+                }
+                objC[0] = { title: "角球:独赢", data: singleA };
+              } else if (str[0] == "上半场") {
+                if (str[1] == "主队") {
+                  singleB.a = { type: this.home_team, data: data[index][0] };
+                } else if (str[1] == "客队") {
+                  singleB.b = { type: this.guest_team, data: data[index][0] };
+                } else if (str[1] == "主客平") {
+                  singleB.c = { type: "和局", data: data[index][0] };
+                }
+                objC[1] = { title: "角球:独赢-上半场", data: singleB };
+              }
+            } else if (str[2] == "单双") {
+              if (str[0] == "全场") {
+                if (str[1] == "单") {
+                  sinA.a = { type: "单", data: data[index][0] };
+                } else if (str[1] == "双") {
+                  sinA.b = { type: "双", data: data[index][0] };
+                }
+                objD[0] = { title: "角球:进球单双", sinA };
+              } else if (str[0] == "上半场") {
+                if (str[1] == "单") {
+                  sinB.a = { type: "单", data: data[index][0] };
+                } else if (str[1] == "双") {
+                  sinB.b = { type: "双", data: data[index][0] };
+                }
+                objD[1] = { title: "角球:进球单双-上半场", sinB };
+              }
+            }
+          });
+        }
+      });
+      if (objA.length > 0) {
+        if (objA[1]) {
+          this.data.push(objA[0]);
+          this.data.push(objA[1]);
+        } else {
+          this.data.push(objA[0]);
+        }
+      }
+      if (objB.length > 0) {
+        if (objB[1]) {
+          this.data.push(objB[0]);
+          this.data.push(objB[1]);
+        } else {
+          this.data.push(objB[0]);
+        }
+      }
+      if (objC.length > 0) {
+        if (objC[1]) {
+          this.data.push(objC[0]);
+          this.data.push(objC[1]);
+        } else {
+          this.data.push(objC[0]);
+        }
+      }
+      if (objD.length > 0) {
+        if (objD[1]) {
+          this.data.push(objD[0]);
+          this.data.push(objD[1]);
+        } else {
+          this.data.push(objD[0]);
+        }
+      }
+      //console.log(this.data);
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.32rem;
+  color: #333;
+  background: #f8f8f8;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box{
+	padding-right: 0.32rem;
+	padding-left: 0.2rem;
+	border-bottom: 1px solid #e4e4e4;
+}
+.left-box{
+	padding-left: 0.32rem;
+	border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+</style>

+ 180 - 0
.svn/pristine/20/20d923fcdbefcbf0908509e8aed4b9a37772a578.svn-base

@@ -0,0 +1,180 @@
+<template>
+    <div>
+        <yd-accordion>
+        <yd-accordion-item title="波胆-上半场" open >
+        <div>
+            <div class="rulesName row">
+                <div>哈萨克斯坦</div>
+                <div>和局</div>
+                <div>马德里体育会</div>
+            </div>
+            <div class="row grids">
+                <div  class="column center" >
+                    <div class="gridsDiv row center" v-for="(item,index) in arr " :key="item.id" >
+                         <!-- :class=" [item.isTrue ? 'trueSelected':''] " -->
+                        <div v-if="item.odds !=-1 " >
+                            <div class="column average  minGrid " :class=" [item.isTrue ?'trueSelected' :'']" @click="btnChoose('a',index,item.id)">
+                                <span style="color:#FD8F26 ">{{item.score}}</span>
+                                <span>{{item.odds}}</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div  class="column center middle"  >
+                    <div class="gridsDiv row center" v-for="(item,index) in arr1 " :key="item.id" >
+                        <div v-if="item.odds !=-1 " >
+                            <div class="column average  minGrid " :class=" [item.isTrue ? 'trueSelected' :''] " @click="btnChoose('b',index,item.id)">
+                                <span style="color:#FD8F26 ">{{item.score}}</span>
+                                <span>{{item.odds}}</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div  class="column center" >
+                    <div class="gridsDiv row center" v-for="(item,index) in arr2 " :key="item.id" >
+                        <div v-if="item.odds !=-1 " >
+                            <div class="column average  minGrid" :class=" [item.isTrue ? 'trueSelected' :''] " @click="btnChoose('c',index,item.id)">
+                                <span style="color:#FD8F26 ">{{item.score}}</span>
+                                <span>{{item.odds}}</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div style="background:#f8f8f8;">
+                <div class="row rightAlignment center" style="height: 0.88rem;">
+                    <span>其他比分:</span><div class="minGrid minGridAll">51</div>
+                </div>
+            </div>
+        </div>
+        </yd-accordion-item>
+    </yd-accordion>
+    </div>
+</template>
+<script>
+import '../css/index.css';
+import Vue from 'vue';
+import {Accordion, AccordionItem} from 'vue-ydui/dist/lib.rem/accordion';
+Vue.component(Accordion.name, Accordion);
+Vue.component(AccordionItem.name, AccordionItem);
+export default {
+    // 波胆上半场
+    name:'WaveBladder',
+    data(){
+        return{
+            arr1:[{id:0,score:'3-1',odds:1.4},
+            {id:1,score:'3-1',odds:1.4},
+            {id:2,score:'2-1',odds:1.0},
+            {id:3,score:'2-1',odds:0.75},
+            {id:4,score:'1-1',odds:0.65},
+            {id:5,score:'1-1',odds:0.65},
+            {id:6,score:'1-0',odds:0.86},
+            {odds:-1},
+            {odds:-1},
+            {odds:-1},
+            {odds:-1},
+            {odds:-1}],
+            arr2:[{id:0,score:'3-1',odds:1.4},
+            {id:1,score:'3-1',odds:1.4},
+            {id:2,score:'2-1',odds:1.0},
+            {id:3,score:'2-1',odds:0.75},
+            {id:4,score:'1-1',odds:0.65},
+            {id:5,score:'1-1',odds:0.65},
+            {id:6,score:'1-0',odds:0.86},
+            {id:7,score:'1-0',odds:0.86},
+            {id:8,score:'1-0',odds:0.86},
+            {id:9,score:'0-0',odds:0.54},
+            {id:10,score:'0-0',odds:0.54},
+            {id:11,score:'0-0',odds:0.54}],
+            arr:[{id:0,score:'3-1',odds:1.4},
+            {id:1,score:'3-1',odds:1.4},
+            {id:2,score:'2-1',odds:1.0},
+            {id:3,score:'2-1',odds:0.85},
+            {id:4,score:'1-1',odds:0.85},
+            {id:5,score:'1-1',odds:0.85},
+            {id:6,score:'1-0',odds:0.76},
+            {id:7,score:'1-0',odds:0.76},
+            {id:8,score:'1-0',odds:0.76},
+            {id:9,score:'0-0',odds:0.50},
+            {odds:-1},{odds:-1}]
+        }
+    },
+    methods:{
+       btnChoose:function(e,index,id){
+            let number = index;
+            if(e=='a'){
+                this.$set(this.arr[number],'isTrue',this.arr[number].isTrue == true? false: true);
+            }else if(e =='b'){
+                this.$set(this.arr1[number],'isTrue',this.arr1[number].isTrue == true? false: true);
+            }else if(e =='c'){
+                console.log(this.arr2);
+                this.$set(this.arr2[number],'isTrue',this.arr2[number].isTrue == true? false: true);
+            }
+        }
+    },
+    watch:{
+        arr1:function(e){
+            console.log(e);
+        }
+    }
+}
+</script>
+<style scoped>
+    div /deep/ .yd-accordion-head{
+        padding: 0 0.32rem;
+        background: #F8F8F8;
+    }
+    div /deep/ .yd-accordion-title {
+        color: #333333;
+        font-size: 0.32rem;
+    }
+    div /deep/ .yd-accordion-head-arrow:after {
+        border: none;
+        width: 0.5rem;
+        height: 0.5rem;
+        background: url("../../assets/st-imges/xiangxia.png") no-repeat;
+        background-size:100% 100%;
+    }
+    .grids div {
+         background:#f8f8f8 ;
+    }
+    .middle{
+        border-left: 1px solid #E4E4E4;
+        border-right: 1px solid #E4E4E4;
+    }
+    .rulesName{
+        font-size: 0.28rem;
+        background:#F8F8F8 ;
+    }
+    .gridsDiv,.rulesName div {
+        border-bottom: 1px solid #E4E4E4;
+        height: 0.88rem;
+        line-height: 0.88rem;
+        text-align: center;
+        width: 2.49rem;
+    }
+    .minGrid{
+        width:1.07rem ;
+        height:0.76rem;
+        border: 2px solid #cecece;
+        border-radius: 0.1rem;
+    }
+    .minGrid span{
+        font-size: 0.24rem;
+        padding: 0.08rem 0;
+        line-height: 0;
+    }
+    .minGridAll{
+        margin-right: 0.69rem;
+        line-height: 0.76rem;
+        text-align: center;
+    }
+    .trueSelected{
+        background: #F76649 !important;
+        border: 2px solid #F76649
+    }
+     .trueSelected span{
+         color: #f4f4f4 !important;
+     }
+</style>
+

+ 663 - 0
.svn/pristine/21/21557a17175cd6e47c8635ae87110b228e290944.svn-base

@@ -0,0 +1,663 @@
+<template>
+  <div>
+    <div class="box">
+      <div class="row allAlignment center head_on_box">
+        <p
+          class="logo"
+          style="font-size:.6rem;color:#E1E1DF;font-family:  'Franklin Gothic Medium'"
+        >
+          <i style="color:#F76649;">HX</i>669
+        </p>
+        <p style="color:#fffffe;font-size:.36rem">投注记录</p>
+        <!-- <img class="log" src="../assets/st-imges/indexlogo.png" alt=""> -->
+        <div class="row allAlignment center">
+          <img class="user-ion" @click="toRouter()" src="@/assets/st-imges/close.png" alt>
+          <!-- <div v-if="nameShow" class="row allAlignment center username">
+              {{name}}
+          </div>-->
+          <img
+            style="margin-left: 0.44rem;"
+            class="user-ion"
+            src="@/assets/st-imges/contact.png"
+            alt
+          >
+        </div>
+      </div>
+    </div>
+    <div class="boxIn row item-center">
+      <div class="date row center">
+        <yd-button-group>
+          <yd-button size="large" bgcolor="rgba(0,0,0,0)" @click.native="openStart">{{startTime}}</yd-button>
+        </yd-button-group>
+      </div>
+      <p style="margin:0 .22rem">至</p>
+      <div class="date row center">
+        <yd-button-group>
+          <yd-button size="large" bgcolor="rgba(0,0,0,0)" @click.native="openEnd">
+            <div>{{endTime}}</div>
+          </yd-button>
+        </yd-button-group>
+      </div>
+      <button class="dateBtn" @click="reset()">查询</button>
+    </div>
+    <div
+      class="row center average betting-btn"
+      style="height:.88rem;background:#f4f4f4;margin:.1rem 0;"
+    >
+      <button
+        :class="recordConditions==1?'active':''"
+        style=" border-radius: .05rem;"
+        @click="recordCode(1)"
+      >单式投注记录</button>
+      <button
+        :class="recordConditions==2?'active':''"
+        style=" border-radius: .05rem;"
+        @click="recordCode(2)"
+      >串式投注记录</button>
+    </div>
+    <div class="row classify average">
+      <div
+        v-for="(item,index) in table"
+        :class="item.id==classifynum?'classifyactive':''"
+        :key="index"
+        @click="classifyclick(index)"
+      >{{item.title}}</div>
+    </div>
+    <div>
+      <div class="datalist">
+        <yd-infinitescroll :callback="loadList" :distance="200" ref="infinitescrollDemo">
+          <yd-list theme="5" slot="list">
+            <yd-list-item v-for="(item,index) in list" :key="index">
+              <yd-list-other slot="other">
+                <div
+                  v-if="recordConditions==1"
+                  style="width:100%;padding:0 .2rem;"
+                  class="list-box"
+                >
+                  <div class="row average center" style="margin-bottom:.1rem;">
+                    <div style="width:56%;height:100%;">
+                      <p>{{item.home_team}}vs{{item.guest_team}}</p>
+                      <p>{{item.odds_name}}</p>
+                      <p>{{item.odds_name.slice(item.odds_name.lastIndexOf('|')+1)}}&emsp;{{(item.odds_name.slice(item.odds_name.lastIndexOf('|')+1)=='独赢'?item.condition=='1'?'主队':item.condition=='2'?'客队':'和局':item.condition)+'@' + item.odds}}</p>
+                      <p>投注额:{{item.bet_money}}</p>
+                    </div>
+                    <div style="width:44%;padding:0 .1rem">
+                      <p>
+                        赢/输:
+                        <span style="color:red">{{item.winMoney==0?'无':item.winMoney}}</span>
+                      </p>
+                      <p>可赢额:{{item.willMoney}}</p>
+                      <div class="row">
+                        <p
+                          class="row center"
+                          :class="item.addBet!=1?'bg':''"
+                          :style="item.addBet==1?'background:#f76649;':'background:#aaa;'"
+                          style="width:1rem;height:.4rem;border-radius: .25rem;color:#f4f4f4;margin-top:.1rem;"
+                        >加注</p>
+                        <div
+                          class="row center"
+                          @click="detailsShow(index)"
+                          style="width:1rem;height:.4rem;border-radius: .25rem;color:#f4f4f4;margin-top:.1rem;background:#aaa;font-size:.5rem;margin-left:.1rem;margin-bottom:.2rem;"
+                        >
+                          <img
+                            v-if="details!=index"
+                            style="width:.25rem;height:.25rem;"
+                            src="@/assets/st-imges/jia.png"
+                          >
+                          <img
+                            v-if="details==index"
+                            style="width:.3rem;height:.3rem;"
+                            src="@/assets/st-imges/jian.png"
+                          >
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <div
+                    v-show="details === index"
+                    style="width:100%;height:2rem;border-top:.01rem solid #aaa;padding-top:.1rem;"
+                  >
+                    <div>
+                      <span>{{item.lg_name}}</span>
+                    </div>
+                    <div class="row item-center">
+                      <span>投注时间:</span>
+                      <span>{{item.ctime}}</span>
+                    </div>
+                    <div class="row item-center">
+                      <span>开赛时间:</span>
+                      <span>{{item.match_date}}&emsp;{{item.match_time}}</span>
+                    </div>
+                    <div>
+                      <span>订单号:</span>
+                      <span>{{item.order_id}}</span>
+                    </div>
+                    <div>
+                      <span>赛果:</span>
+                      <span style="color:red">{{item.matchResult==''?'无':item.matchResult}}</span>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="recordConditions==2" style="width:100%;">
+                  <div class="list-box row average center">
+                    <div style="width:100%;">
+                      <p
+                        class="row allAlignment item-center"
+                        style="height:.6rem;background:#a0a0a0;color:#f4f4f4;margin-bottom:.2rem;padding:0 .2rem;"
+                      >
+                        <span>订单号:{{item.order_id}}</span>
+                        <span>可赢额:{{item.prize_money}}</span>
+                      </p>
+                      <div
+                        v-for="(items,i) in item.money_buy"
+                        :key="i"
+                        style="width:100%;margin-bottom:.2rem;padding:.1rem .5rem;background:#fff;border-radius: .08rem"
+                      >
+                        <div class="row average center">
+                          <div style="width:56%;height:100%;">
+                            <p>{{items.home_team}}vs{{items.guest_team}}</p>
+                            <p>{{items.odds_name}}</p>
+                            <p>{{items.odds_name.slice(items.odds_name.lastIndexOf('|')+1)}}&emsp;{{(items.odds_name.slice(items.odds_name.lastIndexOf('|')+1)=='独赢'?items.condition=='1'?'主队':items.condition=='2'?'客队':'和局':items.condition)+'@' + items.odds}}</p>
+                            <p>投注额:{{items.bet_money}}</p>
+                          </div>
+                          <div style="width:50%;height:100%;" class="list-txt">
+                            <p>
+                              审核:
+                              <span
+                                style="color:red"
+                              >{{items.status==0?'待开奖':items.status==1?'中奖':'未中奖'}}</span>
+                            </p>
+                            <p>可赢额:{{item.money}}</p>
+                            <div class="row">
+                              <p
+                                class="row center"
+                                :class="items.addBet!=1?'bg':''"
+                                :style="items.addBet==1?'background:#f76649;':'background:#aaa;'"
+                                style="width:1rem;height:.4rem;border-radius: .25rem;color:#f4f4f4;margin-top:.1rem;"
+                              >加注</p>
+                              <div
+                                class="row center"
+                                @click="oddShow(index,i)"
+                                style="width:1rem;height:.4rem;border-radius: .25rem;color:#f4f4f4;margin-top:.1rem;background:#aaa;font-size:.5rem;margin-left:.1rem;margin-bottom:.2rem;"
+                              >
+                                <img
+                                  v-if="!items.istrue"
+                                  style="width:.25rem;height:.25rem;"
+                                  src="@/assets/st-imges/jia.png"
+                                >
+                                <img
+                                  v-if="items.istrue"
+                                  style="width:.3rem;height:.3rem;"
+                                  src="@/assets/st-imges/jian.png"
+                                >
+                              </div>
+                            </div>
+                          </div>
+                        </div>
+                        <div
+                          v-if="items.istrue"
+                          style="width:100%;height:2rem;border-top:.01rem solid #aaa;padding-top:.2rem;"
+                        >
+                          <div>联赛:{{items.lg_name}}</div>
+                          <div class="row item-center">
+                            <span>投注时间:</span>
+                            <span>{{item.money_time}}</span>
+                          </div>
+                          <div class="row item-center">
+                            <span>开赛时间:{{items.match_date}}&emsp;{{items.match_time}}</span>
+                            <span></span>
+                          </div>
+                          <div>
+                            <span>订单号:</span>
+                            <span>{{items.batch_id}}</span>
+                          </div>
+                          <div>
+                            <span>赛果:</span>
+                            <span style="color:red">{{items.matchResult==''?'无':items.matchResult}}</span>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </yd-list-other>
+            </yd-list-item>
+          </yd-list>
+        </yd-infinitescroll>
+      </div>
+    </div>
+    <yd-cell-group style="display:none;">
+      <yd-cell-item arrow>
+        <yd-datetime
+          type="date"
+          ref="datetimeStart"
+          :end-date="endTime"
+          slot="right"
+          v-model="startTime"
+        ></yd-datetime>
+      </yd-cell-item>
+    </yd-cell-group>
+    <yd-cell-group style="display:none;">
+      <yd-cell-item arrow>
+        <yd-datetime
+          type="date"
+          ref="datetimeEnd"
+          :start-date="startTime"
+          :end-date="date"
+          slot="right"
+          v-model="endTime"
+        ></yd-datetime>
+      </yd-cell-item>
+    </yd-cell-group>
+  </div>
+</template>
+<script>
+import "@/css/index.css";
+export default {
+  name: "BettingRecord",
+  data() {
+    return {
+      img: require("@/assets/st-imges/date.png"),
+      img1: require("@/assets/st-imges/home.png"),
+      img2: require("@/assets/st-imges/gengduo-1.png"),
+      active: 0,
+      list: '',
+      // 当前时间 同时也是日历结束时间
+      date: "",
+      // 日历开始时间
+      startDate: "",
+      //   查询开始时间
+      startTime: "",
+      //   查询结束时间
+      endTime: "",
+      recordConditions: 1,
+      table: [
+        { title: "待开奖", id: 0 },
+        { title: "中奖", id: 1 },
+        { title: "未中奖", id: 2 }
+      ],
+      classifynum: 0,
+      // 分页开始页
+      page: 1,
+      // 分页数据条数
+      pageSize: 10,
+      timers: true,
+      details: 99999
+    };
+  },
+  methods: {
+    oddShow(index, odd) {
+      this.list.forEach(e=>{
+        if(e.money_buy){
+           e.money_buy.forEach(a=>{
+              this.$set(a,'istrue',a.istrue?true:false)
+           })
+        }
+      })
+      this.$set(this.list[index].money_buy[odd],'istrue',this.list[index].money_buy[odd].istrue?false:true)
+      this.$forceUpdate()
+    },
+    detailsShow(num) {
+      if (this.details == num) {
+        this.details = 99999;
+      } else {
+        this.details = num;
+      }
+    },
+    //判断登录是否过期
+    getuserData() {
+      if (localStorage.getItem("token")) {
+        this.$http
+          .post(this.$ports.login.getAgent, {
+            token: localStorage.getItem("token")
+          })
+          .then(res => {
+            if (res.data.status == -4001) {
+              this.$store.dispatch("SET_TOKEN", "");
+              this.$store.dispatch("GET_ISSHOW", false);
+              this.$dialog.toast({
+                mes: "对不起您的登录已过期,请您重新登录",
+                timeout: 3000
+              });
+              this.$router.push("/");
+            }
+          });
+      }
+    },
+    reset() {
+      this.list = '';
+      this.page = 1;
+      // 重置下拉加载
+      this.$refs.infinitescrollDemo.$emit("ydui.infinitescroll.reInit");
+      this.loadList();
+    },
+    //投注类型查询
+    recordCode(num) {
+      this.recordConditions = num;
+      this.reset();
+    },
+    // 导航
+    toRouter() {
+      this.$router.go(-2);
+    },
+    // 初始化时间
+    initialTime() {
+      // 现在的时间
+      let date = new Date();
+      //  日历开始时间
+      let date2 = new Date(date);
+      date2.setMonth(date.getMonth() - 3);
+      this.startDate = `${date2.getFullYear()}-${
+        date2.getMonth() + 1 < 10
+          ? "0" + (date2.getMonth() + 1)
+          : date2.getMonth() + 1
+      }-${date2.getDate() < 10 ? "0" + date2.getDate() : date2.getDate()}`;
+      this.date = `${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.startTime = `${date.getFullYear()}-${
+        date.getMonth() - 2 < 10
+          ? "0" + (date.getMonth() - 2)
+          : date.getMonth() - 2
+      }-${date.getDate() < 10 ? "0" + date.getDate() : date.getDate()}`;
+      // console.log(this.startDate);
+      // console.log(this.endTime, "bbb");
+      // console.log(this.startTime, "cccc");
+    },
+    // 发送请求
+    loadList() {
+      // 补全时间
+      let date = new Date();
+      let hours = date.getHours();
+      let min = date.getMinutes();
+      let sec = date.getSeconds();
+      this.$http
+        .post(this.$ports.login.bettingRecord, {
+          currentPage: this.page,
+          pageSize: this.pageSize,
+          startTime: this.startTime + " 00:00:00",
+          endTime:
+            this.endTime +
+            " " +
+            (hours < 10 ? "0" + hours : hours) +
+            ":" +
+            (min < 10 ? "0" + min : min) +
+            ":" +
+            (sec < 10 ? "0" + sec : sec),
+          result: this.classifynum,
+          token: localStorage.getItem("token"),
+          type: this.recordConditions
+        })
+        .then(res => {
+          console.log(res);
+          /* 单次请求数据完毕 */
+          if (res.data.data) {
+            let table = res.data.data.list;
+            this.list = [...this.list, ...table];
+             console.log(this.list, "我的");
+          if (res.data.data.list.length < 10) {
+            this.$dialog.toast({ mes: "当前已经没有记录", timeout: 1500 });
+            /* 所有数据加载完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.loadedDone"
+            );
+            return;
+          } else {
+            /* 单次请求数据完毕 */
+            this.$refs.infinitescrollDemo.$emit(
+              "ydui.infinitescroll.finishLoad"
+            );
+            this.page++;
+          }
+          }
+         
+        });
+    },
+    // 点击待开奖,中奖未中奖
+    classifyclick(i) {
+      this.classifynum = i;
+      this.reset();
+    },
+    // 日历开关
+    openStart() {
+      this.$refs.datetimeStart.open();
+    },
+    openEnd() {
+      this.$refs.datetimeEnd.open();
+    }
+  },
+  mounted() {
+    this.initialTime();
+    this.reset();
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getuserData();
+      } else {
+        clearInterval(timing);
+      }
+    }, 1000 * 60);
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style  scoped>
+div /deep/ .yd-list-img {
+  display: none;
+}
+.list-txt p {
+  height: 100%;
+}
+.list-txt {
+}
+.bg {
+  background: #f76649;
+}
+.yd-list {
+  background: rgba(0, 0, 0, 0);
+  padding: 0;
+}
+.list-box {
+  width: 100%;
+  height: 100%;
+  font-size: 0.26rem;
+  background: #f8f8f8;
+  margin-bottom: 0.1rem;
+  margin: 0 auto;
+}
+.yd-btn-block {
+  height: 100%;
+  width: 100%;
+}
+.dateBtn {
+  width: 0.94rem;
+  height: 0.6rem;
+  border: none;
+  border-radius: 0.08rem;
+  background-image: linear-gradient(7deg, #565656 0%, #999999 100%),
+    linear-gradient(#4a4949, #4a4949);
+  color: #ffffff;
+  margin-left: 0.22rem;
+}
+.boxIn {
+  background: #e4e4e4;
+  height: 0.88rem;
+  padding: 0 0.32rem;
+}
+.betting-btn button {
+  height: 0.6rem;
+  border: none;
+  width: 2rem;
+  background: #a0a0a0;
+  color: #dcdcdc;
+}
+.betting-btn button.active {
+  background: #dcdcdc;
+  color: #363636 !important;
+}
+.listbox p {
+  width: 5rem;
+  height: 0.45rem;
+}
+.paging {
+  width: 100%;
+  height: 0.88rem;
+  position: absolute;
+  bottom: 0;
+}
+.paging p {
+  width: 0.6rem;
+  height: 0.6rem;
+  margin-left: 0.05rem;
+  border-radius: 0.08rem;
+  background: #ccc;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  color: #363636;
+}
+.paging p input {
+  width: 0.6rem;
+  height: 0.6rem;
+  background: #ebebeb;
+  border: 2px solid #ccc;
+  border-radius: 0.08rem;
+}
+.paging p button {
+  width: 0.6rem;
+  height: 0.6rem;
+  border: none;
+  background: #555;
+  color: #efefef;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  border-radius: 0.08rem;
+}
+.paging p button:active {
+  background: rgb(126, 125, 125);
+  color: #ccc;
+}
+.datalistbox {
+  height: 2.2rem;
+  margin-top: 0.3rem;
+  background: #efefef;
+  padding: 0.2rem 0.3rem;
+  font-size: 0.28rem;
+  color: #555555;
+  line-height: 0.4rem;
+}
+.datalist {
+  position: relative;
+}
+.datalistlet {
+  background-color: #cccccc;
+}
+.datalist .active {
+  background: #f76649 !important;
+  color: #efefef !important;
+}
+.msg {
+  height: 0.88rem;
+  margin-top: 0.3rem;
+  color: #ccc;
+  background: #333;
+}
+.classifyactive {
+  color: #f76649;
+
+  border-bottom: 2px solid #f76649;
+}
+.classify {
+  height: 0.88rem;
+  font-size: 0.3rem;
+  line-height: 0.66rem;
+  font-weight: normal;
+  color: #777777;
+  background-color: #efefef;
+  padding: 0.1rem 0;
+}
+.active {
+  color: rgb(247, 102, 73) !important;
+}
+.box {
+  background: #ebebeb;
+  padding-left: 0.14rem;
+}
+.date {
+  width: 2.5rem;
+  height: 0.6rem;
+  border-radius: 0.25rem;
+  background: #ccc;
+}
+#NavSlide {
+  width: 100%;
+  overflow: hidden;
+}
+#NavSlide nav {
+  padding-top: 0.1rem;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+div /deep/ .yd-datetime-content,
+div /deep/ .yd-datetime-shade,
+div /deep/ .yd-datetime-indicator {
+  height: 2rem !important;
+}
+div /deep/ .yd-button {
+  padding: 0;
+  width: 100%;
+  height: 100%;
+}
+div /deep/ .yd-button button {
+  margin: 0;
+  border-radius: 0;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  color: #b8b8b8;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+
+.head_on_box {
+  padding: 0 0.32rem;
+}
+.box {
+  height: 0.88rem;
+  background: linear-gradient(to bottom, #999999, #6a6a6b);
+  overflow: hidden;
+}
+.user-ion {
+  width: 0.3rem;
+  height: 0.3rem;
+}
+#NavSlide p {
+  width: 1.1rem;
+}
+</style>
+

+ 1161 - 0
.svn/pristine/21/219a756da159241c471b3365482e7abe33da29c8.svn-base

@@ -0,0 +1,1161 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:23
+ * @LastEditTime: 2019-08-26 11:34:56
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div :class="getBettingIsShow?'noscoll':''">
+    <div class="lod">
+      <Loading></Loading>
+    </div>
+    <div>
+      <SportsHead></SportsHead>
+      <div class="Serch">
+        <div class="Soccer-game row center">
+          <div class="Soccer-game-title row center" @click="isreturn()">
+            <img class="returnimg" :src="searchreturn">
+            {{name}}
+          </div>
+        </div>
+      </div>
+      <!-- 足球头部 -->
+      <div class="bqHead zqHead" v-if="headStatus == 1">
+        <div class="pd-10">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+              <div>
+                <!-- <span v-if="list.match_time" class="scene">{{list.match_time.split(' ')[0]}} </span>
+                &nbsp; -->
+                <span  v-if="list.match_time" class="time">{{list.match_ptime ?  list.match_ptime : list.match_time.split(' ')[0]}}</span>
+              </div>
+            </div>
+            <div class="info">
+              <span>{{list.home_team}}</span>
+              <span class="live-score">{{list.match_score ? list.match_score :'0-0'}}</span>
+              <span>{{list.guest_team}}</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 篮球头部 -->
+            <!-- 篮球头部 -->
+        <div class="header" v-if="headStatus == 2">
+          <div class=" match">
+            <div class="live">
+              <div class="tit">{{list.leagueName}}</div>
+                <div class="info">
+                <div class="infoBody flex">
+                  <div class="matchTime" style="width:25%;">
+                    <span class="scene">第四节</span>
+                    <span class="time">00:00</span>
+                  </div> 
+                  <div class="flex" style="width:75%;">
+                    <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:25%;">
+                      <span class="team">{{list.home_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div class="infoNum">22</div>
+                      <div class="infoNum">8</div>
+                      <div class="infoNum">13</div>
+                      <div class="infoNum col">13</div>
+                      <div class="infoNum"></div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">54</div>
+                    </div>
+                  </div>
+                  <div class="infoItem flex">
+                    <div style="width:25%;">
+                      <span class="team">{{list.guest_team}}</span>
+                    </div>
+                    <div class="infoBox" style="width:75%">
+                      <div class="infoNum">22</div>
+                      <div class="infoNum">8</div>
+                      <div class="infoNum">13</div>
+                      <div class="infoNum col">13</div>
+                      <div class="infoNum"></div>
+                      <!-- <div class="infoNum scenceNum">30</div>
+                      <div class="infoNum col scenceNum">26</div> -->
+                      <div class="infoNum ycol scenceNum">54</div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      <!-- 棒球头部 -->
+      <div class="tennisHead" v-if="headStatus == 3">
+        <div style="padding:0.1rem;">
+          <div class="match">
+            <div class="tit">
+              <span>{{list.leagueName}}</span>
+            </div>
+            <div class="ballTable">
+              <div class="listHead row allAlignment">
+                <div class="txt-c-0">
+                  <div class="section">{{matchScoreDetails.schedule}}
+                    <span v-if="matchScoreDetails.type == 'h'">▲</span> 
+                    <span v-else>▼</span>
+                    <!-- <span>▲</span> -->
+                  </div>
+                </div>
+                <div class="row ">
+                  <span class="session row center" v-for="(tiem,i) in 9" :key="tiem.id">
+                    {{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" style="width:0.85rem;">总局数</span>
+                </div>
+              </div>
+
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold " :class="{attack:matchScoreDetails.type == 'h'}">•</div>
+                  <div class="team" style="text-align:left;">{{ list.home_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"
+                   class="session row center">{{matchScoreDetails.sc_1th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}" 
+                  class="session row center">{{matchScoreDetails.sc_2th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}" 
+                  class="session row center ">{{matchScoreDetails.sc_3th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}" 
+                  class="session row center">{{matchScoreDetails.sc_4th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}" 
+                  class="session row center">{{matchScoreDetails.sc_5th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}" 
+                  class="session row center">{{matchScoreDetails.sc_6th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}" 
+                  class="session row center">{{matchScoreDetails.sc_7th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}" 
+                  class="session row center">{{matchScoreDetails.sc_8th_H}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}" 
+                  class="session row center">{{matchScoreDetails.sc_9th_H}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_H}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_H}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_H}}</span>
+                </div>
+              </div>
+              
+              <div class="row allAlignment scoreInfo">
+                <div class="row">
+                  <div class="ballhold" :class="{attack:matchScoreDetails.type == 'g'}">•</div>
+                  <div class="team" style="text-align:left;">{{list.guest_team}}</div>
+                </div>
+                <div class="row">
+                  <span :class="{current:matchScoreDetails.schedule ==1}"  class="session row center">{{matchScoreDetails.sc_1th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==2}"  class="session row center">{{matchScoreDetails.sc_2th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==3}"  class="session row center">{{matchScoreDetails.sc_3th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==4}"  class="session row center">{{matchScoreDetails.sc_4th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==5}"  class="session row center">{{matchScoreDetails.sc_5th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==6}"  class="session row center">{{matchScoreDetails.sc_6th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==7}"  class="session row center">{{matchScoreDetails.sc_7th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==8}"  class="session row center">{{matchScoreDetails.sc_8th_C}}</span>
+                  <span :class="{current:matchScoreDetails.schedule ==9}"  class="session row center">{{matchScoreDetails.sc_9th_C}}</span>
+                  <span class=" mg-session row center " style="background: rgba(255, 165, 0, 0.49);">{{matchScoreDetails.OT_C}}</span>
+                  <!-- <span class=" mg-session row center mark">{{matchScoreDetails.sc_ov_A}}</span> -->
+                  <span class="mg-session row center mark " style="width:0.85rem">{{matchScoreDetails.game_num_C}}</span>
+                </div>
+              </div>
+               <div class="listHead row allAlignment"> 
+                  <div class="row center">
+                    <div  class="eliminate ">
+                      <span :class="{spanBox:matchScoreDetails.baseman_2 !='N'}" style="margin-left:.11rem;"></span>
+                      <div style="width:.31rem;" class="row allAlignment">
+                        <span :class="{spanBox:matchScoreDetails.baseman_3 !='N'}"></span>
+                        <span :class="{spanBox:matchScoreDetails.baseman_1  !='N'}"></span>
+                      </div>
+                    </div>
+                  </div>
+                 <div>
+                   <span>出局:</span>
+                   <span>{{matchScoreDetails.out_game_num}}</span>
+                 </div>
+               </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!-- 网球头部 -->
+      <div class="tennisHead" style="padding:0.1rem;" v-if="headStatus == 4">
+        <div class="ballTable">
+          <div class="txt" style=" color:#fff">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="listHead row allAlignment">
+            <div class="txt">
+              <!-- <div class="spanCol">第{{scoreDetails.cp == 1?'一' : scoreDetails.cp ==2 ? "二": scoreDetails.cp ==3 ? "三":scoreDetails.cp== 4 ? "四":"五" }}节</div> -->
+              <div class="spanCol">第一节</div>
+              <!-- <div class="delay">天气原因延期</div> -->
+            </div>
+            <div class="headerTop row rightAlignment">
+              <span  v-for="(item,i) in 5" :key="item.id">{{i+1}}</span>
+              <span class="mg-5">分数</span>
+              <span class="mg-5">盘</span>
+              <span class="mg-5" style="width:0.8rem;">总局</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;">{{list.home_team}}</div>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">6</span>
+              <span class="spanCol">3</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">40</span>
+              <span class="mg-5 mark">0</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem">4</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;">{{list.guest_team}}</span>
+            </div>
+            <div class="score row rightAlignment">
+              <span class="spanCol">2</span>
+              <span class="spanCol">2</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="spanCol">0</span>
+              <span class="mg-5 mark cl" style="background: rgba(255, 165, 0, 0.49);">40</span>
+              <span class="mg-5 mark">0</span>
+              <span class="mg-5 mark sumCl" style="width:0.8rem;">2</span>
+            </div>
+          </div>
+          <div></div>
+        </div>
+        <!-- </div>
+        </div>-->
+      </div>
+
+    <!-- 原始头部 -->
+      <div class="gambling" v-show="this.list" v-if="headStatus == 0">
+        <div class="leagueMatch row average">
+          <yd-button size="large" @click.native="show = true"></yd-button>
+          <div class="leagueName">
+            <span>{{list.leagueName}}</span>
+          </div>
+          <div class="teamName">
+            <span>{{list.home_team}}</span>
+            <div class="vs">vs</div>
+            <span>{{list.guest_team}}</span>
+          </div>
+          <div class="time" :style="status == true?'':'width:2rem;'">
+            <span>{{list.match_ptime? list.match_ptime :list.match_time }}</span>
+          </div>
+          <div v-if="satatus" class="icon" :class="status == true ? 'rotate':'backRotate'">
+            <i></i>
+          </div>
+        </div>
+        <!-- 模态框 -->
+        <yd-popup v-if="satatus" v-model="show" position="center" width="90%">
+          <div class="modality">
+            <div
+              class="list"
+              v-for="(item,index) in list.league"
+              :key="index"
+              @click="check(index,item.match_id)"
+            >
+              <span :class="match_id == item.match_id?'col':''">{{item.home_team}}</span>
+              <span :class="match_id == item.match_id?'col':''">v</span>
+              <span :class="match_id == item.match_id?'col':''">{{item.guest_team}}</span>
+            </div>
+          </div>
+        </yd-popup>
+      </div>
+      <div class="box">
+          <div id="NavSlide">
+            <nav>
+              <p v-for="(item,$index) in key" @click="toggleNav($index)" :key="$index">
+                <span :class="{active:$index==active}">{{item}}</span>
+              </p>
+            </nav>
+          </div>
+        </div>
+      <div v-show="isShow">
+        <!--让球大小-->
+        <div v-show="Single =='进球:大/小' || isAll  ">
+          <goal></goal>
+        </div>
+        <!--让球-->
+        <div v-show="Single =='让球' || isAll  ">
+          <LetBall></LetBall>
+        </div>
+        <!--最先/最后进球-->
+        <div v-show="Single =='首粒入球/最后一粒入球' || isAll  ">
+          <StartEnd></StartEnd>
+        </div>
+        <!-- 总进球数 -->
+        <div v-show="Single =='总进球数' || isAll  ">
+          <GoalSize></GoalSize>
+        </div>
+        <!--独赢-->
+        <div v-show="Single =='独赢'|| Single =='独赢盘'|| isAll  ">
+          <OnlyWin></OnlyWin>
+        </div>
+        <!-- 波胆 -->
+        <div v-show="Single =='波胆' || isAll  ">
+          <div v-if="name == '网球'">
+            <TennisWaveBravery/>
+          </div>
+          <div v-else>
+             <WaveBladder></WaveBladder>
+          </div>
+        </div>
+        <!--入球数单双-->
+        <div v-show="Single =='进球:单/双'||  Single =='总分:单/双' || isAll  ">
+          <div v-if="name =='篮球' || name =='棒球'">
+           <TotalScoreSingleDouble/>
+          </div>
+          <div v-else>
+            <GoalSingleAndDouble></GoalSingleAndDouble>
+          </div>
+        </div>
+        <!--半场/全场-->
+        <div v-show="Single =='半场/全场'|| isAll  ">
+          <FullHalf></FullHalf>
+        </div>
+        <!-- 角球
+        <div v-show="Single =='角球' || isAll ">
+          <Corner></Corner>
+        </div> -->
+        <!-- 球队进球大小 -->
+        <div v-show="Single =='球队进球数:大/小' || isAll ">
+          <TeamGoalSize></TeamGoalSize>
+        </div>
+        <!-- 总得分:大/小 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSize></TotalScoreSize>
+        </div>
+        <!-- 总得分:大/小 前五 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSizeFive></TotalScoreSizeFive>
+        </div>
+        <!-- 总得分:大/小 上半场 -->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreHalfSize></TotalScoreHalfSize>
+        </div>
+        <!-- 总得分:大/小  节数-->
+        <div v-show="Single =='总得分:大/小' || isAll ">
+          <TotalScoreSectionSize></TotalScoreSectionSize>
+        </div>
+        <!-- 球队得分最后一位数 -->
+        <div v-show="Single =='球队得分最后一位数' || isAll ">
+          <TeamScoreLast></TeamScoreLast>
+        </div>
+        <!-- 总局数:大/小 -->
+        <div v-show="Single =='总局数:大/小' || isAll ">   
+          <InningsSize></InningsSize>
+        </div>
+        <!-- 总局数:单/双 -->
+        <div v-show="Single =='总局数单双' || isAll ">
+          <InningsSingleDouble></InningsSingleDouble>
+        </div>
+        <!-- 冠军 -->
+        <div v-show="Single =='冠军' || isAll ">
+          <MatchChampion></MatchChampion>
+        </div>
+         <!-- 让盘 -->
+        <div v-show="Single =='让盘' || isAll ">
+          <LetPlate></LetPlate>
+        </div>
+
+        <!-- 让局 -->
+        <div v-show="Single =='让局' || isAll ">
+          <LetBureau></LetBureau>
+        </div>
+      </div>
+      <div v-if="!isShow">
+        <NotOpend :title="tipsTitle"></NotOpend>
+      </div>
+      <!-- <StLinkFooter></StLinkFooter> -->
+      <BettingWindow v-if="isBettingWindow== '100'"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import Goal from "@/components/StGoal";
+import LetBall from "@/components/StLetBall";
+import NotOpend from "@/components/StNotOpend";
+import Loading from "@/components/StLoading";
+import WaveBladder from "@/components/StWaveBladder";
+import StLinkFooter from "@/components/StLinkFooter";
+import SportsHead from "@/components/StSportsHead";
+import OnlyWin from "@/components/StOnlyWin";
+import GoalSize from "@/components/StGoalSize";
+import StartEnd from "@/components/StStartEnd";
+import FullHalf from "@/components/StFullHalf";
+import TeamGoalSize from "@/components/StTeamGoalSize";
+import TotalScoreSize from "@/components/StTotalScoreSize";
+import TotalScoreSizeFive from "@/components/StTotalScoreSizeFive";
+import TotalScoreHalfSize from "@/components/StTotalScoreHalfSize";
+import TotalScoreSectionSize from "@/components/StTotalScoreSectionSize";
+import TeamScoreLast from "@/components/StTeamScoreLast";
+import GoalSingleAndDouble from "@/components/StGoalSingleAndDouble";
+import Corner from "@/components/StCorner";
+import TotalScoreSingleDouble from "@/components/StTotalScoreSingleDouble";
+import BettingWindow from "@/components/StBettingWindow";
+import MatchChampion from "@/components/StMatchChampion";
+import InningsSingleDouble from "@/components/StInningsSingleDouble";
+import InningsSize from "@/components/StInningsSize";
+import LetPlate from "@/components/StLetPlate";
+import LetBureau from "@/components/StLetBureau";
+import TennisWaveBravery from "@/components/StTennisWaveBravery";
+export default {
+  data() {
+    return {
+      name:this.$route.query.name, // 球名
+      searchreturn: require("@/assets/st-imges/returnbox.png"),
+      gameCode: this.$route.query.gameCode, //别名
+      match_id: "",
+      list:'', //数据
+      previousStorage:'',//前一次list储存数据
+      key: [], //存储key值进行判定
+      isShow: "", //更具数据是否显示
+      getBettingIsShow:false,// 判断投注框背景可否滚动
+      status: false,
+      tipsTitle: "暂无相关数据信息",
+      active: 0,// 投注页是否打开
+      isBettingWindow: '-1',
+      // isIphone: false,//是否ios
+      // isAndroid: false,//是否Android
+      show: false, //是否显示模态框
+      satatus: true,
+      isAll: true,
+      Single: "",
+      timers : true,//是否开启轮询
+      headStatus : 0 ,// 头部显示滚球(1为足球,2为篮球,3为棒球,4为网球),0为普通
+      matchScoreDetails:'',//比赛得分详情
+    };
+  },
+  methods: {
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+    //滚球比赛比分详情
+    scoreDetails(data){
+      //比赛得分详细
+      let matchScoreDetails  = JSON.parse(data);
+      if(matchScoreDetails.schedule){
+        if(matchScoreDetails.schedule.startsWith('Topof')){
+          matchScoreDetails.type = 'h'
+        }else if(matchScoreDetails.schedule.startsWith('Bottomof')){
+          matchScoreDetails.type = 'g'
+        }
+        matchScoreDetails.schedule =  matchScoreDetails.schedule.match(/\d+/g)[0]
+        this.matchScoreDetails = matchScoreDetails;
+      }
+    },
+
+    //页面初始化接口请求
+    getAjax: function(game_code, matchID,oddsType) {
+      this.$http.get(this.$ports.gambling.matchOdds, {
+          oddsType,
+          game_code,
+          matchID
+        }).then(res => {
+          if (res.data.status == 1 && res.data.data) {
+            // console.log(res.data.data,'1');//
+            //result_mark
+            //滚球头部数据处理
+            // console.log(res.data.data)
+            if(res.data.data.result_mark){
+              this.scoreDetails(res.data.data.result_mark);
+            }
+            // console.log(res.data.data.result_mark,'比赛得分详细');
+            this.key = [];
+            if ( res.data.data.oddsData == [] ||res.data.data.oddsData.length == 0 ||res.data.data.oddsData == null) {
+              this.$store.dispatch("GETSHOW", false);
+              this.isShow = false;
+              return false;
+            }
+            this.list = res.data.data;
+            this.satatus  = this.list.league.length > 1 ? true :false;
+            let arrayData = [];
+            let key =res.data.data.p_code_array ;//Object.keys(res.data.data.p_code_array);
+            let values = this.$store.getters.getPlayAlias;
+            //this.$store.getters.getPlayAlias;
+            this.isShow = true;
+            this.key = ["所有盘口"];
+            key.forEach((e, index) => {
+              // console.log('e',e);
+              values.forEach(val=>{
+                if(e == val.odds_code && this.$store.getters.getBallId == val.game_code){
+                  if((this.name == '篮球' && val.odds_name =='入球数单双') || (this.name == '棒球' && val.odds_name =='入球数单双')){
+                    val.odds_name ='总分:单双'
+                  }
+                  this.key.push(val.odds_name);
+                }
+              })
+              let stripData = [];
+              this.list.oddsData.forEach(data => {
+                if (data.p_code == e) {
+                  stripData.push(data);
+                }
+                arrayData[index] = stripData;
+              });
+            });
+            //更新数据和上一次的数据匹配
+            let storage =this.previousStorage;
+            //console.log('storage',arrayData)
+            if(storage && storage.match_id == this.list.match_id  && storage.oddsData.length > 0){
+              arrayData.forEach(e=>{
+                storage.oddsData.forEach((res,index)=>{
+                  if(e[0].p_code == res[0].p_code){
+                    e.forEach(dat=>{
+                      res.forEach((val,i)=>{
+                        if(dat.id == val.id){
+                          if(dat.odds > val.odds){
+                            dat.change ='add';
+                          }else if(dat.odds  < val.odds){
+                            dat.change = 'red';
+                          }else{
+                            dat.change ='';
+                          }
+                          res.splice(i,1)
+                        }
+                      })
+                    })
+                    storage.oddsData.splice(index,1)
+                  }
+                })
+              })
+            }
+            // console.log(this.previousStorage);
+            this.list.oddsData = arrayData;
+            this.previousStorage =this.list;
+            this.$store.dispatch("GETGAMERATIO", this.list);
+            //console.log("数据源", arrayData);
+          }
+          let _this=this;
+          setTimeout(()=>{
+            this.$store.dispatch("GETSHOW", false);
+          },1000)
+        });
+      },
+
+    /**
+     * 切换赛事
+     */
+    check(index, match_id) {
+      let oddsType = localStorage.getItem('activity');
+      this.show = false;
+      if (this.list.match_id == match_id) return false;
+      this.match_id = match_id;
+      this.$store.dispatch("MACTH_ID", match_id);
+      this.$store.dispatch("GETSHOW", true);
+      this.getAjax(this.gameCode, match_id,oddsType);
+    },
+
+    /**
+     * 切换玩法类型
+     */
+    toggleNav: function(index) {
+      this.active = index;
+      if (this.key[index] == "所有盘口") {
+        this.isAll = true;
+      } else {
+        this.isAll = false;
+        this.Single = this.key[index];
+      }
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    getIsBettingType() {
+      return this.$store.getters.getIsBetting;
+    },
+    // 获取投注框展示状态
+    getBettingCase(){
+        //console.log(this.$store.getters.getNoRoll,'aaaaa')
+        return this.$store.getters.getNoRoll
+    },
+  },
+
+  /**
+   * 监听器
+   */
+  watch: {
+    // 监听投注框开关
+    getIsBettingType(val) {
+      if(val=='-1'){
+        this.$store.dispatch('SET_NOROLL',false)
+      }
+      this.isBettingWindow = val;
+    },
+    getBettingCase(val){
+       this.getBettingIsShow=val
+    },
+  },
+
+  /**
+   * 
+   */
+  mounted() {
+    let ballId = this.$store.getters.getBallId;
+    let acty = this.$store.getters.getActivity;
+    if(acty == 'StRollBall'){
+      if(ballId == 'zq'){
+        this.headStatus = 1;
+      }else if(ballId == 'lq'){
+        this.headStatus = 2;
+      }else if(ballId == 'bq'){
+        this.headStatus = 3;
+      }else if(ballId == 'wq'){
+        this.headStatus = 4
+      }
+    }else{
+      this.headStatus = 0;
+    }
+    let _this = this;
+    this.match_id = this.$store.getters.getMatchId;
+    let oddsType = localStorage.getItem('activity');
+    this.$store.dispatch("GETSHOW", true);
+    this.getAjax(this.gameCode, this.match_id,oddsType);
+    //this.timers  =true;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax(_this.gameCode, _this.match_id,oddsType);
+       // _this.updateAjax(_this.gameCode, _this.match_id);
+      }else{
+        clearInterval(timing);
+      }
+    },(1000*15));
+    if (this.$store.getters.getIsBetting == '100') {
+      this.isBettingWindow = 100;
+    }
+  },
+
+  /**
+   * 关闭当前页面钩子函数
+   */
+  beforeDestroy() {
+    this.timers = false;
+  },
+  components: {
+    Corner,
+    LetBall,
+    Goal,
+    WaveBladder,
+    StLinkFooter,
+    SportsHead,
+    OnlyWin,
+    StartEnd,
+    GoalSize,
+    FullHalf,
+    GoalSingleAndDouble,
+    TeamGoalSize,
+    Loading,
+    NotOpend,
+    BettingWindow,
+    TotalScoreSize,
+    TotalScoreSizeFive,
+    TotalScoreHalfSize,
+    TotalScoreSectionSize,
+    TeamScoreLast,
+    TotalScoreSingleDouble,
+    MatchChampion,
+    InningsSingleDouble,
+    InningsSize,
+    LetPlate,
+    LetBureau,
+    TennisWaveBravery
+  }
+};
+</script>
+
+<style scoped>
+/* 禁止滚动 */
+.noscoll{
+  position: fixed;
+   width: 100%;
+  top: 0;
+  left: 0;
+}
+/* 头部 */
+.Serch {
+  height: 0.88rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: linear-gradient(to bottom, #6a6a6a, #565656);
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.33rem;
+}
+.returnimg {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.1rem;
+}
+.Soccer-game-title {
+  height: 0.88rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  height: 0.88rem;
+  /* padding: 0 0.32rem; */
+  background-color: #626262;
+}
+.gambling {
+  background: #f8f8f8;
+}
+.leagueMatch {
+  position: relative;
+  padding: 0.3rem 0.32rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  flex-wrap: nowrap;
+  border-bottom: 1px solid #e4e4e4;
+  background: linear-gradient(to top, #ffe9c9, #fff3e2);
+}
+.leagueMatch div {
+  font-size: 0.28rem;
+  text-align: left;
+  color: #333333;
+}
+.leagueName {
+  width: 2.26rem;
+}
+.leagueMatch .teamName {
+  text-align: center;
+}
+.teamName .vs {
+  text-align: center;
+  font-size: 0.24rem;
+  color: #fd8f26;
+}
+.leagueMatch .time {
+  width: 1.3rem;
+  color: #333333;
+  font-size: 0.24rem;
+  text-align: center;
+}
+.leagueMatch .icon i {
+  display: inline-block;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../../../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+  transform: rotate(180deg);
+}
+.leagueMatch .rotate {
+  transform: rotate(180deg);
+  transition: 0.2s;
+}
+.leagueMatch .backRotate {
+  transform: rotate(0deg);
+  transition: 0.2s;
+}
+
+.box {
+  padding: 0 0.14rem;
+  background: #f8f8f8;
+}
+#NavSlide {
+  width: 100%;
+  overflow: hidden;
+  height: 0.88rem;
+}
+#NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.2rem 0 0;
+  margin: 0 0.1rem 0 0;
+  color: #b8b8b8;
+  height: 0.88rem;
+  line-height: 0.88rem;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+#NavSlide .fixadd {
+  position: absolute;
+  right: -4px;
+  background-color: #31c17b;
+}
+button.yd-btn-block {
+  background: #f8f8f8;
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  /* z-index: -1; */
+  margin: 0;
+  opacity: 0;
+}
+.modality {
+  text-align: center;
+  background: #fbfbfb;
+  padding: 0.2rem 0;
+  height: 5rem;
+  /* overflow: hidden; */
+}
+.modality span {
+  color: #000000;
+  font-size: 0.28rem;
+}
+.modality div {
+  /* margin: 0.06rem 0; */
+  padding: 0.2rem 0;
+  background: #fbfbfb;
+  border-bottom: 1px solid #e4e4e4;
+}
+.modality div .col {
+  color: #fd8f26;
+}
+.lod{
+    z-index: 999;
+    position: fixed;
+    width: 100%;
+}
+/* 滚球足球头部 */
+/* 棒球头部 */
+.bqHead {
+  background: url("../../../assets/st-imges/1baseball.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.zqHead {
+  color: #fff;
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+  font-size: 0.18rem;
+}
+.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;
+  margin-right: 4px;
+}
+.current{
+  color: orange;
+}
+.session{
+  width:0.3rem;
+}
+.mark{
+  background: hsla(0, 0%, 100%, 0.25);
+}
+.scoreInfo{
+  line-height: 0.5rem;
+  padding: 0 0.1rem ;
+}
+.mg-session{
+  width:0.7rem;
+  
+}
+.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.28rem;
+}
+.match .info .pk,
+.match .tit .scene {
+  font-weight: bold;
+  color: rgb(254, 146, 0);
+}
+.tit .time {
+  color: #bd4700;
+}
+.tit span{
+  font-size: 0.26rem;
+}
+.welcome {
+  height: 0.36rem;
+  line-height: 0.36rem;
+  font-size: 0.16rem;
+  padding: 0 0.1rem;
+  background: #4e4e4e;
+  color: black;
+}
+/* 篮球头部 */
+.header .match{
+    background: #c28d47;
+    background-image: url("../../../assets/st-imges/1basketball.png") no-repeat;
+    background-size: 100% 100%;
+    color: #fff;
+}
+.flex{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.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.85rem;
+    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;
+}
+/* 网球头部 */
+.tennisHead {
+  background: url("../../../assets/st-imges/tennisball.png") no-repeat;
+  background-size: 100% 100%;
+  width: 100%;
+  height: auto;
+}
+.ordinaryHead .match .info{
+  display: flex;
+}
+.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 .txt-c-0 {
+  color: orange;
+}
+.listHead .spanCol{
+  color: orange;
+}
+.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);
+  line-height: 0.4rem;
+  padding: 0 0.1rem;
+  color: #fff;
+}
+
+.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;
+}
+.ordinaryHead {
+  background: url("../../../assets/st-imges/1football.png") no-repeat;
+  background-size: 100% 100%;
+
+  /* padding: 0.04rem; */
+  /* height: 1.2rem; */
+  /* line-height: 1.2rem; */
+}
+.ordinaryHead .match {
+  color: #fff;
+}
+.ordinaryHead .match .info {
+  padding: 0 0.2rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.ordinaryHead .match .info div span{
+  font-size: 0.22rem;
+}
+.match .time {
+  font-weight: 400;
+  color: #bd4700;
+  margin-left: 0.05rem;
+}
+.live-score {
+  padding: 0 8%;
+}
+.attack{
+  color: rgb(197, 210, 60);
+}
+</style>

文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/21/21eac2679471d058b1440c5e486df00423e090d3.svn-base


二进制
.svn/pristine/22/225038b3263f1f8caccb15bf7ddf5d5e32245b74.svn-base


二进制
.svn/pristine/22/22b70d8cef87d09133bb905a1016b88a46b7c8f8.svn-base


+ 28 - 0
.svn/pristine/23/235d0e089b31a0632f50cc5db233793093253bf8.svn-base

@@ -0,0 +1,28 @@
+<template>
+    <div>
+        <SportsHead></SportsHead>
+        <Serch></Serch>
+        <Match></Match>
+        <LinkFooter></LinkFooter>
+    </div>
+</template>
+<script>
+import  SportsHead from '../../../components/StSportsHead';
+import  Serch from '../../../components/StSerch';
+import  Match from '../../../components/StMatch';
+import  LinkFooter from '../../../components/StLinkFooter';
+import  Schedule from '../../../components/StSchedule';
+export default {
+    name:'Home',
+    components:{
+        SportsHead,
+        Serch,
+        Match,
+        LinkFooter,
+        Schedule
+    }
+}
+</script>
+<style  scoped>
+
+</style>

+ 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)
+  }
+}

文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/23/23c50241d8d139d47e5772878958b4fcfd06fd9b.svn-base


+ 297 - 0
.svn/pristine/27/27222f5bf9838d0a4a3a450d18e26281a48a6e51.svn-base

@@ -0,0 +1,297 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion> 
+          <yd-accordion-item class="Match-game" :title="total_title" open>
+            <div class="row allAlignment center rowBox" >
+              <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+                <div v-if="item.odds_code.startsWith('total_number') && item.odds_code.endsWith('big')"  v-for=" (item,index) in data" class="row allAlignment center borderBottom" >
+                  <span>大</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title,item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div  class="column  width-box " >
+                <div v-if="item.odds_code.startsWith('total_number') && item.odds_code.endsWith('small')"  v-for=" (item,index) in data"   class="row allAlignment center borderBottom">
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title,item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div v-if="obj.b">
+        <yd-accordion> 
+          <yd-accordion-item class="Match-game" :title="total_title+'-前五局'" open>
+            <div class="row allAlignment center rowBox" >
+              <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+                <div v-if="item.odds_code.startsWith('five_total_number') && item.odds_code.endsWith('big')"  v-for=" (item,index) in data" class="row allAlignment center borderBottom" >
+                  <span>大</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title+'-前五局',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+              <div  class="column  width-box " >
+                <div v-if="item.odds_code.startsWith('five_total_number') && item.odds_code.endsWith('small')"  v-for=" (item,index) in data"   class="row allAlignment center borderBottom">
+                  <span style="padding-left: 0.2rem;">小</span>
+                  <div v-if="item.odds >0" class="column center btn-box"
+                    :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                    @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,total_title+'-前五局',item.oddsType)"
+                  >
+                    <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                    <span>{{ item.odds }}</span>
+                  </div>
+                  <div v-else  class="btn-box column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "total_size",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      obj:'',
+      total_title: "总得分:大/小",
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: this.title,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name:play_name,
+        lg_id: this.lg_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //子玩法分类
+    removeHeavy(data){
+      this.data = [];
+      let obj ={};
+      data.forEach(e=>{
+          let index = e.odds_code.lastIndexOf('_');
+          let str=  e.odds_code.slice(0,index)  
+        if('five_total_number' == str || 'total_number' == str){
+          if(e.odds_code.startsWith('total_number')){
+            obj.a = true;
+          }else if(e.odds_code.startsWith('five_total_number')){
+            obj.b = true;
+          }
+          this.isDisplay = true;  
+          this.data.push(e)
+        }
+      })
+      this.obj = obj;
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.removeHeavy(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+.borderBottom{
+  border-bottom: 1px solid #e4e4e4
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 1px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

+ 237 - 0
.svn/pristine/28/2831582e073859f319d5b475457bd638af6a5c6b.svn-base

@@ -0,0 +1,237 @@
+<template>
+  <div>
+    <div class="title" v-if="isShow">
+      <span style="font-size:.28rem;color:#F76649;">{{titel}}</span>
+    </div>
+    <div
+      v-for="(item,id) in data"
+      @click="getInfo(id,item.match_id,item.game_code)"
+      class="macth row allAlignment"
+      :key="id"
+      v-if="isShow"
+    >
+      <div class="row">
+        <div class="column allAlignment center">
+          <div class="score-icon row center">
+            <span style=" margin:0.07rem; ">{{item.home_score}}</span>
+          </div>
+          <div class="score-icon row center">
+            <span style=" margin:0.07rem; ">{{item.guest_score}}</span>
+          </div>
+        </div>
+        <div class="team-box column allAlignment">
+          <span class="teamName">{{item.home_team}}</span>
+          <span style="font-size:0.2rem;padding:0.06rem 0 ;">vs</span>
+          <span class="teamName">{{item.guest_team}}</span>
+        </div>
+      </div>
+      <div class="row">
+        <div class="column allAlignment center">
+          <span class="macth-time" v-if="item.game_code != 'lq'">{{item.match_process}}</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == '1'">第一节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == '2'">第二节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == '3'">第三节</span>
+          <span class="macth-time" v-else-if="item.game_code == 'lq' && item.match_process == '4'">第四节</span>
+          <img src="../assets/st-imges/stadium.png" alt>
+          <span class="macth-time">{{item.match_time ? item.match_time :'00:00'}}  </span>
+        </div>
+      </div>
+    </div>
+    <div class="rolling" v-if="isShow">
+      <RollingBall :ballName="ball.name" :bm='bm' :name="name" :index="ball.index" :gameCode="gameCode"></RollingBall>
+    </div>
+  </div>
+</template>
+<script>
+import "../css/index.css";
+import RollingBall from "./StRollingBall";
+import Loading from "./StLoading";
+export default {
+  name: "BasketballBlock",
+  props: ["type"],
+  data() {
+    return {
+      titel: "",
+      timer: [], //存储时间
+      idx: "",
+      isShow: false,
+      gameCode: "", //球类别名
+      name: "", //球类名称传值
+      bm: "gq",
+      ball: {
+        name: "",
+        index: ""
+      },
+      data: "",
+      timers: true, // 定时器
+      getIsShow:true
+    };
+  },
+  components: {
+    RollingBall,
+    Loading
+  },
+  methods: {
+    getInfo: function(val, match_id,game_code) {
+      this.$store.dispatch("GETACTIVITY", "StRollBall");
+      //onsole.log("id", val);
+      this.$router.push({
+        path: "./StRollBallBettingPage",
+        query: {
+          gameCode: this.gameCode,
+          status: 1,
+          number: 0,
+          home: true,
+          name: this.titel
+        }
+      });
+      this.$store.dispatch('GET_BALL_ID',game_code)
+      this.$store.dispatch("MACTH_ID", match_id);
+    },
+    getAjax: function(data) {
+      if(data.matchData == 0) return false;
+      let _this = this;
+      if (this.type == 1) {
+        let matchDtat_leng = data.matchData.length;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.name = this.titel;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.ball.index = data.matchData.length;
+        this.gameCode = data.game_code;
+        // let [f, s] = this.data[0].match_time.split(":");
+        
+        // _this.data.forEach(val => {
+        //   if (val.match_time != "") {
+        //     let [f, s] = val.match_time.split(":");
+        //     this.$public.timer(f, s, function(f, s) {
+        //       val.match_time = f + ":" + s;
+        //     });
+        //   }
+        // });
+
+      } else if (this.type == 2) {
+        let matchDtat_leng = data.matchData.length;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }        
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }        
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.name = this.titel;
+        this.ball.index = this.data.length;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.gameCode = data.game_code;
+      } else if (this.type == 3) {
+        let matchDtat_leng = data.matchData.length;
+        for(var i = 0; i < matchDtat_leng; i++){
+          data.matchData[i].game_code = data.game_code;
+        }        
+        if(matchDtat_leng > 6){
+          this.data = data.matchData.slice(0,6);
+        }else{
+           this.data = data.matchData
+        }            
+        this.isShow = true;
+        this.titel = data.gameName;
+        this.ball.index = this.data.length;
+        this.name = this.titel;
+        this.ball.name = "所有" + this.titel + "滚球";
+        this.gameCode = data.game_code;    
+      }
+     
+      setTimeout(()=>{
+        _this.$store.dispatch("GETSHOW", false);
+      },1000)
+      
+    }
+  },
+    /**
+   * 计算属性
+   */
+  computed: {
+    getHomeRollBall() {
+      return this.$store.getters.getHomeRollBall;
+    },
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getHomeRollBall(val){
+      if(this.type == 1){
+        this.getAjax(val.zqData);
+      }else if(this.type == 2){
+       this.getAjax(val.lqData);
+      }else if(this.type == 3){
+        this.getAjax(val.bqData);
+      }
+    }
+  },
+  mounted() {
+    if(this.getIsShow){
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    } 
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+<style scoped>
+/* .box{
+        border-bottom: 1px soild  red;
+    } */
+.macth {
+  height: 1.76rem;
+  margin-top: 0.2rem;
+  color: #333333;
+  background: #dcdcdc;
+  border-radius: 0.08rem;
+  /* border:2px solid #CECECE; */
+  padding: 0.24rem;
+  font-size: 0.22rem;
+}
+.score-icon {
+  min-width: 0.66rem;
+  background: #f76649;
+  border-radius: 0.17rem;
+  color: #f5f5f5;
+  font-size: 0.2rem;
+}
+.teamName {
+  font-size: 0.26rem;
+}
+.team-box {
+  margin-left: 0.29rem;
+  max-width: 3.4rem;
+}
+.macth-time {
+  font-size: 0.24rem;
+}
+.title {
+  padding-top: 0.1rem;
+  margin: 0.1rem 0;
+  font-size: 0.28rem;
+  color: #000000;
+}
+.rolling {
+  padding-top: 0.41rem;
+  padding-bottom: 0.46rem;
+}
+</style>
+
+

二进制
.svn/pristine/29/29773ba816457eab251845337f3a41ad644f9b76.svn-base


+ 317 - 0
.svn/pristine/29/29d2601ae53a1d77c5fbabd9556919123a8395af.svn-base

@@ -0,0 +1,317 @@
+<template>
+  <div>
+    <yd-popup v-model="isshow" position="center" width="90%">
+      <div class="Loginbox">
+        <div class="Loginbox-top">
+          <div class="loginbox-close">
+            <img :src="img.url1" @click="LoginEsc()">
+          </div>
+          <div class="loginbox-logo">
+            <span>
+              <i style="color:#F76649">HX</i>699
+            </span>
+          </div>
+        </div>
+        <!-- 账号输入框 -->
+        <div class="Loginbox-main">
+          <div class="account-box">
+            <div class="account-box-img">
+              <img :src="img.url3">
+            </div>
+            <!-- 账号输入 -->
+            <div class="account-box-input">
+              <input
+                @focus="clearacc('acc')"
+                :style="account=='用户名不存在'?'color:red;':''"
+                v-model="account"
+                type="text"
+                placeholder="账户名"
+                onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
+              >
+            </div>
+            <div style="width:.8rem"></div>
+          </div>
+          <!-- 密码输入框 -->
+          <div class="password-box">
+            <div class="password-box-img">
+              <img :src="img.url4">
+            </div>
+            <!-- 密码输入 -->
+            <div class="password-box-input">
+              <input
+                @focus="clearacc('pwd')"
+                 autocomplete="off"
+                v-model="password"
+                :style="password=='密码错误'?'color:red;':''"
+                :type="lockactive == true ? 'text' : 'password'"
+                placeholder="密码"
+                onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
+              >
+            </div>
+            <!-- 查看密码,密码可见 -->
+            <div class="password-box-look">
+              <img @click="lookclick(lockactive)" :src="lockactive == true ? img.url6 : img.url5">
+            </div>
+          </div>
+          <div class="infomation">{{info}}</div>
+          <div class="instrument-box">
+            <div class="remember-acc" @click="instrumentclick()">
+              <img :src="rememberacc == true ? img.url8 : img.url7">
+              &nbsp;
+              <span style="color: #AAAAAA;">记住账号</span>
+            </div>
+            <div class="forget-pwd" @click="forgetpwd(account)">
+              <span style="color: #F76649;">忘记密码</span>
+            </div>
+          </div>
+          <div class="login-btn" @click="login()">登录</div>
+          <div class="login-footer">
+            <p style="width: 100%;color: #AAAAAA;font-size: .22rem;text-align: center;">
+              没有HX699账户?
+              <br>
+              <span style="color: #F76649;font-size: .23rem;" @click="register()">注册</span>
+            </p>
+          </div>
+        </div>
+      </div>
+    </yd-popup>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "Login",
+  data() {
+    return {
+      // 账号密码
+      account: "",
+      password: "",
+      // 是否密码可见
+      lockactive: false,
+      // 是否记住账号
+      rememberacc: false,
+      // 是否退出登录界面
+      isshow: this.$store.state.isShow,
+      info: "",
+      // 提示数据
+      data: "",
+      img: {
+        url1: require("@/assets/st-imges/guanbi.png"),
+        url2: require("@/assets/st-imges/loginlogo.png"),
+        url3: require("@/assets/st-imges/zhanghao.png"),
+        url4: require("@/assets/st-imges/mima.png"),
+        url5: require("@/assets/st-imges/kan.png"),
+        url6: require("@/assets/st-imges/kanactive.png"),
+        url7: require("@/assets/st-imges/xuanzhong.png"),
+        url8: require("@/assets/st-imges/xuanzhongactive.png")
+      }
+    };
+  },
+  methods: {
+    // 错误刷新
+    clearacc(val) {
+      if (val == "acc") this.account = "";
+      else if (val == "pwd") this.password = "";
+    },
+    // 点击密码可见
+    lookclick(istrue) {
+      this.lockactive = !istrue;
+    },
+    // 点击确认是否记住账号
+    instrumentclick() {
+      this.rememberacc = !this.rememberacc;
+      if (this.rememberacc == true) {
+          localStorage.setItem("status", true);
+      } else {
+        localStorage.setItem("status", false);
+      }
+    },
+    // 点击忘记密码?
+    forgetpwd(acc) {
+      console.log("这是忘记密码");
+    },
+    //登录
+    login() {
+      if (this.account.length > 0 && this.password.length > 0) {
+        console.log(this.account.length);
+        // 请在此处发送登录请求
+        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("token", res.data.data[0].token);
+              this.$store.dispatch("SET_TOKEN", res.data.data[0].token);
+              localStorage.setItem("name", res.data.data[0].name);
+              this.$store.dispatch("GET_ISSHOW", false);
+              this.$dialog.toast({mes: '登录成功!', timeout: 1500});
+            } else {
+              console.log('resstatus',res)
+              this.info = res.data.msg;
+            }
+          });
+        // 是否记住账号,记住账号是在登录成功后使用
+        if (this.rememberacc == true) {
+          localStorage.setItem("value", this.account);
+        }
+      } else {
+        this.info = "账号或密码有误";
+      }
+    },
+    // 关闭登录组件
+    LoginEsc() {
+      // 关闭登录
+      this.isshow = false;
+      this.$store.dispatch("GET_ISSHOW", this.isshow);
+      this.$store.dispatch("SET_NOROLL", false);
+    },
+    register() {
+      this.$store.dispatch("GET_ISSHOW", false);
+      this.$store.dispatch("GETRGSHOW", true);
+    }
+  },
+  computed: {
+    Isshow: function() {
+      // 根据登录框设置背景可否滚动
+      this.$store.dispatch("SET_NOROLL", this.isshow);
+      this.$store.dispatch("GET_ISSHOW", this.isshow);
+      return {
+        isshow_code: this.$store.getters.getIsShow
+      };
+    }
+  },
+  watch: {
+    Isshow(obj) {}
+  },
+  mounted() {
+    // console.log('status',localStorage.getItem('status'))
+    if (localStorage.getItem("status")) {
+      this.account = localStorage.getItem("value");
+      this.rememberacc = true;
+    } else {
+      this.account = "";
+      this.rememberacc = false;
+    }
+  }
+};
+</script>
+<style scoped>
+.Loginbox {
+  background: #f8f8f8;
+  border-radius: 0.52rem;
+}
+.loginbox-close {
+  height: 1.2rem;
+  position: relative;
+}
+.loginbox-close img {
+  width: 0.26rem;
+  height: 0.26rem;
+  position: absolute;
+  top: 0.92rem;
+  right: 0.93rem;
+}
+.loginbox-logo {
+  height: 1.5rem;
+  display: flex;
+  justify-content: center;
+  font-size: 0.6rem;
+  color: #ccc;
+  align-items: center;
+}
+.Loginbox-main {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+}
+.Loginbox-main .account-box,
+.password-box {
+  height: 0.9rem;
+  width: 5rem;
+  border-bottom: 1px solid #e4e4e4;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+}
+.password-box-img img {
+  width: 0.53rem;
+  height: 0.53rem;
+}
+.account-box-img img {
+  width: 0.33rem;
+  height: 0.32rem;
+}
+.password-box-look img {
+  width: 0.4rem;
+  height: 0.4rem;
+}
+.account-box-img {
+  width: 0.8rem !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.password-box-img {
+  width: 0.8rem !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.password-box-look {
+  width: 0.8rem !important;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+input {
+  border: none;
+  width: 100%;
+  height: 0.9rem;
+  font-size: 0.26rem;
+  color: #aaaaaa;
+}
+.instrument-box {
+  height: 0.9rem;
+  width: 5rem;
+  display: flex;
+  justify-content: space-between;
+  padding: 0 0.5rem;
+  align-items: center;
+}
+.remember-acc {
+  display: flex;
+  justify-content: flex-start;
+}
+.remember-acc img {
+  width: 0.33rem;
+  height: 0.33rem;
+}
+.login-btn {
+  width: 5rem;
+  height: 0.88rem;
+  background: #f76649;
+  color: #f8f8f8;
+  display: flex;
+  border-radius: 0.08rem;
+  justify-content: center;
+  align-items: center;
+}
+.login-footer {
+  height: 1.96rem;
+  display: flex;
+  justify-content: center;
+  flex-wrap: wrap;
+  align-items: center;
+  width: 100%;
+}
+.infomation {
+  width: 100%;
+  margin-left: 20%;
+  margin-top: 0.2rem;
+  color: #f76649;
+}
+</style>

+ 459 - 0
.svn/pristine/2a/2aafe88bafa095529523d7cf469e3a87b2d51c62.svn-base

@@ -0,0 +1,459 @@
+<template>
+  <div>
+    <div class="Serch row item-center">
+      <div class="Soccer-game row item-center">
+        <div
+          style=" display:flex;align-items:center;justify-content:center;"
+          class="Soccer-game-title"
+          @click="isreturn()"
+        >
+          <img class="box-img" src="../assets/st-imges/returnbox.png">
+          {{this.title}}
+        </div>
+      </div>
+    </div>
+    <div class="champion">
+      <div v-for="item in ChampionData" :key="item.id">
+        <div class="title">
+          <span>{{item.name}}</span>
+          <div class="time">
+            <span>{{item.last_time}}</span>
+          </div>
+        </div>
+        <div v-for="(items) in item.data" :key="items.id">
+          <div class="chmpTit">{{items.title}}</div>
+          <div v-for="itemList in items.datas" :key="itemList.id">
+            <div class="list">
+              <span class="chmName">{{itemList.team}}</span>
+              <div
+               v-if="itemList.odds >0 "
+                class="num"
+                @click="championBetting(itemList.id,itemList.odds,itemList.odds_only,itemList.p_code,itemList.match_id,itemList.odds_code,items.title,itemList.lg_id,itemList.team)"
+                :class="{active:itemList.isTrue,increased_color:itemList.change == 'add',reduce_color:itemList.change == 'red'}"
+              >{{itemList.odds}}</div>
+              <div v-else  class="ratio column center">
+                <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="BettingWindow" v-if="isBettingWindow =='100'">
+      <BettingWindow/>
+    </div>
+  </div>
+</template>
+<script>
+import BettingWindow from "./StBettingWindow.vue";
+import Loading from "@/components/StLoading";
+export default {
+  name: "champion",
+  data() {
+    return {
+      title: this.$route.query.name, //标题
+      data: "", // 冠军盘口数据
+      ChampionData: "",
+      isBettingShow: "0", //投注显示关闭默认false
+      // 冠军盘新增
+      match_id: "", //赛事ID
+      betting: 10000, //vuex里面玩法投注数据
+      thisNum: 10000, //vuex里面
+      lg_id: "",
+      scorll: "", //背景滚动
+      isBettingWindow: "-1",
+      getIsShow:true,
+      // 存储变色数据
+      previousStorage:[],
+      timers : true
+    };
+  },
+  components: {
+    BettingWindow,
+    Loading
+  },
+  methods: {
+    /*--------------------------------------------------------------------------------*/
+    //   冠军盘玩法投注
+    //冠军盘口投注
+    championBetting(
+      id,
+      odds,
+      odds_only,
+      p_code,
+      match_id,
+      odds_code,
+      play_name,
+      lg_id,
+      name
+    ) {
+      if (this.$store.getters.getLimit * 1 >= 10) {
+        this.$dialog.alert({ mes: "你的注单已达到上限啦!" });
+      }
+      // 导入数据
+      let _this = this;
+      let isAdd = true;
+      let bettingInfo = {
+        id,
+        home_team: "",
+        guest_team: "",
+        name,
+        odds,
+        match_id,
+        condition: "",
+        ballId: this.$store.getters.getBallId,
+        odds_code: odds_code,
+        p_code: "gj",
+        play_name,
+        score: "",
+        bettingTime: "",
+        odds_only,
+        lg_id
+      };
+      console.log(bettingInfo);
+      let matchList = this.$store.getters.getBetting;
+      if (this.thisNum != 10000) {
+        //删除vuex投注数据
+        matchList[this.thisNum].data.forEach((res, index) => {
+          if (res.id == id) {
+            console.log(res.id, id);
+            this.modifyChampionStyle(id);
+            matchList[this.thisNum].data.splice(index, 1);
+            this.$store.dispatch("SET_LIMIT", false);
+            this.$store.dispatch("BETTING", []);
+            this.$store.dispatch("BETTING", matchList);
+            isAdd = false;
+          }
+        });
+        //添加vuex投注数据
+        if (isAdd) {
+          if (this.$store.getters.getLimit * 1 >= 10) return false;
+          this.modifyChampionStyle(id);
+          matchList[this.thisNum].data.push(bettingInfo);
+          this.$store.dispatch("BETTING", []);
+          this.$store.dispatch("BETTING", matchList);
+          if (this.$store.getters.getIsBetting == "100") return false;
+          this.$store.dispatch("ISBETTING", 100);
+        }
+      } else {
+        //添加新的玩法赔率数据
+        let obj = {
+          title: "gj",
+          data: [bettingInfo]
+        };
+        //console.log(obj);
+        //判断vuex有误其它玩法数据
+        if (matchList) {
+          matchList.push(obj);
+        } else {
+          this.$store.dispatch("BETTING", [obj]);
+        }
+        this.modifyChampionStyle(id);
+        if (this.$store.getters.getIsBetting == "100") return false;
+        this.$store.dispatch("ISBETTING", "100");
+      }
+    },
+    /*-----------------------------------------------------*/
+    /*-----------------------------------------------------*/
+    //修改当前页面样式公共方法
+    modifyChampionStyle: function(id) {
+      this.ChampionData.forEach(a => {
+        a.data.forEach(b => {
+          b.datas.every((res, index) => {
+            if (res.id == id) {
+              this.$set(res, "isTrue", res.isTrue ? false : true);
+              this.$forceUpdate();
+              console.log(res.isTrue);
+              return false;
+            }
+            return true;
+          });
+          return true;
+        });
+      });
+    },
+    /*--------------------------------------------------------------------------------*/
+    // 返回上一页
+    isreturn() {
+      history.go(-1);
+    },
+    getAjax() {
+      this.$http
+        .get(this.$ports.match.matchState, {
+          game_code: this.$route.query.game_code,
+          lg_id: this.$route.query.leagueID,
+          type_code: "StChampion"
+        })
+        .then(res => {
+          this.championGroup(res.data.data);
+        });
+            let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+      }, 1000);
+    },
+    /*--------------------------------------------------- */
+    //冠军
+    championGroup(data) {
+      // console.log("data", data);
+      let champion = {},
+        stiTime = "",
+        chamData = [];
+      let title = Object.keys(data);
+      let val = Object.values(data);
+      let championBet = this.getTypeBetting("gj");
+      title.forEach((e, index) => {
+        chamData.push({
+          name: e,
+          data: val[index]
+        });
+      });
+      chamData.forEach(res => {
+        res.last_time = res.data.last_time;
+        let resData = Object.values(res.data);
+        let resTitle = Object.keys(res.data);
+        res.data = [];
+        resTitle.forEach((e, index) => {
+          if (e !== "last_time") {
+            if (championBet != "-1") {
+              championBet.forEach(bet => {
+                resData[index].forEach(val => {
+                  //
+                  if (bet.id == val.id) {
+                    //console.log('冠军',val)
+                    val.isTrue = true;
+                  }
+                });
+              });
+            }
+            res.data.push({
+              title: e,
+              datas: resData[index]
+            });
+          }
+        });
+      });
+      this.ChampionData = chamData;
+      let storage = this.previousStorage;
+      if(storage && storage != null && storage.length >0){
+        this.ChampionData.forEach(e =>{
+          e.data.forEach(k =>{
+            k.datas.forEach(item =>{
+              storage.forEach(a =>{
+                a.forEach(b =>{
+                  if(item.id == b.id){
+                    if(item.odds > b.odds){
+                      item.change = 'add'
+                    }else if(item.odds <b.odds){
+                      item.change = 'red'
+                    }else{
+                      item.change = ''
+                    }
+                  }
+                })
+              })
+            })
+          })
+        })
+      }
+       this.previousStorage = [];
+       this.ChampionData.forEach(e =>{
+         e.data.forEach(k =>{
+           this.previousStorage.push(k.datas)
+         })
+       })
+      //  console.log('123123123',this.previousStorage)
+      console.log("冠军", this.ChampionData);
+    
+    },
+    //获取vueX相对应投注信息
+    getTypeBetting: function(type) {
+      let data = "-1";
+      if (this.betting.length > 0) {
+        this.betting.forEach((e, index) => {
+          if (e.title == type) {
+            data = e.data;
+            this.thisNum = index;
+          }
+        });
+      } else {
+        data = "-1";
+      }
+
+      return data;
+    }
+  },
+  mounted() {
+       if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    if (this.$store.getters.getIsBetting == "100") {
+      this.isBettingShow = 100;
+    }
+    //获取vuex玩法已投注相对应的数据
+    //是否展示投注框
+    if (this.$store.getters.getIsBetting == "100") {
+      this.isBettingWindow = "100";
+    }
+    //获取vuex玩法已投注相对应的数据
+    if (this.$store.getters.getBetting) {
+      this.betting = this.$store.getters.getBetting;
+    }
+    // 调用
+    this.getAjax();
+        let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+     _this.getAjax("");
+      }else{
+        clearInterval(timing);
+      }
+    },(1000*10));
+  },
+  computed: {
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    getIsBetting() {
+      return this.$store.getters.getIsBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    // 监听滚动状态变化赋值滚动
+    getscorllcode(val) {
+      this.scorll = val;
+    },
+    getDeleteType(val) {
+      let flag = true;
+      this.ChampionData.forEach(e => {
+        if (val == "all") {
+          e.data.forEach(k => {
+            k.datas.forEach(i => {
+              this.$set(i, "isTrue", false);
+            });
+          });
+        } else {
+          let showData = true;
+          e.data.forEach(k => {
+            k.datas.forEach(i => {
+              if (i.id == val) {
+                this.$set(i, "isTrue", false);
+                showData = false;
+              }
+            });
+          });
+          if (showData) {
+            e.data.forEach(k => {
+              k.datas.forEach(i => {
+                if (i.id == val) {
+                  this.$set(i, "isTrue", false);
+                }
+              });
+            });
+          }
+        }
+      });
+    },
+    getBetting(val) {
+      //获取vuex玩法已投注相对应的数据
+      if (val) {
+        val.forEach((e, index) => {
+          if ("gj" == e.title) {
+            this.thisNum = index;
+            this.betting = e.data;
+            // console.log('betting', this.betting)
+          }
+        });
+      }
+    },
+    // 监听投注框开关
+    getIsBetting(val) {
+      this.isBettingWindow = val;
+    }
+  },
+    beforeDestroy(){
+    this.timers = false;
+  }
+};
+</script>
+<style scoped>
+.Serch {
+  height: 0.75rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background-color: #363636;
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.32rem;
+}
+.box-img {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.18rem;
+}
+.champion .title {
+  padding: 0.15rem 0.2rem;
+  background-color: #626262;
+}
+.champion .title span {
+  font-size: 0.28rem;
+  font-weight: bold;
+  color: #e1e1df;
+}
+.champion .title .time span:nth-child(2) {
+  color: #f76649;
+}
+.chmpTit {
+  height: 0.7rem;
+  line-height: 0.7rem;
+  padding: 0 0.2rem;
+  background: #e4e4e4;
+}
+.champion .list {
+  height: 1rem;
+  line-height: 0.6rem;
+  padding: 0.1rem 0.2rem;
+  width: 100%;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-pack: justify;
+  -ms-flex-pack: justify;
+  justify-content: space-between;
+  border-bottom: 1px solid #aaa;
+  font-size: 0.28rem;
+  background: #f4f4f4;
+}
+.champion .list span:nth-child(1) {
+  margin-top: 0.1rem;
+}
+.champion .list .num {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #e4e4e4;
+  border-radius: 0.1rem;
+  padding: 0.1rem;
+  text-align: center;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

+ 303 - 0
.svn/pristine/2b/2b1978bc45dae9b732d3b73acb1a3fd62c43a03b.svn-base

@@ -0,0 +1,303 @@
+<template>
+  <div  :class="norill?'noroll':''">
+    <div class="lod">
+      <Loading></Loading>
+    </div>
+    <SportsHead></SportsHead>
+    <div v-if="arr.length >0 ">
+      <div id="NavSlide" class="row allAlignment center">
+        <div class="nav-div">
+          <nav>
+            <div
+              class="column center img-div"
+              v-for="(item,$index) in arr"
+              @click="toggle(item.game_code,item.game_name)"
+            >
+              <img
+                :class="gameCode == item.game_code?'img-box imgactive':'img-box'"
+                :src="item.game_ico_url"
+              >
+              <span
+                class="text"
+                style="font-size:.2rem;"
+                :class="{active:item.game_code == gameCode}"
+              >{{item.game_name}}</span>
+            </div>
+          </nav>
+        </div>
+      </div>
+      <!-- 显示头部按钮组件1*2/让球&大小/独赢盘 -->
+      <RollingBallHead v-if="soon_rollBall == 100" :name="name" :ishow="isShow"/>
+    </div>
+    <!-- 滚球/即将组件 -->
+    <div v-if="soon_rollBall == '100'" >
+      <Match  :gameCode="gameCode" :ishow="isShow" :name="name"></Match>
+    </div>
+    <!-- 剩余4种玩法组件 -->
+    <div v-if="soon_rollBall == '-1'">
+      <NavBall  :name="name"/>
+    </div>
+    <!-- <NavBall v-show="!nameShow" :name="name" :headShow = 'headShow'/> -->
+    <!-- <LinkFooter></LinkFooter> -->
+  </div>
+</template>
+<script>
+import SportsHead from "@/components/StSportsHead";
+import SerchBox from "@/components/StSerchBox";
+import Match from "@/components/StMatch";
+import RollingBallHead from "@/components/StRollingBallHead";
+import LinkFooter from "@/components/StLinkFooter";
+import ActivitySlider from "@/components/StActivitySlider";
+import Loading from "@/components/StLoading";
+import NavBall from "@/components/StNavBall";
+export default {
+  name: "RollBallpage",
+  data() {
+    return {
+      gameCode: "",
+      isShow: false, //显示1X2还是独赢盘状态 //true 为1x2
+      name: "",//球类名字
+      soon_rollBall: 0, //判断是否为(滚球、即将)或者是其他的状态
+      arr: [],
+      headShow:true, // 如果没有头部导航数据则不显示..
+      number:'',//活动别名
+      norill:false,
+      getIsShow:true,
+    };
+  },
+  /**
+   * 计算属性
+   */
+  computed: {
+    // 获取活动vuex的头部活动类型
+    getNumber: function() {
+      return this.$store.getters.getActivity;
+    },
+    	noRoll(){
+			return this.$store.getters.getNoRoll
+		}
+  },
+
+  /**
+   * 数据监听
+   */
+  watch: {
+    getNumber(val) {
+      if ( val != "StSoon" && val != "StRollBall" ) {
+        this.soon_rollBall = '-1';
+      } else {
+        this.soon_rollBall = '100';
+      }
+      if (this.number != val ) {
+        this.getAjax(val);
+        this.$store.dispatch('GETSHOW',true);
+      }
+      this.number = val;
+    },
+    	noRoll(val){
+			this.norill=val
+		}
+  },
+  /**
+   * 函数方法
+   */
+  methods: {
+    /*-------------------------------- */
+    //切换球类样式
+    toggle: function(id, name) {
+      this.gameCode = id;
+      this.name = name;
+      if (id != "zq") {
+        this.isShow = true;
+      } else {
+        this.isShow = false;
+      }
+      this.$store.dispatch("GET_BALL_ID", id); //将球类别存入vuex里面
+    },
+
+    /*------------------------------- */
+    //获取头部活动下的球类数据
+    getAjax: function(type_code) {
+    
+      this.$http.get(this.$ports.rollBall.getGame, {type_code,}).then(res => {
+        //console.log("球类", res);
+        this.arr = [
+          {
+            game_ico_url: require("@/assets/st-imges/football.png"),
+            titel: "足球",
+            game_code: "zq"
+          },
+          {
+            game_ico_url: require("@/assets/st-imges/basketball.png"),
+            titel: "篮球",
+            game_code: "lq"
+          },
+          {
+            game_ico_url: require("@/assets/st-imges/baseball.png"),
+            titel: "棒球",
+            game_code: "bq"
+          },
+          {
+            game_ico_url: require("@/assets/st-imges/tennis.png"),
+            titel: "网球",
+            game_code: "wq"
+          }
+        ];
+        //console.log('滚球类',res);
+        if (res.data.status == 1 && res.data.data.length > 0 && res.data.data != null ) {
+          // this.headShow = true;
+          let dtatArry = [];
+          this.arr.forEach(e => {
+            res.data.data.forEach(val => {
+              if (e.game_code == val.game_code) {
+                val.game_ico_url = e.game_ico_url;
+                dtatArry.push(val);
+              }
+            });
+          });
+          this.arr = dtatArry;
+          this.gameCode =dtatArry[0].game_code;
+          this.name = dtatArry[0].game_name;
+          this.$store.dispatch("GET_BALL_ID", this.arr[0].game_code);
+          if (this.gameCode != "zq") {
+            this.isShow = true;
+          } else {
+            this.isShow = false;
+          }
+        } else {
+          this.arr = []; 
+        }
+
+        let _this = this;
+        setTimeout(function(){
+          _this.$store.dispatch('GETSHOW',false);
+        },1000)
+      });
+    }
+  },
+  /**
+   * 页面加载完成挂载
+   */
+  mounted() {
+    if(this.getIsShow){
+        this.$store.dispatch('GETSHOW',true);
+        this.getIsShow=false
+    }
+    let getActivity =this.$store.getters.getActivity;
+    if(getActivity != "StSoon" && getActivity != "StRollBall"){
+      this.soon_rollBall = '-1';
+    }else{
+      this.soon_rollBall = '100';
+    }
+    this.getAjax(getActivity);
+  },
+  components: {
+    SportsHead,
+    SerchBox,
+    Match,
+    LinkFooter,
+    ActivitySlider,
+    RollingBallHead,
+    Loading,
+    NavBall
+  }
+};
+</script>
+<style  scoped>
+.noroll{
+		position: fixed;
+     width: 100%;
+		top: 0;
+		left: 0;
+	}
+.lod {
+  z-index: 999;
+  position: fixed;
+  width: 100%;
+}
+.text {
+  margin-top: 0.08rem;
+}
+#NavSlide {
+  height: 1rem;
+  background: #f8f8f8;
+}
+.nav-div {
+  width: 6.28rem;
+}
+.img-icon {
+  width: 0.24rem;
+  height: 0.4rem;
+}
+.img-box {
+  width: 0.48rem;
+  height: 0.48rem;
+  margin: 0 0.35rem;
+}
+@keyframes rotating {
+  from {
+    transform: rotate(0);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+@-moz-keyframes rotating {
+  from {
+    transform: rotate(0);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+@-webkit-keyframes rotating {
+  from {
+    transform: rotate(0);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+@-o-keyframes rotating {
+  from {
+    transform: rotate(0);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+.imgactive {
+  animation: rotating 4s linear infinite;
+  -webkit-animation: rotating 4s linear infinite;
+  -moz-animation: rotating 4s linear infinite;
+  -ms-animation: rotating 4s linear infinite;
+  -o-animation: rotating 4s linear infinite;
+}
+.img-div {
+  height: 1rem;
+}
+#NavSlide nav {
+  /* padding: 0 0.43rem; */
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow-x: auto;
+  background-color: #f8f8f8;
+  -webkit-overflow-scrolling: touch;
+}
+#NavSlide div {
+  text-align: center;
+  font-size: 0.16rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  /* padding:0 0.1rem;
+        margin:0 0.05rem; */
+  color: #000000;
+}
+span.active {
+  color: #f76649;
+}
+</style>

+ 195 - 0
.svn/pristine/2b/2bddf946c2d65ce451c9de02bd627c366771cdc4.svn-base

@@ -0,0 +1,195 @@
+<template>
+  <div>
+    <yd-popup v-model="rgShow" position="center" width="90%margin:0;">
+      <div class="reg-box">
+        <div class="reg-top row allAlignment item-center">
+          <span>修改登录密码</span>
+          <img :src="url1" alt @click="closeRg()">
+        </div>
+        <div class="reg-mian">
+          <div>
+            <span>原密码</span>
+            <br>
+            <input
+              type="password"
+              maxlength="15"
+              v-model="password"
+              onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
+              @blur="pwd()"
+              placeholder="请输入你的原密码"
+            >
+            <br>
+            <i :class="pwdInfo?'infoRed':''">*使用6-15位数字或字母,不能使用特殊字符</i>
+          </div>
+          <div>
+            <span>新密码</span>
+            <br>
+            <input
+              type="password"
+              v-model="again_password"
+              maxlength="15"
+              onkeyup="this.value=this.value.replace(/^ +| +$/g,'')"
+              placeholder="请输入你的新密码"
+            >
+            <br>
+            <i :class="suerPwdInfo?'infoRed':''">*使用6-15位数字或字母,不能使用特殊字符</i>
+          </div>
+        </div>
+
+        <div class="row vertical-center">
+          <yd-button @click.native="reg()">修改密码</yd-button>
+        </div>
+      </div>
+    </yd-popup>
+  </div>
+</template>
+
+<script>
+import "@/css/index.css";
+export default {
+  name: "register",
+  data() {
+    return {
+      pwdInfo: false, //密码提醒
+      suerPwdInfo: false, //确认密码
+      userInfo: false, //用户信息提醒
+      password: "",
+      again_password: "",
+      rgShow:true,//this.$store.state.rgShow,
+      url1: require("@/assets/st-imges/guanbi.png"),
+      docmHeight: '0',  //默认屏幕高度
+      showHeight:  '0',  //实时屏幕高度
+      hidshow:true,  //显示或者隐藏footer,
+      isResize:false, //默认屏幕高度是否已获取
+    };
+  },
+  methods: {
+    closeRg(){
+      	this.$store.dispatch('GETRGSHOW', false);
+    },
+    reg() {
+            if (
+        this.password != "" &&
+        this.again_password != ""
+      ) {
+        this.$http.post(this.$ports.login.resetPassword,{oldPassword:this.password,newPassword:this.again_password,token:localStorage.getItem('token')}).then(res =>{
+             if(res.data){
+                 this.$dialog.alert({mes:res.data.msg});
+                (res.data)
+                 if(res.data.status!=1){
+                    this.password='';
+                    this.again_password='';
+                 }else{
+                     this.password='';
+                     this.again_password='';
+                     this.$router.push('/')
+                 }
+                
+             }
+        })
+      }else{
+         this.$dialog.alert({mes: '请完善您的信息!' });
+      }
+    },
+    pwd() {
+      if (/^[a-zA-Z0-9]{6,15}$/.test(this.password)) {
+        this.pwdInfo = false;
+      }
+      else {
+        this.password = "";
+        this.pwdInfo = true;
+      }
+    },
+  },
+  computed:{
+   Isshow:function(){
+     
+        this.$store.dispatch('GETRGSHOW',this.rgShow)
+			return {
+				isshow_code:this.$store.state.rgShow
+			}
+		},
+  },
+  watch:{
+    Isshow(obj){
+      this.rgShow=obj.isshow_code
+    },
+    isshow:{
+        istrue(val){
+         
+        }
+    }
+  },
+  mounted(){
+ 
+  }
+};
+</script>
+<style scoped>
+.reg-box {
+  width: 6.75rem;
+  /* height: 8.26rem; */
+  background: #f8f8f8;
+  border-radius: 0.52rem;
+  padding: 0 0.54rem;
+}
+.reg-top {
+  font-size: 0.32rem;
+  padding-top: 0.58rem;
+  padding-bottom: 0.6rem;
+  color: #f76649;
+}
+.reg-top img {
+  width: 0.26rem;
+  height: 0.26rem;
+}
+.reg-mian {
+  /* height: 5.46rem; */
+}
+.reg-mian div {
+  padding-bottom: 0.27rem;
+}
+.reg-mian span {
+  font-size: 0.28rem;
+}
+.reg-mian i {
+  font-size: 0.22rem;
+  color: #aaaaaa;
+}
+.reg-mian input {
+  width: 90%;
+  height: 0.46rem;
+  border: none;
+  outline: none;
+  border-bottom: 1px solid #aaaaaa;
+  margin: 0.14rem auto 0.1rem;
+  font-size: 0.24rem;
+}
+button {
+  width: 1.9rem;
+  height: 0.7rem;
+  border-radius: 0.35rem;
+  border: none;
+  background: #aaaaaa;
+  color: #f8f8f8;
+  margin-bottom: 0.5rem;
+}
+input {
+  font-size: 0.2rem;
+}
+.reg-mian .infoRed {
+  color: #f76649;
+}
+div.row .btnCor {
+  background: #f76649;
+}
+.yd-btn-primary:not(.yd-btn-loading) {
+  background: #aaaaaa;
+}
+div /deep/ .yd-popup-center {
+  margin: 0;
+  overflow-y: scroll;
+  -webkit-overflow-scrolling: touch;
+  position: absolute;
+}
+</style>

+ 155 - 0
.svn/pristine/2d/2d612debc4d4ce6794f8d0722ad369d8e0ba0255.svn-base

@@ -0,0 +1,155 @@
+    <template lang="">
+        <div  @click="leagueBetting()" class = "rollingBtn ">
+              <p>{{this.ballName}}</p>
+              <div class='row center' >
+                  <span>{{this.index}}</span>
+              </div>
+        </div>
+    </template>
+<script>
+import "../css/index.css";
+
+export default {
+  props: [
+    "bm",
+    "name",
+    "index",
+    "id",
+    "type",
+    "gameCode",
+    "ballName",
+    "lgId",
+    'today',
+    'code',
+    'homeShow'
+  ],
+  data() {
+    return {};
+  },
+  methods: {
+    leagueBetting: function() {
+      console.log('gameCode',this.gameCode)
+      if (this.bm == "ty") {
+        this.$store.dispatch("GETACTIVITY", "home");
+      
+      if (this.type == "Roll") {
+        this.$store.dispatch("GETACTIVITY", this.id); //将活动类别存入vuex里面
+        this.$store.dispatch("GET_BALL_ID", this.id);
+        this.$router.push({
+          path: "/StRollBallpage",
+          query: { titleNumber: e }
+        });
+      } else {
+      if(this.today && this.bm == 'ty'){
+          this.$router.push({
+            path: "StLeagueList",
+            query: {
+              lg_id: '',
+              id: this.index,
+              type_code:'StToday',
+              game_code: this.gameCode,
+              code:this.code,
+              name: this.name,
+              home: true,
+              today : 1,
+              btn: 2
+            }
+          });
+        }else if(!this.today && this.bm == 'ty'){
+          if(this.homeShow){
+                        this.$router.push({
+            path: "StLeagueList",
+            query: {
+              game_code: this.gameCode,
+              lg_id: this.lgId,
+              code:this.code,
+              id: this.index,
+              name: this.name,
+              number: 0,
+              home: true,
+              hMatch : 1,
+              btn: 2
+            }
+          });
+          }else{
+            this.$store.dispatch("GETACTIVITY", "StSoon");
+              this.$router.replace({
+                path: "/StRollBallpage",
+                query: { home: 1 }
+              });
+          }
+
+        }
+        // 暂不使用
+        else{
+          this.$router.push({
+            path: "StLeagueList",
+            query: {
+              game_code: this.gameCode,
+              lg_id: this.lgId,
+              code:this.code,
+              id: this.index,
+              name: this.name,
+              number: 0,
+              home: true,
+              hMatch : 1,
+              btn: 2
+            }
+          });
+        }
+          } 
+      }else if(this.bm == 'gq'){
+         this.$store.dispatch("GETACTIVITY", "StRollBall");
+        this.$router.replace({
+          path: "/StRollBallpage",
+          query: { home: 1 }
+        });
+      }
+    }
+  },
+};
+</script>
+<style scoped>
+.rollingBtn {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  margin: 0 auto;
+  position: relative;
+  font-size: 0.3rem;
+}
+.rollingBtn > p {
+  width: 90%;
+  height: 0.7rem;
+  background: linear-gradient(to bottom, #dddddd, #cccccc);
+  text-align: center;
+  line-height: 0.7rem;
+  font-size: 0.3rem;
+  font-weight: bold;
+  border-radius: 0.08rem 0 0 0.08rem;
+  color: #666666;
+  border: none;
+}
+.yd-btn-block {
+  margin-top: 0;
+}
+.rollingBtn > div {
+  position: absolute;
+  right: 0;
+  top: 0;
+  width: 10%;
+  height: 0.7rem;
+  line-height: 0.7rem;
+  background: linear-gradient(to top, #ddd, #ccc);
+  border-radius: 0px 0.08rem 0.08rem 0px;
+  color: #666666;
+}
+
+.rollingBtn div i {
+  display: inline-block;
+  width: 0.08rem;
+  height: 0.08rem;
+  background: #f5f5f5;
+  vertical-align: middle;
+}
+</style>

二进制
.svn/pristine/2d/2dcdc1e9f37035620ac2c15d27c2b159677ac0cd.svn-base


+ 318 - 0
.svn/pristine/2e/2ed56652c67a71068715717d892bf72e1d4abb1d.svn-base

@@ -0,0 +1,318 @@
+<template>
+  <div>
+    <div class="box">
+      <div class="row allAlignment center head_on_box">
+        <p
+          class="logo"
+          style="font-size:.6rem;color:#E1E1DF;font-family:  'Franklin Gothic Medium'"
+        >
+          <i style="color:#F76649;">HX</i>669
+        </p>
+        <!-- <img class="log" src="../assets/st-imges/indexlogo.png" alt=""> -->
+        <div class="row allAlignment center">
+          <yd-button type="primary" bgcolor="rgba(0,0,0,0)" @click.native="goBack()">
+            <img class="user-ion" src="../assets/st-imges/back.png" alt>
+          </yd-button>
+          <yd-button type="primary" bgcolor="rgba(0,0,0,0)" @click.native="refresh()">
+            <img class="user-ion" src="../assets/st-imges/ooopic.png" alt>
+          </yd-button>
+          <yd-button type="primary" bgcolor="rgba(0,0,0,0)" @click.native="urseInfo()">
+            <img class="user-ion" src="../assets/st-imges/user.png" alt>
+          </yd-button>
+          <!-- <div v-if="nameShow" class="row allAlignment center username">
+              {{name}}
+          </div>-->
+          <img
+            style="margin-left: 0.44rem;"
+            class="user-ion"
+            src="../assets/st-imges/contact.png"
+            alt
+          >
+        </div>
+      </div>
+
+      <div class="navtitle-box row">
+        <div style="width:1rem;height:1rem" class="row center">
+          <img
+            @click="returnHome"
+            :src="headActive=='home'?img1:img2"
+            style="width:0.4rem;height:0.4rem;"
+            alt
+          >
+        </div>
+        <div class="head_box">
+          <nav>
+            <div v-for="(item,$index) in title" class="row" :key="item.id">
+              <div class="row item-center nav-arr ">
+                  <div
+                    class="headbox"
+                    @click="activityJump($index,item.type_code)"
+                    :class="{active:headActive==item.type_code}"
+                  >{{item.type_name}}</div>
+                  <span
+                    :class="{numactive:headActive==item.type_code}"
+                    class="head_box_num row center"
+                  >{{item.matchNum>99?'1+':item.matchNum}}</span>
+                </div>
+
+            </div>
+          </nav>
+        </div>
+      </div>
+    </div>
+    <div v-if="Lshow==true" class="login">
+      <Login></Login>
+    </div>
+    <div v-else-if="rgShow==true">
+      <register></register>
+    </div>
+  </div>
+</template>
+<script>
+import "../css/index.css";
+import Login from "@/pages/Login/index/StLogin";
+import register from "@/pages/Login/index/register";
+export default {
+  name: "SportsHead",
+  components: {
+    Login,
+    register
+  },
+  data() {
+    return {
+      show: false,
+      img1: require("../assets/st-imges/home.png"),
+      img2: require("../assets/st-imges/gengduo-1.png"),
+      title:'',
+      headActive: "",
+      init: true,
+      nameShow: false, //展示登录组件或者是名字
+      timers: true, //定时器清理
+      Lshow: false,
+      rgShow: false, //隐藏注册框
+      getIsShow:true
+    };
+  },
+  methods: {
+      //判断登录是否过期
+    getuserData(){
+      if(localStorage.getItem('token')){
+        this.$http.post(this.$ports.login.getAgent,{token:localStorage.getItem('token')}).then(res=>{
+          if(res.data.status==-4001){
+            this.$store.dispatch('SET_TOKEN','');
+            this.$store.dispatch('GET_ISSHOW',false);
+            this.$dialog.toast({mes: '对不起您的登录已过期,请您重新登录', timeout: 3000});
+          }
+        })
+      }
+    },
+    urseInfo() {
+      if (!localStorage.getItem("token")) {
+        this.$store.dispatch("GET_ISSHOW", true);
+
+        // 设置背景禁止滚动
+        this.$store.dispatch('SET_NOROLL',true)
+      } else {
+        this.$router.push("/PersonalCenter");
+      }
+    },
+    // 刷新
+    refresh() {
+      location.reload();
+    },
+    // 返回上一页
+    goBack() {
+      this.$router.go(-1);
+    },
+    // 数据封装
+    getAjax() {
+      //this.$store.dispatch("GETSHOW", true);
+      this.$http.get(this.$ports.home.navTypeList).then(res => {
+        if (res.data.status == 1) {
+          this.title = res.data.data;
+          this.$store.dispatch("SET_HEADTITLE", res.data.data);
+        }
+      });
+    },
+
+    /**
+     * 头部导航
+     */
+    activityJump: function(index, code) {
+        // 头部激活样式
+      if(this.headActive!=code){
+        this.headActive = code;
+      }
+
+      this.indeximg = false;
+      this.$store.dispatch("GETACTIVITY", code); //将活动类别存入vuex里面
+      if (this.$route.query.isTrue) return false;
+      this.$router.replace({
+        path: "/StRollBallpage",
+        query: { home: 1 }
+      });
+    },
+
+    /**
+     * 回到首页
+     */
+    returnHome: function() {
+      this.headActive='home'
+      this.$store.dispatch("GETACTIVITY", "home");
+      this.$router.replace({ path: "/" });
+    }
+  },
+
+  /**
+   *
+   */
+  computed: {
+    // 获取登录注册状态
+    loginAntReg: function() {
+      return {
+        isshow_code: this.$store.getters.getIsShow,
+        rgShow: this.$store.getters.getRgShow
+      };
+    },
+  },
+
+  /**
+   *
+   */
+  watch: {
+    // 获取登录注册状态
+    loginAntReg(obj) {
+      this.Lshow = obj.isshow_code;
+      this.rgShow = obj.rgShow;
+    }
+  },
+  mounted() {
+    // 导航样式初始化
+    if (localStorage.getItem("activity")) {
+      this.headActive = localStorage.getItem("activity");
+    }else{
+      this.headActive='home';
+      this.$store.dispatch("GETACTIVITY", "home");
+    }
+    // 头部导航数据判断储存和更换
+    if (this.$store.getters.getHeadTitle) {
+      this.title = this.$store.getters.getHeadTitle;
+    } else {
+      this.getAjax();
+    }
+    if (localStorage.getItem("name")) {
+      this.name = localStorage.getItem("name");
+      this.nameShow = true;
+    } else {
+      this.nameShow = false;
+    }
+    // 轮询获取头部导航信息
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax();
+        _this.getuserData()
+      }else{
+        clearInterval(timing);
+      }
+    },(1000*60));
+  },
+  beforeDestroy() {
+    this.timers = false;
+  },
+  beforeUpdate(){
+    // 获取url进入首页更改样式
+    if(localStorage.getItem("activity")=='home'){
+      this.headActive='home';
+    }
+
+  }
+};
+</script>
+<style  scoped>
+.no-roll{
+  position: fixed;
+  top: 0;
+  left: 0;
+}
+.head_on_box {
+  padding: 0 .32rem;
+}
+.box {
+  height: 1.76rem;
+  background: linear-gradient(to bottom, #999999, #6a6a6b);
+  overflow: hidden;
+}
+.navtitle-box {
+  height: 1rem;
+  padding: 0 0.32rem 0 0;
+}
+
+.headbox {
+  font-size: 0.3rem;
+  font-weight: bold;
+  color: #e1e1df;
+}
+.head_box {
+  width: 86%;
+  height: 1rem;
+  overflow: hidden;
+
+}
+.head_box nav {
+  /* display: -webkit-box;
+  display: -ms-flexbox;
+  -webkit-box-align: middle;
+  height: 1rem;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow-x: auto;
+  -webkit-overflow-scrolling: touch; */
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+}
+/* .navtitle {
+  font-size: 0.16rem;
+  height: 1rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+} */
+/* nav{
+  width: 8.39rem;
+} */
+.nav-arr {
+  width: 1.3rem;
+  /* margin: 0 0.1rem; */
+  font-size: 0.16rem;
+  height: 1rem;
+}
+.user-ion {
+  width: 0.3rem;
+  height: 0.3rem;
+}
+div.active {
+  color: #f76649;
+}
+.numactive {
+  background: #f76649 !important;
+  color: #f8f8f8 !important;
+}
+.head_box_num {
+  width: 0.4rem;
+  height: 0.4rem;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #e1e1df;
+  color: #333;
+  margin-left: 0.1rem;
+}
+.username {
+  color: #e1e1df;
+}
+</style>
+

文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/30/303d5ef569a17453517caf38a0777849caf6bed1.svn-base


+ 184 - 0
.svn/pristine/30/3065b165607dd9db9dce18068b4cf6de04b815d7.svn-base

@@ -0,0 +1,184 @@
+<template>
+  <div>
+    <div v-for="(item,index) in data" :key="item.id">
+      <div class="row allAlignment haderBox center">
+        <span>123</span>
+        <div class="Match-title-num">
+          <span>123</span>
+        </div>
+      </div>
+      <div class="box">
+        <div class="row allAlignment item-center top-box">
+          <span>
+            <i>{{item.session}}</i>
+            <b style="color:#F76649;font-weight: normal;">{{item.time}}</b>
+          </span>
+          <span class="top-num">{{item.num}}</span>
+        </div>
+      </div>
+      <div class="box-bottom">
+        <div class="box row item-center main-box">
+          <span class="num-box" style="color:#eb921e">{{item.home}}</span>
+          &nbsp;&nbsp;{{item.nameA}}
+        </div>
+        <div class="box row item-center main-box">
+          <span class="num-box" style="color:#eb921e">{{item.host}}</span>
+          &nbsp;&nbsp;{{item.nameB}}
+        </div>
+        <div class="box row allAlignment bottom-box center">
+          <div
+            class="item-center bottom-num"
+            :class="item.istrueA==true?'active':''"
+            @click="isclick(index,1)"
+          >
+            <p style="color:#eb921e">1</p>
+            <p>{{item.odd1}}</p>
+          </div>
+          <div
+            class="item-center bottom-num"
+            :class="item.istrueB==true?'active':''"
+            @click="isclick(index,2)"
+          >
+            <p style="color:#eb921e">x</p>
+            <p>{{item.odd2}}</p>
+          </div>
+          <div
+            class="item-center bottom-num"
+            :class="item.istrueC==true?'active':''"
+            @click="isclick(index,3)"
+          >
+            <p style="color:#eb921e">2</p>
+            <p>{{item.odd3}}</p>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import "../css/index.css";
+export default {
+  data() {
+    return {
+      data: [
+        {
+          nameA: "圣特克拉",
+          nameB: "智利U17",
+          home: "0",
+          host: "0",
+          session: "上半场",
+          time: "13:30",
+          num: "10",
+          odd1: "2.50",
+          odd2: "2.85",
+          odd3: "2.70"
+        }
+      ]
+    };
+  },
+  methods: {
+    // 点击事件确认选中
+    isclick(index, num) {
+      if (num == 1) {
+        this.$set(
+          this.data[index],
+          "istrueA",
+          this.data[index].istrueA == true ? false : true
+        );
+      } else if (num == 2) {
+        this.$set(
+          this.data[index],
+          "istrueB",
+          this.data[index].istrueB == true ? false : true
+        );
+      } else if (num == 3) {
+        this.$set(
+          this.data[index],
+          "istrueC",
+          this.data[index].istrueC == true ? false : true
+        );
+      }
+    }
+  },
+  mounted() {}
+};
+</script>
+<style scoped>
+.top-box {
+  height: 0.44rem;
+  font-size: 0.24rem;
+  background: #fff;
+  border-bottom: 1px solid #e4e4e4;
+}
+.box-bottom{
+  height: 2.9rem; 
+}
+.top-num {
+  display: inline-block;
+  width: 0.64rem;
+  height: 0.44rem;
+  line-height: 0.44rem;
+  color: #000000;
+  text-align: center;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.box {
+  padding: 0 0.32rem;
+  background: #fff;
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #e4e4e4;
+}
+.haderBox {
+  padding: 0 0.32rem;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: #f8f8f8;
+}
+.main-box {
+  height: 0.9rem;
+  background: #fff;
+  font-size: 0.28rem;
+}
+.bottom-box {
+  height: 1.1rem;
+  background: #fff;
+  font-size: 0.24rem;
+}
+.bottom-box div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  font-size: .24rem
+}
+.bottom-num {
+  padding: 0.1rem;
+  text-align: center;
+}
+.active {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.active > p {
+  color: #e4e4e4 !important;
+}
+.num-box {
+  width: 0.66rem;
+  height: 0.34rem;
+  background: #f76649;
+  border-radius: 0.17rem;
+  color: #f5f5f5 !important;
+  line-height: 0.34rem;
+  text-align: center;
+}
+</style>

二进制
.svn/pristine/32/3236ae92cefa3886e45fc3dc90a731d0bf670a4d.svn-base


+ 392 - 0
.svn/pristine/32/32cc9a269db1268818fc48b895254b0cde489cf5.svn-base

@@ -0,0 +1,392 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-26 15:21:04
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <!-- <yd-accordion>
+        <yd-accordion-item title="让球" open>
+          <div v-for="(item,index) in data" :accordion="true" :key="index">
+            <div v-if="item.odds_code == 'concede_home' || item.odds_code == 'concede_guest'">
+              <div style="padding:0 0.32rem;" class="odds">
+                <div class="row allAlignment center small">
+                  <span>{{item.odds_code =='concede_home' ? home_team :guest_team}}</span>
+                  <div v-if="item.odds >0 " class="ratio column center"
+                    @click="bettingBtn(item.id,item.odds_code =='concede_home' ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球')"
+                    :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                  >
+                    <span class="score">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="ratio column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+      <yd-accordion>
+        <yd-accordion-item title="让球-上半场" open>
+          <div v-for="(item,index) in data" :accordion="true" :key="index">
+            <div
+              v-if="item.odds_code == 'half_concede_home' || item.odds_code == 'half_concede_guest'"
+            >
+              <div style="padding:0 0.32rem;" class="odds">
+                <div class="row allAlignment center small">
+                  <span>{{item.odds_code =='half_concede_home' ? home_team :guest_team}}</span>
+                  <div v-if="item.odds >0 "  class="ratio column center"
+                    @click="bettingBtn(item.id,item.odds_code =='half_concede_home' ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-上半场' )"
+                    :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                  >
+                    <span class="score">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="ratio column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion> -->
+      <div v-if="obj.a">
+        <yd-accordion :accordion="true">
+          <yd-accordion-item title="进球:大/小" open>
+            <div style="padding:0 0.32rem;" class="odds">
+              <div class="row allAlignment center">
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('gsb') && !item.odds_code.endsWith('h')">
+                      <!-- && item.odds_code.endsWith('big') -->
+                      <div
+                        style="border-right: 1px solid #e4e4e4; padding-right:0.1rem; "
+                        class="small row allAlignment center"
+                      >
+                        <div>大</div>
+                        <div v-if="item.odds >0 "  class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
+                          @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('gss') && !item.odds_code.endsWith('h')">
+                       <!-- && item.odds_code.endsWith('small') -->
+                      <div class="small row allAlignment center">
+                        <div>小</div>
+                        <div v-if="item.odds >0 "  class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
+                          @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+     
+      <div v-if="obj.b">
+        <yd-accordion :accordion="true">
+          <yd-accordion-item title="进球:大/小-上半场" open>
+            <div style="padding:0 0.32rem;" class="odds">
+              <div class="row allAlignment center">
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <!-- gsb_h -->
+                    <div v-if="item.odds_code.startsWith('gsb') && item.odds_code.endsWith('h')">
+                      <div
+                        style="border-right: 1px solid #e4e4e4; padding-right:0.1rem; "
+                        class="small row allAlignment center"
+                      >
+                        <div>大</div>
+                        <div v-if="item.odds >0 " class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                          @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div style="width:50% ;" class="column">
+                  <!-- || item.odds_code == 'gss_h' -->
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('gss') && item.odds_code.endsWith('h')">
+                      <div class="small row allAlignment center">
+                        <div>小</div>
+                        <div v-if="item.odds >0" class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                          @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+
+
+      </div>
+    </div>
+    <!-- <div class="BettingWindow" v-if="isWindow">
+       <BettingWindow />
+    </div>-->
+  </div>
+</template>
+<script>
+// import BettingWindow from "@/components/StBettingWindow";
+export default {
+  data() {
+    return {
+      title: "GS",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      lg_id:'',
+      match_id: "",
+      obj:'',
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      
+      // // 投注页面显示
+      // let isAdd = true;
+      //    if(this.$store.getters.newIsBetting==true){
+      //     return false
+      //  }
+      //    this.$store.dispatch('ISBETTING',true)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        odds_id:id,
+        lg_id:this.lg_id,
+        oddsType:oddsType
+      };
+      // if(this.$store.getters.getLimit * 1 >= 10){
+      //    this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+      // }
+      // if (isAdd) {
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          //console.log(data, val,type);
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+
+        }
+      );
+      // }
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //获取检测玩法
+    playGrouping(data) {
+      let obj ={};
+      data.forEach(res => {
+          // console.log(res)
+        if(res.odds_code.startsWith('gs')&& (res.odds_code.endsWith('d')||res.odds_code.endsWith('s') )){
+          obj.a =true;
+        }else if(res.odds_code.endsWith('h')){
+          obj.b =true;
+        }
+      });
+      this.obj =obj      
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          // console.log("更新数据", res);
+          this.playGrouping(res);
+          this.isDisplay = true;
+          this.data = res;
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+  // component:{BettingWindow},
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.small {
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+  padding-left: 0.16rem;
+}
+.odds {
+  background: #f4f4f4;
+  text-align: left;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.score {
+  color: #f76649;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+</style>

二进制
.svn/pristine/33/334361ee217698b84b627dd6d80f9b00d47467d9.svn-base


+ 172 - 0
.svn/pristine/33/33cda26e95b1b84d217a174a3c8b0bac7339377c.svn-base

@@ -0,0 +1,172 @@
+<template>
+  <div>
+    <yd-accordion>
+      <!-- 组件标题 -->
+      <yd-accordion-item class="Match-game" :title="title" open>
+        <!-- 组件计数单元 -->
+        <div slot="txt" class="Match-game-stat" v-if="table.census">当前总数:{{ table.census }}</div>
+        <div style="background: #F0F0F0;">
+          <p
+            v-for="(i, index) in data"
+            class="list-row"
+            :style="i.condition ? '' : 'background:#F8F8F8'"
+       
+            :key="i.id"
+          >
+            <span class="The-club">{{ i.team }}</span>
+            <span
+              :class="i.istrue== true ? 'active The-club-box' : 'The-club-box'"
+              @click="Theclubboxclick(index)"
+              :style="i.condition ? '' : 'display:none'"
+            >
+              <i style="color: #FD8F26;display:block" v-if="i.condition">{{ i.condition }}</i>
+              <i v-if="i.condition">{{ i.odds }}</i>
+            </span>
+          </p>
+        </div>
+      </yd-accordion-item>
+    </yd-accordion>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      // 组件内部测试状态
+      title: "主队全场让球",
+      data: [],
+      table: {
+        title: "角球:让球",
+        list: [
+          {
+            id: 1,
+            Theclub: "哈萨克斯坦",
+            num: {
+              num1: "0.5/1",
+              num2: "0.94"
+            }
+          },
+          {
+            id: 2,
+            Theclub: "马德里体育会",
+            num: {
+              num1: "",
+              num2: "0.94"
+            }
+          },
+          {
+            id: 3,
+            Theclub: "哈萨克斯坦",
+            num: {
+              num1: "0.5/1",
+              num2: "0.94"
+            }
+          },
+          {
+            id: 4,
+            Theclub: "马德里体育会",
+            num: {
+              num1: "",
+              num2: "0.94"
+            }
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    // 点击更改组件选中状态
+    Theclubboxclick(num) {
+      // 更改组件是否选中
+      this.$set(
+        this.data[num],
+        "istrue",
+        this.data[num].istrue == true ? false : true
+      );
+    }
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+		console.log('val',val)
+      for (var i = 0; i < val.length; i++) {
+        if (this.title == val[i].key) {
+          this.data = val[i].data;
+		  console.log("data", this.data);
+		//   this.title = val.data[i].p_code
+        }
+      }
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #333;
+  background: #f8f8f8;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.Match-game {
+  position: relative;
+}
+.Match-game-stat {
+  position: absolute;
+  right: 1.35rem;
+  color: #fd8f26;
+  font-size: 0.26rem;
+}
+.list-row {
+  display: flex;
+  justify-content: space-between;
+  height: 0.87rem;
+  background: #f8f8f8;
+  border-bottom: 1px solid #e4e4e4;
+  align-items: center;
+  padding: 0 0.32rem;
+}
+.The-club {
+  font-size: 0.28rem;
+}
+.The-club-box {
+  display: inline-block;
+  /* display: flex; */
+  flex-wrap: wrap;
+  align-items: center;
+  justify-content: center;
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  margin-right: 0.1rem;
+  text-align: center;
+}
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+</style>

+ 257 - 0
.svn/pristine/37/37333fdc97ab59b8cac78c2532e14ae1344e1be4.svn-base

@@ -0,0 +1,257 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-27 16:46:24
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <yd-accordion> 
+        <yd-accordion-item class="Match-game" :title="total_title" open>
+          <div class="row allAlignment center rowBox" >
+            <div class="column  width-box " style="border-right: 1px solid #e4e4e4">
+              <div v-if="item.odds_code == 'tnb'"  v-for=" (item,index) in data" class="row allAlignment center borderBottom" >
+                <span>大</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+            <div  class="column  width-box " >
+              <div v-if="item.odds_code == 'tns'"  v-for=" (item,index) in data"   class="row allAlignment center borderBottom">
+                <span style="padding-left: 0.2rem;">小</span>
+                <div v-if="item.odds >0" class="column center btn-box"
+                  :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,item.oddsType)"
+                >
+                  <span class="spanCol" v-if="item.condition">{{ item.condition }}</span>
+                  <span>{{ item.odds }}</span>
+                </div>
+                <div v-else  class="btn-box column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  //总进球数
+  data() {
+    return {
+      title: "TN",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      total_title: "总得分:大/小",
+      data: [],
+      lg_id: "",
+      match_id: "",
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,oddsType,bettingTime = "") {
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: this.title,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name:"总得分:大/小",
+        lg_id: this.lg_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //子玩法分类
+    removeHeavy(data){
+      this.data = [];
+      data.forEach(e=>{
+        // let index = e.odds_code.lastIndexOf('_');
+        // let str=  e.odds_code.slice(0,index)  
+        // console.log(e.odds_code);
+        if(e.odds_code == 'tnb' || e.odds_code == 'tns'){
+          this.isDisplay = true;  
+          this.data.push(e)
+        }
+      })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      // console.log(this.$store.getters.getDeleteType)
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.removeHeavy(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-title {
+  height: 0.88rem;
+  font-size: 0.28rem;
+  color: #fefefe;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.rowBox {
+  padding: 0 0.32rem;
+  background: #f0f0f0;
+  border-bottom: 1px solid #e4e4e4;
+}
+.width-box {
+  width: 50%;
+}
+.right-box {
+  padding-right: 0.32rem;
+  padding-left: 0.2rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.left-box {
+  padding-left: 0.32rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.btn-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.1rem;
+}
+.borderBottom{
+  border-bottom: 1px solid #e4e4e4
+}
+
+.active {
+  background: #f76649;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active span{
+  color: #f4f4f4 !important;
+}
+.spanCol{
+  color: #f76649;
+}
+</style>

二进制
.svn/pristine/37/377f9216765e9452dc326526422fd1101e4b0ad8.svn-base


+ 491 - 0
.svn/pristine/38/38189d24cc434bf3734a8dfbe1328d0a48b92104.svn-base

@@ -0,0 +1,491 @@
+<!--
+ * @Description: In User Settings Edit
+ * @Author: your name
+ * @Date: 2019-08-26 10:58:22
+ * @LastEditTime: 2019-08-31 11:36:55
+ * @LastEditors: Please set LastEditors
+ -->
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box">
+                <div v-if="item.odds_code == 'ch'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cd'">
+                  <div class="row allAlignment center row-box" style=" border-bottom:0;">
+                    <span>和局</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,'和局',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-上半场" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ch_h'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg_h'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cd_h'">
+                  <div class="row allAlignment center row-box" style=" border-bottom:0;">
+                    <span>和局</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,'和局',item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-上半场',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第一节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ch_1'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第一节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg_1'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第一节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第二节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ch_2'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第二节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg_2'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第二节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第三节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ch_3'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第三节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg_3'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第三节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="独赢-第四节" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'ch_4'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第四节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'cg_4'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'独赢-第四节',item.condition,item.oddsType)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  // 独赢
+  data() {
+    return {
+      title: "C",
+      home_team: " ",
+      match_id:'',
+      guest_team: " ",
+      obj:'',//
+      data: [],
+      lg_id:'',
+      isDisplay: "", //是否显示
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id, name, odds,odds_only,p_code,match_id,odds_code,play_name,condition = "",oddsType, bettingTime = "") {
+      //console.log(this.data)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name:'',
+        odds,
+         ballId:this.$store.getters.getBallId,
+        condition,
+        odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        p_code,
+        lg_id:this.lg_id,
+        odds_id:id,
+        play_name,
+        match_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+         this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+           if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+           if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code =='cg'|| e.odds_code=='ch' ){
+          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 
+      })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    // 获取投注删除状态
+    deleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id=val.match_id
+      if (!val) return false;
+     
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+        this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+          console.log(res);
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+     //监听投注框删除处理
+  deleteType(val) {
+    this.data.forEach(e => {
+      if (val == "all") {
+        this.$set(e, "isTrue", false);
+      } else {
+        if (e.id == val) {
+          this.$set(e, "isTrue", false);
+        }
+      }
+    });
+  },
+  },
+  mounted() {
+    
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  font-size: 0.28rem;
+  color: #fefefe;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.box {
+  padding: 0 0.32rem;
+  background: #f4f4f4;
+}
+.row-box {
+  height: 0.9rem;
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.The-club-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.active {
+  background: #f76649;
+  color: #f4f4f4;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

二进制
.svn/pristine/38/38b4cffea1e46c8da4d52ec4c1d90832f178e2ea.svn-base


文件差异内容过多而无法显示
+ 0 - 0
.svn/pristine/39/39990220065179d7080692a029ab463966a8cdd4.svn-base


+ 92 - 0
.svn/pristine/39/39b75414392636ca52552e64c3e873230fc67497.svn-base

@@ -0,0 +1,92 @@
+*{touch-action: none;}
+/* Flex 布局 */
+/* 平行 */
+.row,.column {
+    display: flex;
+    flex-direction: row;
+  }
+  /* 垂直 */
+  .column {
+    flex-direction: column;
+  }
+  /* 自动填充 */
+  .col-w,.col-h {
+    flex: 1;
+  }
+  /* 横向 */
+  .col-w {
+    width: 0;
+  }
+  /* 纵向 */
+  .col-h {
+    height: 0;
+  }
+  /* 水平垂直居中 */
+  .center {
+    justify-content: center;
+    align-items: center;
+  }
+  /* 水平居中 */
+  .item-center {
+    align-items: center;
+  }
+  /* 垂直居中 */
+  .vertical-center {
+    justify-content: center;
+  }
+  /* 上对齐 */
+  .topAlignment {
+    align-items: flex-strat;
+  }
+  /* 右对齐 */
+  .rightAlignment {
+    justify-content: flex-end;
+  }
+  /* 下对齐 */
+  .bottomAlignment {
+    align-items: flex-end;
+  }
+  /* 左右对齐,项目之间的间隔都相等 */
+  .allAlignment {
+    justify-content: space-between;
+  }
+  /* 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍 */
+  .average {
+    justify-content: space-around;
+  }
+  /* 项目的第一行文字的基线对齐 */
+  .items-baseline {
+    align-items: baseline;
+  }
+  /* 省略号 */
+  .ellipsis{
+    overflow: hidden;
+    text-overflow:ellipsis;
+    white-space: nowrap;
+  }
+  body{
+    margin: 0;
+    padding: 0;
+  }
+
+  /* 取消苹果的safari浏览器下点击出现高亮效果 */
+  *{
+    -webkit-tap-highlight-color:rgba(0,0,0,0) 
+  }
+
+  /* 赔率变低 */
+  .reduce_color{
+    background:red;
+    color:#fff;
+  /* animation:mymove1 5s linear 0s 1;
+  -webkit-animation:mymove1 5s linear 0s 1; */
+  }
+  
+  /* 赔率增高 */
+  .increased_color{
+    background:Lightgreen;
+    color:#fff;
+    /* animation:mymove 5s linear 0s 1;
+    -webkit-animation:mymove 5s linear 0s 1;Safari and Chrome */
+    }
+  

+ 453 - 0
.svn/pristine/3a/3a2b9980940bf504be669e867d5178f4a29a1a38.svn-base

@@ -0,0 +1,453 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <div v-if="obj.a">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+      <div v-if="obj.b">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-上半场" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'half_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-上半场',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'half_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-上半场',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.c">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第一盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'one_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第一盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'one_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第一盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.d">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第二盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'two_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第二盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'two_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第二盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.e">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第三盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'three_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第三盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'three_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第三盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+
+      <div v-if="obj.f">
+        <yd-accordion>
+          <yd-accordion-item class="Match-game" title="冠军-第四盘" open>
+            <div v-for="(item ,index) in data" :key="index">
+              <div class="box" style="background: #F4F4F4;">
+                <div v-if="item.odds_code == 'four_kemp_home'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{home_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,home_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第四盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+                <div v-if="item.odds_code == 'four_kemp_guest'">
+                  <div class="row allAlignment center row-box">
+                    <span>{{guest_team}}</span>
+                    <div v-if="item.odds >0" class="The-club-box row center"
+                      :class="{active:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                      @click="bettingBtn(item.id,guest_team,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'冠军-第四盘',item.condition)"
+                    >
+                      <span>{{item.odds}}</span>
+                    </div>
+                    <div v-else  class="ratio column center">
+                      <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  // 独赢
+  data() {
+    return {
+      title: "kemp",
+      home_team: " ",
+      match_id:'',
+      guest_team: " ",
+      obj:'',//
+      data: [],
+      lg_id:'',
+      isDisplay: "", //是否显示
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id, name, odds,odds_only,p_code,match_id,odds_code,play_name,condition = "", bettingTime = "") {
+      //console.log(this.data)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+         ballId:this.$store.getters.getBallId,
+        condition,
+        odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        p_code,
+        lg_id:this.lg_id,
+        odds_id:id,
+        play_name,
+        match_id,
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+         this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+           if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+           if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    /*-------------------------------*/
+    //获取子玩法分类
+    getChildPlay(data){
+      let obj ={};
+      data.forEach(e=>{
+        if(e.odds_code.startsWith('kemp')){
+          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')){
+          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 
+      })
+    },
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    // 获取投注删除状态
+    deleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    getUserIcons(val) {
+      this.match_id=val.match_id
+      if (!val) return false;
+     
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+        this.lg_id = val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+          this.getChildPlay(res);
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+     //监听投注框删除处理
+  deleteType(val) {
+    this.data.forEach(e => {
+      if (val == "all") {
+        this.$set(e, "isTrue", false);
+      } else {
+        if (e.id == val) {
+          this.$set(e, "isTrue", false);
+        }
+      }
+    });
+  },
+  },
+  mounted() {
+    
+  }
+};
+</script>
+
+<style scoped>
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url(../assets/st-imges/xiangxia.png) no-repeat;
+  background-size: 100% 100%;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title {
+  font-size: 0.28rem;
+  color: #fefefe;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+}
+.box {
+  padding: 0 0.32rem;
+}
+.row-box {
+  height: 0.9rem;
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+}
+.The-club-box {
+  width: 1.07rem;
+  height: 0.76rem;
+  font-size: 0.24rem;
+  padding: 0.1rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.active {
+  background: #f76649;
+  color: #f4f4f4;
+  padding: 0.1rem;
+  border: 2px solid #f76649;
+}
+.active i {
+  color: #f4f4f4 !important;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+</style>

+ 356 - 0
.svn/pristine/3b/3b0f7bb85e3979db46962d6f8ce511a6e92b926b.svn-base

@@ -0,0 +1,356 @@
+<template>
+  <div>
+    <div v-if="isShow">
+      <div v-for="(items,index) in list" :key="items.id" class="mg">
+        <!-- <div v-for="items in list[index]" :key="items.id"> -->
+        <div class="row allAlignment box center">
+          <span>{{items.leagueName}}</span>
+          <div class="row Match-title-num">
+            <span>{{items.matchNum}}</span>
+          </div>
+        </div>
+        <div class="Match-box">
+          <div v-for="(item,index) in items.matchData" :key="item.id" class="Match-box">
+            <div v-for="(itemList,index) in items.matchData[index]" :key="itemList.id">
+              <div class="row allAlignment Match-box-top">
+                <div class="Match-box-top-left">
+                  <span>{{itemList.match_date}}</span>
+                  <span>{{itemList.match_time}}</span>
+                </div>
+                <div class="Match-box-top-right row">
+                  <span style="margin-right: .1rem;" class="Match-box-top-num">{{itemList.tag}}</span>
+                  <span style="margin-right: .1rem;">让球</span>
+                  <span style="margin-right: .1rem;">大小</span>
+                </div>
+              </div>
+              <div class="row allAlignment center">
+                <div class="column average name-box">
+                  <div>{{itemList.home_team}}</div>
+                  <div>{{itemList.guest_team}}</div>
+                </div>
+                <div class="Match-list-box row item-center average">
+                  <div v-for="(odds,i) in itemList.oddsData[0]" :key="odds.id" class="match-list">
+                    <div
+                      @click="isclick(index,i)"
+                      class="column center"
+                      :class="items.istrue==i?'active':''"
+                    >
+                      <span style="color:#FD8F26">{{odds.condition}}</span>
+                      <span>{{odds.odds}}</span>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 1x2 -->
+    <div v-if="!isShow">
+      <div v-for="(item,index) in list" :key="item.id">
+        <div class="row allAlignment haderBox center">
+          <span>{{item.leagueName}}</span>
+          <div class="Match-title-num">
+            <span>{{item.matchNum}}</span>
+          </div>
+        </div>
+        <div v-for="(items,$index) in item.matchData" :key="items.id">
+          <div v-for="itemList in item.matchData[$index]" :key="itemList.id">
+            <div class="box">
+              <div class="row allAlignment item-center top-box">
+                <span>
+                  <i>{{itemList.match_process}}</i>
+                  <b style="color:#F76649;font-weight: normal;">{{itemList.match_time}}</b>
+                </span>
+                <span class="top-num">{{itemList.tag}}</span>
+              </div>
+            </div>
+            <div class="box-bottom">
+              <div class="box row item-center main-box">
+                <span class="num-box" style="color:#eb921e">{{itemList.home_score}}</span>
+                &nbsp;&nbsp;{{itemList.home_team}}
+              </div>
+              <div class="box row item-center main-box">
+                <span class="num-box" style="color:#eb921e">{{itemList.guest_score}}</span>
+                &nbsp;&nbsp;{{itemList.guest_team}}
+              </div>
+              <div class="footBox">
+                <div
+                  class="box row allAlignment bottom-box center"
+                  v-for="(odds,idx) in itemList.oddsData[1]"
+                  :key="odds.id"
+                >
+                  <div
+                    class="item-center bottom-num"
+                    :class="item.istrueA==true?'active':''"
+                    @click="isclick(idx,1)"
+                  >
+                    <p style="color:#eb921e">{{odds.condition}}</p>
+                    <p>{{odds.odds}}</p>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 独赢盘 -->
+
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import "../css/index.css";
+import Bus from "../assets/bus.js";
+import NotOpend from "@/components/StNotOpend";
+export default {
+  props: ["gameCode", "name"],
+  data() {
+    return {
+      isShow: true,
+      list: "",
+      data: {},
+      data2: [],
+      info: "没有相关比赛信息",
+      noData: false,
+      timers: true,
+      getIsShow: true
+    };
+  },
+  components: {
+    NotOpend
+  },
+  methods: {
+    isclick(i, num) {
+      this.$set(this.data.list[i], "istrue", (this.data.list[i].istrue = num));
+    },
+    // 点击事件确认选中
+    isclick(index, num) {
+      if (num == 1) {
+        this.$set(
+          this.data2[index],
+          "istrueA",
+          this.data2[index].istrueA == true ? false : true
+        );
+      } else if (num == 2) {
+        this.$set(
+          this.data2[index],
+          "istrueB",
+          this.data2[index].istrueB == true ? false : true
+        );
+      } else if (num == 3) {
+        this.$set(
+          this.data2[index],
+          "istrueC",
+          this.data2[index].istrueC == true ? false : true
+        );
+      }
+    },
+    getAjax() {
+      this.$http
+        .get(this.$ports.match.matchState, {
+          game_code: this.gameCode,
+          type_code: "StRollBall"
+        })
+        .then(res => {
+          if (res.status == 200 && res.data != [] && res.data != null) {
+            this.list = res.data.data;
+            console.log("res", this.list);
+            Bus.$emit("val", this.name);
+          } else {
+            this.list = "";
+            this.noData = true;
+          }
+        })
+        .catch(res => {});
+      let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+        console.log('aaaa')
+      }, 1000);
+    }
+  },
+  mounted() {
+    if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    // 接收头部传过来的状态
+    Bus.$on("show", data => {
+      console.log("data", data);
+      this.isShow = data;
+    });
+    this.getAjax();
+    let _this = this;
+    this.$public.ajaxTimerFun(function(timing) {
+      if (_this.timers) {
+        _this.getAjax();
+      } else {
+        clearInterval(timing);
+      }
+    },(1000*10));
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.box {
+  padding: 0 0.32rem;
+  height: 0.88rem;
+  font-size: 0.28rem;
+  background: #f4f4f4;
+}
+
+.mg {
+  margin-bottom: 0.1rem;
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  align-items: center;
+  justify-content: center;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.2rem;
+  border-radius: 50%;
+  color: #f5f5f5;
+}
+
+.Match-box-top-right > span {
+  width: 1.07rem;
+  text-align: center;
+}
+.Match-box {
+  padding: 0 0.32rem;
+}
+.name-box {
+  height: 1.76rem;
+}
+.Match-box-top {
+  height: 0.44rem;
+  line-height: 0.44rem;
+  border-bottom: 1px solid #e4e4e4;
+  font-size: 0.23rem;
+}
+.Match-box-top-num {
+  width: 0.64rem;
+  height: 0.44rem;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+
+.Match-box {
+  margin-top: 0.12rem;
+  background: #f8f8f8;
+}
+.Match-list-box {
+  width: 35%;
+  height: 1.76rem;
+  flex-wrap: wrap;
+}
+.Match-list-box .match-list div {
+  width: 1.07rem;
+  height: 0.8rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  flex-wrap: wrap;
+}
+.active {
+  background: #e4e4e4;
+}
+/* 1x2 */
+.top-box {
+  height: 0.44rem;
+  font-size: 0.24rem;
+  background: #fff;
+  border-bottom: 1px solid #e4e4e4;
+}
+.box-bottom {
+  /* height: 2.9rem;  */
+}
+.top-num {
+  display: inline-block;
+  width: 0.64rem;
+  height: 0.44rem;
+  line-height: 0.44rem;
+  color: #000000;
+  text-align: center;
+  background: #ebebeb;
+  font-size: 0.24rem;
+}
+.box {
+  padding: 0 0.32rem;
+  background: #fff;
+}
+.Match-title-num {
+  width: 0.46rem;
+  height: 0.46rem;
+  line-height: 0.46rem;
+  text-align: center;
+  background: #f76649;
+  font-size: 0.26rem;
+  border-radius: 50%;
+  color: #e4e4e4;
+}
+.haderBox {
+  padding: 0 0.32rem;
+  height: 0.88rem;
+  font-size: 0.32rem;
+  background: #f8f8f8;
+}
+.main-box {
+  height: 0.9rem;
+  background: #fff;
+  font-size: 0.28rem;
+}
+.bottom-box {
+  height: 1.1rem;
+  background: #fff;
+  font-size: 0.24rem;
+}
+.bottom-box div {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  font-size: 0.24rem;
+}
+.bottom-num {
+  padding: 0.1rem;
+  text-align: center;
+}
+.active {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.active > p {
+  color: #e4e4e4 !important;
+}
+.num-box {
+  width: 0.66rem;
+  height: 0.34rem;
+  background: #f76649;
+  border-radius: 0.17rem;
+  color: #f5f5f5 !important;
+  line-height: 0.34rem;
+  text-align: center;
+}
+.footBox {
+  display: flex;
+  flex-wrap: wrap;
+  align-items: center;
+}
+.footBox .box {
+  width: 33%;
+  text-align: center;
+}
+</style>

二进制
.svn/pristine/3b/3b460202f6417fc33a79c8884d40e55ec862db7e.svn-base


二进制
.svn/pristine/3c/3c0ac63c301631eadfd594f98aba8dcadbaaec78.svn-base


+ 29 - 0
.svn/pristine/3c/3c45d3ede86f6e1af0a5cbca1b067198ddb3bffd.svn-base

@@ -0,0 +1,29 @@
+<template>
+    <div>
+        <SportsHead></SportsHead>
+        <ScrollNav></ScrollNav>
+        <Serch></Serch>
+        <Match></Match>
+        <LinkFooter></LinkFooter>
+    </div>
+</template>
+<script>
+import  SportsHead from './StSportsHead';
+import  Serch from './StSerch';
+import  Match from './StMatch';
+import  LinkFooter from './StLinkFooter';
+import  ScrollNav from './StScrollNav';
+export default {
+    name:'SoonStartl',
+    components:{
+        SportsHead,
+        Serch,
+        Match,
+        LinkFooter,
+        ScrollNav
+    }
+}
+</script>
+<style  scoped>
+
+</style>

+ 364 - 0
.svn/pristine/3d/3d3420c3d54bda040ae721b79d7370fc259cea9f.svn-base

@@ -0,0 +1,364 @@
+<template>
+	<div style="height:100vh">
+		<div class="header row allAlignment" style="padding:.3rem .32rem;">
+			<p class="logo">
+				<span style="color:#f76649;font-size:.43rem">HX</span>
+				<i style="color:#f4f4f2;font-size:.43rem;font-weight: bolder;">699</i>
+			</p>
+			<p class="switch">
+				<img src="@/assets/st-imges/close.png" @click="personalShow()">
+				<img style="margin-right:.1rem" src="@/assets/st-imges/kefu.png">
+			</p>
+		</div>
+		<div class="Personal row center">
+			<div class="Personal-index">
+				<div class="Personal-top boxshow">
+					<div class="PictureFrame row vertical-center">
+						<!-- 头像 -->
+						<div class="row vertical-center">
+							<div class="HeadPortrait row center">
+								<!-- 头像图片 -->
+								<img src="@/assets/st-imges/touxiang.jpg">
+							</div>
+						</div>
+						<!-- 用户名 -->
+						<div class="row vertical-center">
+							<span style="margin-top:2px;font-size:.26rem">{{name}}</span>
+						</div>
+					</div>
+
+					<div class="AmountAccount row item-center">
+						<div>
+							<div class="mtb">
+								<span style="color: #666666;font-size: .22rem;">账户余额(元)</span>
+								<br>
+								<!-- 账户余额 -->
+								<span
+										style="color:#666666;display: inline-block;font-size: .3rem;font-weight: normal;margin-top:.15rem;"
+								>{{data.allMoney}}</span>
+							</div>
+						</div>
+						<i></i>
+						<div>
+							<div class="mtb">
+								<span style="color: #666666;font-size: .22rem;">盈利(元)</span>
+								<br>
+								<!-- 盈利 -->
+								<span
+										style="color:#1bd479;display: inline-block;font-size: .3rem;font-weight: normal;margin-top:.15rem;"
+								>{{data.winMoney}}</span>
+							</div>
+						</div>
+						<i></i>
+						<div>
+							<div class="mtb">
+								<span style="color: #666666;font-size: .22rem;">亏损(元)</span>
+								<br>
+								<!-- 亏损 -->
+								<span
+										style="color:#f76649;display: inline-block;font-size: .3rem;font-weight: normal;margin-top:.15rem;"
+								>{{data.loseMoney}}</span>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="Personal-main row average mt03 boxshow">
+					<div @click="toRouter('/ProfitAndLossRecord')">
+						<img src="@/assets/st-imges/Personalstatements.png">
+						<p>盈亏记录</p>
+					</div>
+					<div @click="toRouter('/BettingRecord')">
+						<img src="@/assets/st-imges/Thedetail.png">
+						<p>投注记录</p>
+					</div>
+					<div @click="toRouter('/AccessRecords')">
+						<img src="@/assets/st-imges/Thereport.png">
+						<p>转账记录</p>
+					</div>
+				</div>
+				<div class="Personal-bottom mt03 row allAlignment">
+					<div @click="toRouter('/PersonInfo')">
+						<div class="Personal-bottom-img">
+							<img src="@/assets/st-imges/Thepersonaldata.png">
+						</div>
+						<div class="Personal-bottom-text">
+							<p>个人资料</p>
+							<span>个人信息绑定与查询</span>
+						</div>
+					</div>
+
+<!--					<div>-->
+<!--						<div class="Personal-bottom-img">-->
+<!--							<img src="@/assets/st-imges/Securitycenter.png">-->
+<!--						</div>-->
+<!--						<div class="Personal-bottom-text">-->
+<!--							<p>安全中心</p>-->
+<!--							<span>保护你的账户安全</span>-->
+<!--						</div>-->
+<!--					</div>-->
+					<div @click="toRouter('/MessageCenter')">
+						<div class="Personal-bottom-img">
+							<img src="@/assets/st-imges/Themessage.png">
+						</div>
+						<div class="Personal-bottom-text">
+							<p>我的消息</p>
+							<span>查看历史消息内容</span>
+						</div>
+					</div>
+<!--					<div>-->
+<!--						<div class="Personal-bottom-img">-->
+<!--							<img src="@/assets/st-imges/Moreandmore.png">-->
+<!--						</div>-->
+<!--						<div class="Personal-bottom-text">-->
+<!--							<p>更多</p>-->
+<!--							<span>使用管理更多功能</span>-->
+<!--						</div>-->
+<!--					</div>-->
+				</div>
+				<yd-button size="large" type="danger" @click.native="logout()">退出登录</yd-button>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+	import "@/css/index.css";
+	export default {
+		name: "PersonalCenter",
+		data() {
+			return {
+				// 用户名
+				name: "",
+				userCodeShow: false, //头像侧边菜单显示开关
+				data: "",
+				timers:true,
+			};
+		},
+		computed: {},
+		watch: {},
+		methods: {
+			//判断登录是否过期
+			getuserData() {
+				if (localStorage.getItem("token")) {
+					this.$http
+						.post(this.$ports.login.getAgent, {
+							token: localStorage.getItem("token")
+						})
+						.then(res => {
+							if (res.data.status == -4001) {
+								this.$store.dispatch("SET_TOKEN", "");
+								this.$store.dispatch("GET_ISSHOW", false);
+								this.$dialog.toast({
+									mes: "对不起您的登录已过期,请您重新登录",
+									timeout: 3000
+								});
+								this.$router.push('/')
+							}
+						});
+				}
+			},
+			// 获取个人中心统计数据
+			statistical() {
+				this.$http
+					.post(this.$ports.login.dataStatistics, {
+						token: localStorage.getItem("token")
+					})
+					.then(res => {
+						this.data = res.data.data;
+						// console.log(res, "wwww");
+					});
+			},
+			// 退出登录
+			logout() {
+				this.$dialog.confirm({
+					title: "退出登录",
+					mes: "您确定要退出登录吗?",
+					opts: () => {
+						this.$http
+							.get(this.$ports.login.loginOut, {
+								token: localStorage.getItem("token")
+							})
+							.then(res => {
+								if (res) {
+									this.$dialog.toast({
+										mes: "退出登录成功,请前往登录",
+										timeout: 1500
+									});
+									this.$public.setItem("token", "");
+									this.$store.dispatch("SET_TOKEN", "");
+									localStorage.setItem("name", "");
+									this.$router.go(-1);
+								}
+							});
+					}
+				});
+			},
+			// 个人中心显示隐藏
+			personalShow() {
+				this.$router.go(-1);
+			},
+			// 路由
+			toRouter(url) {
+				this.$router.push({ path: url });
+			},
+			userCode() {
+				this.userCodeShow = !this.userCodeShow;
+			},
+			userEsc() {
+				this.userCodeShow = false;
+			}
+		},
+		mounted() {
+			if (localStorage.getItem("name")) {
+				this.name = localStorage.getItem("name");
+			}
+			this.statistical();
+			let _this = this;
+			this.$public.ajaxTimerFun(function(timing) {
+				if (_this.timers) {
+					_this.getuserData();
+				} else {
+					clearInterval(timing);
+				}
+			}, 1000 * 60);
+		},
+		beforeDestroy() {
+			this.timers = false;
+		},
+	};
+</script>
+
+<style scoped>
+	.yd-btn-block {
+		margin-top: 0.6rem;
+	}
+	.header {
+		height: 1.8rem;
+		background-image: linear-gradient(0deg, #565656 0%, #999999 100%);
+	}
+	.logo {
+		font-weight: bolder;
+	}
+	.switch img {
+		width: 0.3rem;
+		height: 0.3rem;
+		margin-left: 0.4rem;
+		margin-top: 0.1rem;
+	}
+	.Personal {
+		width: 100%;
+		margin-top: -0.65rem;
+	}
+	.Personal-index {
+		width: 7rem;
+		height: 10rem;
+	}
+	.Personal-top {
+		height: 2rem;
+		background: #efefef;
+		border-radius: 0.1rem;
+	}
+	.mt03 {
+		margin-top: 0.5rem;
+	}
+	.Personal-main {
+		height: 2.2rem;
+		background: #efefef;
+		border-radius: 0.1rem;
+	}
+	.Personal-main img {
+		width: 1.1rem;
+		height: 1.1rem;
+		border-radius: 50%;
+	}
+	.Personal-main p {
+		font-size: 0.26rem;
+		color: #555555;
+		margin-top: -0.1rem;
+	}
+	.Personal-main div {
+		text-align: center;
+		padding: 0.4rem 0;
+	}
+	.Personal-bottom {
+		height: 4rem;
+		flex-wrap: wrap;
+	}
+	.boxshow {
+		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);
+	}
+	.Personal-bottom > div {
+		width: 100%;
+		height: 1.6rem;
+		border-radius: 0.1rem;
+		background: #efefef;
+		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);
+	}
+	.AmountAccount {
+		height: 1.2rem;
+	}
+	.AmountAccount > i {
+		display: inline-block;
+		width: 1px;
+		height: 0.5rem;
+		background: #cccccc;
+	}
+	.AmountAccount > div {
+		width: 2.38rem;
+	}
+	.PictureFrame {
+		height: 0.8rem;
+		flex-wrap: wrap;
+	}
+	.PictureFrame > div {
+		width: 100%;
+	}
+	.HeadPortrait {
+		width: 1rem;
+		height: 0.99rem;
+		background: #efefef;
+		border-radius: 50%;
+		margin-top: -0.5rem;
+		box-shadow: 0px 0rem 10px 2px rgba(0, 0, 0, 0.3);
+	}
+	.HeadPortrait > img {
+		width: 0.94rem;
+		height: 0.94rem;
+		border-radius: 50%;
+	}
+	.mtb {
+		text-align: center;
+		line-height: 0.2rem;
+	}
+	.Personal-bottom-img {
+		width: 0.94rem;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	.Personal-bottom-img > img {
+		width: 0.56rem;
+		height: 0.56rem;
+	}
+	.Personal-bottom > div {
+		display: flex;
+	}
+	.Personal-bottom-text {
+		height: 100%;
+		padding: 0.35rem 0;
+	}
+	.Personal-bottom-text > p {
+		margin-bottom: 0.1rem;
+		color: #555555;
+		font-size: 0.26rem;
+	}
+	.Personal-bottom-text > span {
+		color: #999999;
+		font-size: 0.22rem;
+	}
+</style>

+ 136 - 0
.svn/pristine/3d/3d665138abba0f96d070b8887949382a210983da.svn-base

@@ -0,0 +1,136 @@
+<template>
+  <div class="goal">
+    <yd-accordion :accordion="false">
+      <yd-accordion-item :title=" '进球' + ':' + '单/双'">
+        <div style="padding:0 0.32rem;" class="odds" v-for="(item,index) in list" :key="item.id" >
+          <div class="large" @click="toggle(index)">
+            <div>大</div>
+            <div class="ratio" :class = "sel[index] == true ? 'col':''">
+              <span class = "score">{{item.largeScore}}</span>
+              <span :class = "item.largeScore || item.smallScore == '' ? '':'largeScore'">{{item.largeOdds}}</span>
+            </div>
+          </div>
+          <div class="small" @click = smallToggle(index)>
+            <div>小</div>
+            <div class="ratio" :class = "smallStatus[index] == true ? 'col':''">
+              <span  class = "score">{{item.smallScore}}</span>
+              <span :class = "item.smallScore || item.smallScore == '' ? '':'smallScore'">{{item.smallOdds}}</span>
+            </div>
+          </div>
+        </div>
+      </yd-accordion-item>
+    </yd-accordion>
+  </div>
+</template>
+<script>
+export default {
+    // 进球大小单双数
+  data() {
+    return {
+      status: -1,
+      timer:0,
+      smallStatus : [],
+      sel : [],
+      list:[{
+        largeScore : '0.5/1',
+        largeOdds:'0.94',
+        smallScore : '0.5/1',
+        smallOdds:'0.94'
+      }]
+    }
+  },
+  mounted() {
+    for(var i = 0 ;i < this.list.length; i++){
+      this.sel.push(false)
+      this.smallStatus.push(false)
+    }
+  },
+  methods: {
+      toggle(index){
+          this.sel[index] = !this.sel[index]
+          this.$forceUpdate();
+        },
+          smallToggle(index){
+          this.smallStatus[index] = !this.smallStatus[index]
+          this.$forceUpdate();
+        }
+  },
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #F8F8F8;
+}
+div /deep/ .yd-accordion-title {
+  color: #333333;
+  font-size: 0.32rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../../assets/st-imges/xiangxia.png") no-repeat;
+  background-size:100% 100%;
+}
+.odds {
+  display: flex;
+  justify-content: space-between;
+  background: #f8f8f8;
+  text-align: left;
+
+}
+.odds .large,.odds .small {
+  width: 50%;
+  display: flex;
+  justify-content: space-between;
+  border-right: 1px solid #E4E4E4;
+  border-bottom: 1px solid #E4E4E4;
+}
+.odds .small{
+  border-right: none;
+  padding-left: 0.16rem;
+}
+.odds .large div,.odds .small div{
+  height: 0.88rem;
+
+  font-size: 0.24rem;
+  color: #333333;
+}
+.odds .large div:nth-child(1),.odds .small div:nth-child(1) {
+  line-height: 0.88rem;
+}
+.odds .large .ratio,.odds .small .ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 2px solid #cecece;
+  border-radius: 0.1rem;
+  margin-top: 0.06rem;
+  text-align: center;
+  margin-right: 0.14rem;
+}
+.odds .large .ratio span,.odds .small .ratio span{
+  font-size: 0.24rem;
+
+}
+.odds .large .score,.odds .small .score{
+  color: #FD8F26;
+}
+.odds:nth-last-child(1) .large,.odds:nth-last-child(1) .small{
+  border-bottom: none;
+}
+.largeScore,.smallScore{
+  line-height: 0.76rem;
+}
+.col{
+  background: #F76649;
+  border: 2px solid #F76649 !important;
+}
+.col span{
+  color: #f4f4f4 !important;
+}
+.odds .score{
+  display: block;
+  margin-top:0.04rem;
+}
+</style>

+ 257 - 0
.svn/pristine/3d/3da0c44a90467f48caa176bde08336dc022c9918.svn-base

@@ -0,0 +1,257 @@
+<template>
+  <div class="goal">
+    <div v-if="isDisplay">
+      <yd-accordion :accordion="true">
+        <yd-accordion-item title="总局数:单/双" open>
+          <div class="row allAlignment box">
+            <div class=" column allAlignment left_box">
+              <div
+                v-for="(item,index) in data"
+                :key="'b'+index"
+                v-if="item.odds_code =='two_sides_single'"
+                class=" row allAlignment"
+              >
+                <div>{{item.condition}}</div>
+                <div  v-if="item.odds >0" class="ratio"
+                  :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                  @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'进球:单/双',item.oddsType)"
+                >
+                  <span>{{item.odds}}</span>
+                </div>
+                <div v-else  class="ratio column center">
+                  <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                </div>
+              </div>
+            </div>
+
+            <div class=" column allAlignment right_box ">
+            <div
+              v-for="(item,index) in data"
+              :key="'b'+index"
+              v-if="item.odds_code =='two_sides_double' "
+              class=" row allAlignment"
+            >
+              <div>{{item.condition}}</div>
+              <div  v-if="item.odds >0" class="ratio"
+                :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                @click="toggle(item.id,item.condition,item.odds,item.odds_only,item.p_code,match_id,item.odds_code,'进球:单/双',item.oddsType)"
+              >
+                <span>{{item.odds}}</span>
+              </div>
+              <div v-else  class="ratio column center">
+                <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+              </div>
+            </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  // 进球大小单双数
+  data() {
+    return {
+      title: "two_game_sides",
+      // status: -1,
+      smallStatus: [],
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      match_id: "",
+      lg_id:'',
+      score: "0",
+      data: [], //
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+    };
+  },
+  methods: {
+    //玩法投注
+    toggle(id, name, odds, odds_only, p_code, match_id, odds_code,play_name,oddsType) {
+      
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        ballId: this.$store.getters.getBallId,
+        condition:name,
+        odds_code,
+        score: this.score,
+        play_name,
+        bettingTime: "",
+        odds_only,
+        lg_id:this.lg_id,
+        odds_id:id,
+        p_code,
+        match_id,
+        oddsType
+      };
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+            if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+
+           if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+        }
+      );
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title ==  this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    }
+  },
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  watch: {
+    //监听vuex里面数据
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      this.lg_id=val.lg_id
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          this.isDisplay = true;
+          this.data = res;
+        }
+      });
+     
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+      //console.log(this.data, "a123");
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+.goalBox {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: #f8f8f8;
+  padding: 0 0.32rem;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.box {
+  font-size: 0.24rem;
+  color: #333333;
+  background: #f4f4f4;
+  padding: 0 0.32rem;
+}
+
+.left_box {
+  width: 50%;
+  border-right: 1px solid #e4e4e4;
+  line-height: 0.9rem;
+}
+.right_box {
+  width: 50%;
+  padding-left: 0.16rem;
+  line-height: 0.9rem;
+}
+.ratio {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+  padding: .1rem;
+  text-align: center;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+/* .odds .score {
+  display: block;
+  margin-top: 0.04rem;
+}  */
+</style>

二进制
.svn/pristine/3e/3e42ec49e909fa37e76c61972a8a712eef44f298.svn-base


+ 49 - 0
.svn/pristine/3f/3f5e1aef2f6b8cc3f9d750ed56feae725022f59b.svn-base

@@ -0,0 +1,49 @@
+<template>
+    <div  :class="noroll?'noroll':''">
+        <SportsHead></SportsHead>
+        <ScrollNav></ScrollNav>
+        <Serch></Serch>
+        <Match></Match>
+        <!-- <LinkFooter></LinkFooter> -->
+    </div>
+</template>
+<script>
+import  SportsHead from '../../../components/StSportsHead';
+import  Serch from '../../../components/StSerch';
+import  Match from '../../../components/StMatch';
+import  LinkFooter from '../../../components/StLinkFooter';
+import  ScrollNav from '../../../components/StScrollNav';
+export default {
+    name:'Home',
+    components:{
+        SportsHead,
+        Serch,
+        Match,
+        LinkFooter,
+        ScrollNav
+    },
+    data(){
+        return{
+            norill:false,
+        }
+    },
+    computed:{
+		noRoll(){
+			return this.$store.getters.getNoRoll
+		}
+	},
+	watch:{
+		noRoll(val){
+			this.norill=val
+		}
+	},
+}
+</script>
+<style  scoped>
+    .noroll{
+		position: fixed;
+         width: 100%;
+		top: 0;
+		left: 0;
+	}
+</style>

+ 383 - 0
.svn/pristine/3f/3f6db2eda6a8e490d375267fb36362a1f6df6f3a.svn-base

@@ -0,0 +1,383 @@
+<template>
+  <div>
+    <div v-if="isDisplay">
+      <!-- <yd-accordion>
+        <yd-accordion-item title="让球" open>
+          <div v-for="(item,index) in data" :accordion="true" :key="index">
+            <div v-if="item.odds_code == 'concede_home' || item.odds_code == 'concede_guest'">
+              <div style="padding:0 0.32rem;" class="odds">
+                <div class="row allAlignment center small">
+                  <span>{{item.odds_code =='concede_home' ? home_team :guest_team}}</span>
+                  <div v-if="item.odds >0 " class="ratio column center"
+                    @click="bettingBtn(item.id,item.odds_code =='concede_home' ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球')"
+                    :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                  >
+                    <span class="score">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="ratio column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion>
+      <yd-accordion>
+        <yd-accordion-item title="让球-上半场" open>
+          <div v-for="(item,index) in data" :accordion="true" :key="index">
+            <div
+              v-if="item.odds_code == 'half_concede_home' || item.odds_code == 'half_concede_guest'"
+            >
+              <div style="padding:0 0.32rem;" class="odds">
+                <div class="row allAlignment center small">
+                  <span>{{item.odds_code =='half_concede_home' ? home_team :guest_team}}</span>
+                  <div v-if="item.odds >0 "  class="ratio column center"
+                    @click="bettingBtn(item.id,item.odds_code =='half_concede_home' ? home_team :guest_team,item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'让球-上半场' )"
+                    :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color: item.change == 'red'} "
+                  >
+                    <span class="score">{{item.condition}}</span>
+                    <span>{{item.odds}}</span>
+                  </div>
+                  <div v-else  class="ratio column center">
+                    <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </yd-accordion-item>
+      </yd-accordion> -->
+      <div v-if="obj.a">
+        <yd-accordion :accordion="true">
+          <yd-accordion-item title="进球:大/小" open>
+            <div style="padding:0 0.32rem;" class="odds">
+              <div class="row allAlignment center">
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('goal_size') && item.odds_code.endsWith('big')">
+                      <div
+                        style="border-right: 1px solid #e4e4e4; padding-right:0.1rem; "
+                        class="small row allAlignment center"
+                      >
+                        <div>大</div>
+                        <div v-if="item.odds >0 "  class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
+                          @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('goal_size') && item.odds_code.endsWith('small')">
+                      <div class="small row allAlignment center">
+                        <div>小</div>
+                        <div v-if="item.odds >0 "  class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'} "
+                          @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+      </div>
+     
+      <div v-if="obj.b">
+        <yd-accordion :accordion="true">
+          <yd-accordion-item title="进球:大/小-上半场" open>
+            <div style="padding:0 0.32rem;" class="odds">
+              <div class="row allAlignment center">
+                <div style="width:50% ;" class="column">
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('half') && item.odds_code.endsWith('big')">
+                      <div
+                        style="border-right: 1px solid #e4e4e4; padding-right:0.1rem; "
+                        class="small row allAlignment center"
+                      >
+                        <div>大</div>
+                        <div v-if="item.odds >0 " class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                          @click="bettingBtn(item.id,'大',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div style="width:50% ;" class="column">
+                  <!-- || item.odds_code == 'half_size_guest' -->
+                  <div v-for="(item,index) in data" :accordion="true" :key="index">
+                    <div v-if="item.odds_code.startsWith('half') && item.odds_code.endsWith('small')">
+                      <div class="small row allAlignment center">
+                        <div>小</div>
+                        <div v-if="item.odds >0" class="ratio column center"
+                          :class="{col:item.isTrue,increased_color:item.change == 'add',reduce_color:item.change == 'red'}"
+                          @click="bettingBtn(item.id,'小',item.odds,item.odds_only,item.p_code,match_id,item.condition,item.odds_code,'进球大小',item.oddsType)"
+                        >
+                          <span class="score">{{item.condition}}</span>
+                          <span>{{item.odds}}</span>
+                        </div>
+                        <div v-else  class="ratio column center">
+                          <img style="width: 0.7rem;height: 0.5rem;" src="@/assets/st-imges/mima.png"><img>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </yd-accordion>
+
+
+      </div>
+    </div>
+    <!-- <div class="BettingWindow" v-if="isWindow">
+       <BettingWindow />
+    </div>-->
+  </div>
+</template>
+<script>
+// import BettingWindow from "@/components/StBettingWindow";
+export default {
+  data() {
+    return {
+      title: "goal_size",
+      isDisplay: false,
+      home_team: "",
+      guest_team: "",
+      data: [],
+      lg_id:'',
+      match_id: "",
+      obj:'',
+      betting: [], //已投注倍率id集合
+      dataNum: 10000 //对应的数据的下标
+
+    };
+  },
+  methods: {
+    //玩法投注
+    bettingBtn(id,name,odds,odds_only,p_code,match_id,condition,odds_code,play_name,oddsType,bettingTime = "") {
+      
+      // // 投注页面显示
+      // let isAdd = true;
+      //    if(this.$store.getters.newIsBetting==true){
+      //     return false
+      //  }
+      //    this.$store.dispatch('ISBETTING',true)
+      let _this = this;
+      let bettingInfo = {
+        id,
+        home_team: this.home_team,
+        guest_team: this.guest_team,
+        name,
+        odds,
+        p_code,
+        ballId: this.$store.getters.getBallId,
+        match_id,
+        condition,
+        odds_code: odds_code,
+        score: this.score,
+        bettingTime,
+        odds_only,
+        play_name,
+        odds_id:id,
+        lg_id:this.lg_id,
+        oddsType:oddsType
+      };
+      // if(this.$store.getters.getLimit * 1 >= 10){
+      //    this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+      // }
+      // if (isAdd) {
+      //调用玩法投注公共方法
+      this.$public.bettingFunction(
+        this.betting,
+        bettingInfo,
+        this.data,
+        this.$store.getters.getBetting,
+        this.title,
+        this.dataNum,
+        this.$store.getters.getLimit,
+        function(res, type) {
+          _this.$set(res, "isTrue", type);
+        },
+        function(data, val,type) {
+          //console.log(data, val,type);
+          if(type) {
+            _this.$dialog.alert({mes: '你的注单已达到上限啦!'});
+          }
+          _this.$store.dispatch("BETTING", []);
+          _this.$store.dispatch("BETTING", data ? data : val);
+          if(_this.$store.getters.getIsBetting == '100') return false
+          _this.$store.dispatch("ISBETTING",'100')
+
+        }
+      );
+      // }
+      if (this.$store.getters.getLimit * 1 >= 10) return false;
+    },
+    //获取玩法id
+    getBettingId(data) {
+      if (data) {
+        data.forEach((res, index) => {
+          if (res.title == this.title) {
+            this.betting = res.data;
+            this.dataNum = index;
+          }
+        });
+      }
+    },
+    //获取检测玩法
+    playGrouping(data) {
+      let obj ={};
+      data.forEach(res => {
+          //console.log(res)
+        if(res.odds_code.startsWith('goal_size')){
+          obj.a =true;
+        }else if(res.odds_code.startsWith('half')){
+          obj.b =true;
+        }
+      });
+      this.obj =obj
+      
+    }
+  },
+
+  /**
+   * 计算属性
+   */
+  computed: {
+    getUserIcons() {
+      return this.$store.getters.getGameRatio;
+    },
+    getBetting() {
+      return this.$store.getters.getBetting;
+    },
+    //获取投注框删除的投注信息
+    getDeleteType() {
+      return this.$store.getters.getDeleteType;
+    }
+  },
+  /**
+   * 监听器
+   */
+  watch: {
+    getUserIcons(val) {
+      this.match_id = val.match_id;
+      if (!val) return false;
+      this.home_team = val.home_team;
+      this.guest_team = val.guest_team;
+      // 联赛id
+      this.lg_id=val.lg_id;
+      val.oddsData.forEach(res => {
+        if (res[0].p_code == this.title) {
+          //console.log("更新数据", res);
+          this.playGrouping(res);
+          this.isDisplay = true;
+          this.data = res;
+        }
+      });
+      this.getBettingId(this.$store.getters.getBetting);
+      if (this.dataNum != 10000) {
+        this.betting.forEach(res => {
+          this.data.forEach((e, index) => {
+            if (res.id == e.id) {
+              this.$set(e, "isTrue", true);
+            }
+          });
+        });
+      }
+    },
+    //获取已投注信息
+    getBetting(val) {
+      let _this = this;
+      //投注框数据发生变法,初始化组件页面渲染和数据;
+      this.$public.getBettingId(val, this.title, function(data, index) {
+        _this.betting = data;
+        _this.dataNum = index;
+      });
+    },
+    //监听投注框删除处理
+    getDeleteType(val) {
+      this.data.forEach(e => {
+        if (val == "all") {
+          this.$set(e, "isTrue", false);
+        } else {
+          if (e.id == val) {
+            this.$set(e, "isTrue", false);
+          }
+        }
+      });
+    }
+  }
+  // component:{BettingWindow},
+};
+</script>
+<style scoped>
+div /deep/ .yd-accordion-head {
+  padding: 0 0.32rem;
+  background: #a0a0a0;
+}
+div /deep/ .yd-accordion-title {
+  color: #fefefe;
+  font-size: 0.28rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.5rem;
+  height: 0.5rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 100% 100%;
+}
+.small {
+  font-size: 0.26rem;
+  border-bottom: 1px solid #e4e4e4;
+  padding-left: 0.16rem;
+}
+.odds {
+  background: #f4f4f4;
+  text-align: left;
+}
+.ratio {
+  width: 1.07rem;
+  height: 0.76rem;
+  border: 1px solid #cecece;
+  margin-right: 0.14rem;
+  border-radius: 0.1rem;
+  margin: 0.06rem;
+}
+.score {
+  color: #f76649;
+}
+.col {
+  background: #f76649;
+  border: 2px solid #f76649 !important;
+}
+.col span {
+  color: #f4f4f4 !important;
+}
+</style>

+ 836 - 0
.svn/pristine/3f/3fa2069afa34dec6d7804f20fca2f6dec02384a4.svn-base

@@ -0,0 +1,836 @@
+<template>
+  <div>
+    <div class="Serch">
+      <!-- <div class="Serch" v-if="headShow"> -->
+      <div class="Soccer-game row center">
+        <div class="Soccer-game-title row center">
+          {{name}}
+        </div>
+        <div
+          v-if="isShow"
+          style="height:0.88rem;margin-left:0.16rem;padding:0 0.1rem;"
+          class="row center"
+          @click="IsSoccerGameClick(isSoccerGameClick)"
+        >
+          <img
+            :class="isSoccerGameClick==true?'Soccer-game-src act':'Soccer-game-src return'"
+            :src="img.Soccerimg1"
+          >
+        </div>
+      </div>
+      <div class="Serch-box">
+        <div class="Serch-box-home">
+          <img class="Serch-box-img" :src="img.Serchimg">
+          <input
+            v-model="SerchValue"
+            @input="serchchange(SerchValue)"
+            class="Serch-box-input"
+            type="text"
+            placeholder="请输入联赛名称"
+          >
+          <img
+            class="Serch-box-del"
+            @click="delinputvalue()"
+            v-if="Serchchange==true"
+            :src="img.Serchdel"
+          >
+        </div>
+      </div>
+    </div>
+    <div class="Soccer-game-box row" v-if="isSoccerGameClick == true && isShow">
+      <p
+        @click="listActive(i.id)"
+        v-for="(i,index) in Regulations.list"
+        :key="index"
+        :class="listnum==i.id?'active':''"
+      >{{i.name}}</p>
+    </div>
+
+    <div v-if="dayShow" class="box">
+      <div id="NavSlide">
+        <nav>
+          <p v-for="(item,$index) in arr" @click="toggle($index,item.id)">
+            <span :class="{active:$index == active}">{{item.title}}</span>
+          </p>
+        </nav>
+      </div>
+    </div>
+
+    <div class="match" v-if="entryShow">
+      <yd-accordion accordion>
+        <div class="matchBox" v-for="items in data" :key="items.id">
+          <yd-accordion-item :title="items.region" open>
+            <div class="list">
+              <div
+                v-for="item in items.league_count"
+                :key="item.lg_id"
+                @click="goMatchInfo(item.lg_id )"
+              >
+                <span>{{item.league}}</span>
+                <span class="num">{{item.count}}</span>
+              </div>
+            </div>
+          </yd-accordion-item>
+        </div>
+      </yd-accordion>
+    </div>
+    <div v-if="noData">
+      <NotOpend :title="this.info"/>
+    </div>
+    <!-- 参赛表 -->
+    <div v-if="!entryShow" class="entry">
+      <div
+        class="list"
+        v-for="item in entryList.info"
+        :key="item.id"
+        @click="goMatchInfo(item.lg_id,item.code,item.count )"
+      >
+        <span>{{item.name}}</span>
+        <span class="num">{{item.count}}</span>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import NotOpend from "@/components/StNotOpend";
+import "../css/index.css";
+export default {
+  props: ["name"],
+  // props: ["name", "headShow"],
+  data() {
+    return {
+      isShow: true, //如果为串场则把导航显示出来,否则不显示
+      SerchValue: "",
+      data: "", //联赛列表
+      ballId:'', //球类别名
+      noData: false, //没有数据为true
+      datetimeNum: "", //赛事时间
+      active: 0,
+      entryShow: true, //参赛表
+      lgId: "",
+      serchTime: 0, //默认时间值
+      sear: "", //早盘存储查找时间
+      listnum: 0, //赛事类型
+      isTrue: true, //显示日期
+      dayShow: false,
+      Serchchange: false,
+      info: "没有相关联赛信息",
+      isSoccerGameClick: true,
+      entryList: "", // 参赛表数据
+      str_type: false, //串场冠军盘传值
+      img: {
+        Soccerimg1: require("../assets/st-imges/soccer1.png"),
+        Soccerimg2: require("../assets/st-imges/soccer1.png"),
+        Serchimg: require("../assets/st-imges/sousuo.png"),
+        Serchdel: require("../assets/st-imges/del.png"),
+        searchreturn: require("../assets/st-imges/returnbox.png")
+      },
+      //
+      Regulations: {
+        title: " ",
+        list: [
+          { id: 1, name: "参赛表" },
+          { id: 0, name: "赛事" },
+          { id: 2, name: "冠军盘口" }
+        ]
+      },
+      active: 0,
+      arr: [], //时间条
+      timers: true,
+      getIsShow:true,
+    };
+  },
+  components: {
+    NotOpend
+  },
+  methods: {
+    //设置一周赛事
+    fun_date: function() {
+      let date = new Date();
+      let MonthNum = 0;
+      let lastMonth = new Date(
+        date.getFullYear(),
+        date.getMonth() + 1,
+        0
+      ).getDate();
+      for (let i = 1; i < 8; 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.arr.push(time);
+    
+        if (i == 7) {
+          this.arr.push({ id: "morning", title: "其他早盘" });
+        }
+      }
+    },
+    // search=搜索关键字 lg_id = 联赛id (如果传入,则获取联赛下冠军盘口)
+    getAjaxInfo: function(lg_id, search, match_date, str_type, index) {
+      // console.log(
+      //   this.$store.getters.getBallId,
+      //   this.$store.getters.getActivity
+      // );
+
+      this.$http
+        .get(this.$ports.match.matchState, {
+          game_code: this.$store.getters.getBallId,
+          type_code: this.$store.getters.getActivity,
+          lg_id,
+          search,
+          match_date,
+          str_type
+        })
+        .then(res => {
+          if (
+            res.data.status == 1 &&
+            res.data.data.length > 0 &&
+            res.data.data != null
+          ) {
+            this.Regulations.title = res.data.data.type;
+            this.noData = false;
+            this.data = res.data.data;
+            //console.log("数据", this.data);
+          } else {
+            this.data = "";
+            this.noData = true;
+          }
+        });
+      let _this = this;
+      setTimeout(() => {
+        _this.$store.dispatch("GETSHOW", false);
+      }, 1000);
+    },
+    //获取冠军盘口数据
+    // 暂不使用
+    getChampion: function(typeGame, search) {
+      //console.log("冠军盘口");
+      this.$store.dispatch("GETSHOW", true);
+      this.$http
+        .get(this.$ports.match.first, { typeGame, search })
+        .then(res => {
+          if (
+            res.status == 200 &&
+            res.data.data != [] &&
+            res.data.data != null
+          ) {
+            if (res.data.data.info.length > 0) {
+              this.data = res.data.data.info;
+            } else {
+              this.data = "";
+            }
+          } else {
+          }
+          if (this.data != "") {
+            let _this = this;
+            setTimeout(function() {
+              _this.$store.dispatch("GETSHOW", false);
+            }, 500);
+          }
+        });
+    },
+    //显示隐藏赛事类型
+    IsSoccerGameClick(isclick) {
+      this.isSoccerGameClick = !isclick;
+    },
+    //获取input输入的值查询数据
+    serchchange(val) {
+      let ball = this.$store.getters.getBallId;
+      if (val.length >= 1) {
+        this.Serchchange = true;
+      } else {
+        this.Serchchange = false;
+      }
+      if (this.$store.getters.getActivity == "StMorningPlate") {
+      
+        if(ball == 'zq'){
+          this.getAjaxInfo("", val, this.serchTime);
+        }else{
+           this.getAjaxInfo("", val,this.arr[0].title);
+        }
+      } else {
+        this.getAjaxInfo("", val);
+      }
+    },
+    //删除搜索框数据
+    delinputvalue() {
+      this.SerchValue = "";
+      this.Serchchange = false;
+      if (this.listnum == 2) {
+        this.getAjaxInfo("", "", "");
+      } else if (this.listnum == 3) {
+        this.getChampion(this.$store.getters.getBallId);
+      }
+    },
+    //切换赛事类型
+    listActive(id) {
+      // console.log("id", id);
+      // sessionStorage.setItem("active", id);
+      if (this.listnum == id) return false;
+      this.SerchValue = "";
+      this.listnum = id;
+      this.str_type = true;
+      //console.log("this.listnum", this.listnum);
+      if (id == 0) {
+        this.entryShow = true;
+        this.isTrue = true;
+        this.getAjaxInfo("", "", "", id);
+      } else {
+        this.isTrue = false;
+        if (id == 2) {
+          this.entryShow = true;
+          //  this.getChampion(this.$route.query.id)
+          this.getAjaxInfo("", "", "", id);
+        } else if (id == 1) {
+          this.entryShow = false;
+          this.$store.dispatch("GETSHOW", true);
+          this.$http
+            .get(this.$ports.match.participate, {
+              typeGame: this.$store.getters.getBallId
+            })
+            .then(res => {
+              //console.log("res", res);
+              if (
+                res.status == 200 &&
+                res.data.data != [] &&
+                res.data.data != null
+              ) {
+                this.entryShow = false;
+                this.entryList = res.data.data;
+              } else {
+              }
+              let _this = this;
+              setTimeout(function() {
+                _this.$store.dispatch("GETSHOW", false);
+              }, 500);
+            });
+        }
+      }
+    },
+    //切换日期时间
+    toggle: function(index, id) {
+      if (index == this.active) return false;
+      //console.log("index", index);
+      this.serchTime = id;
+      this.active = index;
+      this.datetimeNum = id;
+      this.sear = id;
+      this.SerchValue = "";
+      this.entryShow = true;
+      this.getAjaxInfo("", "", id);
+      this.timers = false;
+      let _this = this;
+      //   if(this.$store.getters.getActivity == 'StMorningPlate'){
+      //     this.timers = true;
+      //   this.$public.ajaxTimerFun(function(timing) {
+      //   _this.getAjaxInfo("", "", id);
+      //   if (!_this.timers) {
+      //     clearInterval(timing);
+      //   }
+      // });
+      //   }
+    },
+    //打开联赛投注页面
+    goMatchInfo: function(sessionId, code, count) {
+      let ball = this.$store.getters.getBallId;
+      if (count == 0) {
+      } else {
+        if (
+          this.$store.getters.getActivity == "StStringScene" ||
+          this.$store.getters.getActivity == "StChampion"
+        ) {
+          if (
+            this.listnum == 2 ||
+            this.$store.getters.getActivity == "StChampion"
+          ) {
+            this.$router.push({
+              path: "StLeagueList",
+              query: {
+                game_code: ball,
+                leagueID: sessionId,
+                name: this.name,
+                home: 1,
+                matchDate: this.datetimeNum,
+                navBall: "2",
+                code: code,
+                strType: this.listnum,
+                champion: 1
+              }
+            });
+          } else {
+            this.$router.push({
+              path: "StLeagueList",
+              query: {
+                game_code:ball,
+                leagueID: sessionId,
+                name: this.name,
+                home: 1,
+                matchDate: this.datetimeNum,
+                navBall: "2",
+                code: code,
+                strType: this.listnum
+              }
+            });
+          }
+        } else {
+          if(this.$store.getters.getActivity == 'StMorningPlate' && ball == 'zq'){
+          this.$router.push({
+            path: "StLeagueList",
+            query: {
+              game_code: ball,
+              leagueID: sessionId,
+              name: this.name,
+              home: 1,
+              matchDate: this.datetimeNum,
+              navBall: "2",
+              code: code
+            }
+          });
+          }else if(this.$store.getters.getActivity == 'StMorningPlate' && ball != 'zq'){
+            this.$router.push({
+              path: "StLeagueList",
+              query: {
+                game_code: ball,
+                leagueID: sessionId,
+                name: this.name,
+                home: 1,
+                matchDate: this.arr[0].title,
+                navBall: "2",
+                code: code
+              }
+            });
+          }
+          else{
+            this.$router.push({
+              path: "StLeagueList",
+              query: {
+                game_code: ball,
+                leagueID: sessionId,
+                name: this.name,
+                home: 1,
+                navBall: "2",
+                code: code
+              }
+            });
+          }
+
+        }
+      }
+    },
+    // 返回上一层页面
+    isreturn() {
+      history.go(-1);
+    }
+  },
+  mounted() {
+    let ball = this.$store.getters.getBallId;
+    if (this.getIsShow) {
+      this.$store.dispatch("GETSHOW", true);
+      this.getIsShow = false;
+    }
+    //分球的类型获取默认数据
+    this.active = 0;
+    // this.$store.dispatch("GETSHOW", true);
+    this.fun_date();
+    this.serchTime = this.arr[0].title;
+    this.datetimeNum = this.arr[0].title;
+      if(this.$store.getters.getActivity == 'StMorningPlate'){
+        this.getAjaxInfo('','',this.serchTime);
+        if(ball == 'zq'){
+          this.dayShow = true;
+        }else{
+          this.dayShow = false;
+        }
+      }else{
+        this.getAjaxInfo();
+      }
+    // this.getAjaxInfo();
+    // if (sessionStorage.getItem("active")) {
+    //   this.listnum = sessionStorage.getItem("active");
+    // } else {
+    //   this.listnum = 0;
+    // }
+    // 判断冠军跳转
+    if (this.$store.getters.getActivity == "StChampion") {
+      this.str_type = true;
+    } else {
+      this.str_type = false;
+      // if (this.$store.getters.getActivity == "StMorningPlate") {
+      //   this.dayShow = true;
+      //   this.getAjaxInfo('','',this.serchTime)
+      //   console.log("1")
+      // } else {
+      //   console.log("2")
+      //   this.dayShow = false;
+      //    this.getAjaxInfo();
+      // }
+    }
+    if (this.listnum != 1) {
+      this.entryShow = true;
+    }
+    let _this = this;
+    // 判断4种玩法的轮询
+    if (
+      this.$store.getters.getActivity == "StToday" ||
+      this.$store.getters.getActivity == "StStringScene" ||
+      this.$store.getters.getActivity == "StChampion"
+    ) {
+      this.$public.ajaxTimerFun(function(timing) {
+        if (_this.timers) {
+          _this.getAjaxInfo();
+        } else {
+          clearInterval(timing);
+        }
+      },(1000*180));
+    } else if (this.$store.getters.getActivity == "StMorningPlate") {
+      this.$public.ajaxTimerFun(function(timing) {
+        if (_this.timers) {
+          _this.getAjaxInfo("", "", _this.datetimeNum);
+        } else {
+          clearInterval(timing);
+        }
+      },(1000*180));
+    }
+  },
+  computed: {
+    getActivity: function() {
+      if (
+        this.$store.getters.getActivity == "StChampion" ||
+        this.$store.getters.getActivity == "StMorningPlate" ||
+        this.$store.getters.getActivity == "StToday"
+      ) {
+        this.isShow = false;
+      } else {
+        this.isShow = true;
+        // 判断位串场的时候则传值type到下一个页面
+      }
+
+      // 当别名改变时,修改状态
+      // if (sessionStorage.getItem("ballId")) {
+      //   if (sessionStorage.getItem("active")) {
+      //     sessionStorage.removeItem("active");
+      //     this.listnum = 0;
+      //   } else {
+      //   }
+      // }
+      this.listnum = 0;
+      return this.$store.getters.getActivity;
+    },
+    getBallId(){
+      return this.$store.getters.getBallId;
+    }
+  },
+  watch: {
+    getActivity(val) {
+      console.log('val',val)
+      if(val == 'StMorningPlate'){
+         this.getAjaxInfo('','',this.serchTime);
+      }else{
+        this.getAjaxInfo();
+      }
+      this.timers = false;
+      let _this = this;
+      // 判断是不是早盘,是则显示时间条
+      if (this.$store.getters.getActivity == "StMorningPlate") {
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+            _this.getAjaxInfo("", "", _this.datetimeNum);
+          } else {
+            clearInterval(timing);
+          }
+        },(1000*180));
+        this.dayShow = true;
+      } else {
+        this.dayShow = false;
+      }
+      if (this.$store.getters.getActivity != "StStringScene") {
+        this.entryShow = true;
+      } else if (this.listnum != 1) {
+        this.entryShow = true;
+      } else {
+        this.entryShow = false;
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+            _this.getAjaxInfo("", "", "", _this.listnum);
+          } else {
+            clearInterval(timing);
+          }
+        },(1000*180));
+      }
+      // 轮询造轮子
+      if (
+        this.$store.getters.getActivity == "StToday" ||
+        this.$store.getters.getActivity == "StChampion"
+      ) {
+        this.timers = true;
+        this.$public.ajaxTimerFun(function(timing) {
+          if (_this.timers) {
+            _this.getAjaxInfo();
+          } else {
+            clearInterval(timing);
+          }
+        },(1000*180));
+      }
+    },
+    getBallId(val){
+    // this.serchTime = this.arr[0].title;
+      if (this.$store.getters.getActivity == "StMorningPlate") {
+        if(val == 'zq'){
+          this.dayShow = true;
+          this.getAjaxInfo('','',this.serchTime)
+        }else{
+          this.dayShow = false;
+           this.getAjaxInfo('','',this.arr[0].title)
+        }
+      } else {
+        this.dayShow = false;
+         this.getAjaxInfo();
+      }
+    }
+  },
+  beforeDestroy() {
+    this.timers = false;
+  }
+};
+</script>
+
+<style scoped>
+.act {
+  transform: rotate(180deg);
+  transition: 0.2s;
+}
+.return {
+  transform: rotate(0deg);
+  transition: 0.2s;
+}
+.Serch {
+  height: 0.88rem;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background: linear-gradient(to bottom, #6a6a6a, #565656);
+  color: #f76649;
+  font-family: "PingFang-SC-Regular";
+  padding: 0 0.3rem;
+}
+.returnimg {
+  width: 0.37rem;
+  height: 0.3rem;
+  margin-right: 0.1rem;
+}
+.Serch-box {
+  display: flex;
+  align-items: center;
+}
+.Serch-box-input {
+  width: 3.8rem;
+  border: none;
+  position: absolute;
+  height: 0.44rem;
+  line-height: 0.44rem;
+  left: 0.5rem;
+  color: #aaa;
+}
+.Serch-box-img {
+  width: 0.3rem;
+  height: 0.3rem;
+  position: absolute;
+  left: 0.1rem;
+  top: 0.06rem;
+}
+.Serch-box-del {
+  width: 0.2rem;
+  height: 0.2rem;
+  position: absolute;
+  right: 0.2rem;
+}
+.Serch-box-home {
+  height: 0.45rem;
+  line-height: 0.45rem;
+  width: 4.73rem;
+  background: #e4e4e4;
+  border-radius: 0.2rem;
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  padding-left: 0.1rem;
+  padding-right: 0.1rem;
+  position: relative;
+}
+.Soccer-game-title {
+  height: 0.88rem;
+  font-size: 0.3rem;
+}
+.Soccer-game-box {
+  height: 0.88rem;
+  /* padding: 0 0.32rem; */
+  background-color: #626262;
+}
+.Soccer-game-box > p {
+  margin: 0.3rem;
+  color: #a6a6a6;
+}
+.Soccer-game-box p.active {
+  color: #f76649;
+}
+.Soccer-game-src {
+  width: 0.25rem;
+  height: 0.15rem;
+  /* margin-left: 0.3rem; */
+}
+.box {
+  background: #ebebeb;
+  padding: 0 0.14rem;
+  height: 0.8rem;
+}
+#NavSlide {
+  width: 100%;
+  height: .8rem;
+  overflow: hidden;
+  background: #ebebeb;
+}
+#NavSlide nav {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: middle;
+  -ms-flex-align: middle;
+  align-items: middle;
+  overflow: auto;
+  background: #ebebeb;
+}
+#NavSlide p {
+  text-align: center;
+  font-size: 0.28rem;
+  -ms-flex-negative: 0;
+  flex-shrink: 0;
+  padding: 0 0.1rem;
+  margin: 0 0.05rem;
+  color: #b8b8b8;
+
+  height: 0.8rem;
+  line-height: 0.8rem;
+}
+/* #NavSlide p a{
+	color: #E5E5E5;
+	text-decoration: none;
+} */
+#NavSlide p span.active {
+  color: #363636;
+}
+
+.yd-cell-box .yd-cell {
+  z-index: 99;
+  border-radius: 0.2rem;
+}
+.matchBox {
+  margin-bottom: 0.12rem;
+  background: #f9f9f9;
+  padding: 0.27rem 0.34rem 0 0.32rem;
+}
+div /deep/ .yd-accordion-head {
+  padding: 0 0.13rem 0 0;
+}
+div /deep/ .yd-accordion-content:after {
+  height: 0;
+}
+.match .tit {
+  display: flex;
+  justify-content: space-between;
+  font-size: 0.32rem;
+  margin-bottom: 0.3rem;
+}
+.match .list {
+  overflow: hidden;
+  transition: all 0.3s cubic-bezier(0.4, 0.6, 0.2, 1);
+}
+.match .list div {
+  background: #dcdcdc;
+  width: 100%;
+  height: 0.88rem;
+  padding: 0.26rem 0.56rem 0.3rem 0.3rem;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  border-radius: 0.08rem;
+  margin-bottom: 0.12rem;
+}
+div /deep/ .yd-accordion-head:after {
+  height: 0;
+}
+.match .list span {
+  color: #333333;
+  font-size: 0.28rem;
+}
+.match .list .num {
+  width: 0.4rem;
+  height: 0.4rem;
+  display: inline-block;
+  line-height: 0.4rem;
+  text-align: center;
+  color: #f5f5f5;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #f76649;
+}
+.yd-accordion {
+  background: transparent;
+}
+.match .list div:nth-last-child(1) {
+  margin-bottom: 0.34rem;
+}
+div /deep/ .yd-accordion-head,
+div /deep/ .yd-accordion-head-content,
+div /deep/ .yd-accordion-title,
+div /deep/ .yd-accordion-title-full {
+  height: 0.3rem;
+}
+div /deep/ .yd-accordion-title {
+  min-height: 0;
+}
+div /deep/ .yd-accordion-head {
+  margin-bottom: 0.3rem;
+}
+div /deep/ .yd-accordion-head-arrow:after {
+  border: none;
+  width: 0.4rem;
+  height: 0.4rem;
+  background: url("../assets/st-imges/xiangxia.png") no-repeat;
+  background-size: 0.4rem 0.4rem;
+}
+/* 参赛表 */
+.entry .list {
+  height: 0.88rem;
+  padding: 0.2rem;
+  width: 100%;
+  background: #a0a0a0;
+  color: #fefefe;
+  display: flex;
+  justify-content: space-between;
+  border-bottom: 1px solid #aaa;
+}
+.entry .list .num {
+  width: 0.4rem;
+  height: 0.4rem;
+  display: inline-block;
+  line-height: 0.4rem;
+  text-align: center;
+  color: #f5f5f5;
+  border-radius: 50%;
+  font-size: 0.2rem;
+  background: #f76649;
+}
+</style>

部分文件因为文件数量过多而无法显示