ソースを参照

Merge branch 'master' of http://git.ycjcjy.com/xuchengxiang/niucai-admin into master

张延森 4 年 前
コミット
16c5e0d8bb

+ 2
- 2
config/index.js ファイルの表示

@@ -12,8 +12,8 @@ module.exports = {
12 12
     assetsPublicPath: '/',
13 13
     proxyTable: {
14 14
       '/api': {
15
-        target: 'http://127.0.0.1:8080',
16
-        // target: 'https://app.xnsport.cn',
15
+        // target: 'http://127.0.0.1:8080',
16
+        target: 'https://api.xnsport.cn',
17 17
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
18 18
         pathRewrite: { '^/api': '/api' }
19 19
       }

バイナリ
src/assets/img/logo.png ファイルの表示


+ 4
- 2
src/pages/PaiJiang/PaiJiangGuanLi/index.vue ファイルの表示

@@ -70,10 +70,12 @@
70 70
 </template>
71 71
 
72 72
 <script>
73
-import MainPageContainer from '../../../components/common/MainPageContainer'
74 73
 import 'swiper/dist/css/swiper.css'
75 74
 import { swiper, swiperSlide } from 'vue-awesome-swiper'
76 75
 import { createNamespacedHelpers } from 'vuex'
76
+import MainPageContainer from '../../../components/common/MainPageContainer'
77
+import { APIBase } from '@/util/constant'
78
+
77 79
 const { mapState: mapUserState, mapActions: mapUserActions, mapMutations: mapUserMutations } = createNamespacedHelpers('user')
78 80
 export default {
79 81
   name: 'index',
@@ -143,7 +145,7 @@ export default {
143 145
           CurrentOrder = { ...item }
144 146
         }
145 147
       })
146
-      window.location.href = `/api/shop/sent-award/order/${CurrentOrder.orderId}?returlURL=${encodeURIComponent(`${window.location.origin}/#/PaiJiang/PaiJiangGuanLi`)}&token=${window.localStorage.Jwt}`
148
+      window.location.href = `${APIBase}api/shop/sent-award/order/${CurrentOrder.orderId}?returlURL=${encodeURIComponent(`${window.location.origin}/#/PaiJiang/PaiJiangGuanLi`)}&token=${window.localStorage.Jwt}`
147 149
       // this.SendPrize({ urlData: { id: OrderId.join(',') } }).then(() => {
148 150
       //   this.Toast('派奖成功')
149 151
       //   this.PageList.splice(Index, 1)

+ 1
- 1
src/pages/SignUp/index.vue ファイルの表示

@@ -174,7 +174,7 @@ export default {
174 174
     ToShopSignUp () {
175 175
       if (!this.CheckFormData() || this.DataLock) return
176 176
       this.DataLock = true
177
-      this.ShopSignUp({ data: { ...this.FormData } }).then((res) => {
177
+      this.ShopSignUp({ data: { ...this.FormData, password: md5(this.FormData.password) } }).then((res) => {
178 178
         this.Toast(res.data.message)
179 179
         this.DataLock = false
180 180
         this.SignIn({ data: { password: md5(this.FormData.password), userName: this.FormData.phone } }).then(() => { // 登录

+ 13
- 2
src/pages/WoDe/GeRenSheZhi/index.vue ファイルの表示

@@ -3,17 +3,19 @@
3 3
     <MainPageContainer :ShowMainHeader="true" :MainHeaderTitle="`个人设置`" :ShowMainHeaderBack="true">
4 4
       <ul>
5 5
         <li class="flex-h">
6
-          <span class="flex-item">关于我们</span>
6
+          <router-link tag="span" class="flex-item" :to="{ name: 'GuanYuWoMen' }">关于我们</router-link>
7 7
           <i class="iconfont iconjiantouright"></i>
8 8
         </li>
9 9
       </ul>
10
-      <a>退出登录</a>
10
+      <a @click="SignOut">退出登录</a>
11 11
     </MainPageContainer>
12 12
   </div>
13 13
 </template>
14 14
 
15 15
 <script>
16 16
 import MainPageContainer from '../../../components/common/MainPageContainer'
17
+import { createNamespacedHelpers } from 'vuex'
18
+const { mapMutations: mapUserMutations } = createNamespacedHelpers('user')
17 19
 export default {
18 20
   name: 'index',
19 21
   data () {
@@ -32,10 +34,19 @@ export default {
32 34
     })
33 35
   },
34 36
   methods: {
37
+    ...mapUserMutations([
38
+      'EmptyUserInfo'
39
+    ]),
35 40
     Refresh (done) { // 页面下拉刷新
36 41
       window.setTimeout(() => {
37 42
         done()
38 43
       }, 1000)
44
+    },
45
+    SignOut () { // 登出
46
+      this.EmptyUserInfo()
47
+      window.localStorage.removeItem('niucaiadminname')
48
+      window.localStorage.removeItem('niucaiadminpassword')
49
+      this.$router.push({ name: 'SignIn' })
39 50
     }
40 51
   }
41 52
 }

+ 48
- 0
src/pages/WoDe/GuanYuWoMen/index.vue ファイルの表示

@@ -0,0 +1,48 @@
1
+<template>
2
+  <div class="Page">
3
+    <MainPageContainer :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="关于我们">
4
+      <div class="PageContainer">
5
+        <div class="Content">
6
+          <span>牛彩成功的关键是赢得良好的口碑,诚信服务、热心解答、精心提供资料、延伸服务。</span>
7
+          <span>业主的综合素质水平直接决定了投注站的服务质量。牛彩致力于与业主一起共同成长,并提供专业服务,不断提高业务水平,始终秉承诚信经营,创新服务新内涵,为广大站点彩民提供更优质、贴心、便捷的个性化服务。</span>
8
+          <div class="Box"></div>
9
+        </div>
10
+        <div class="Logo">
11
+          <div class="Img">
12
+            <img src="../../../assets/img/logo.png" class="centerLabel contain" alt="">
13
+          </div>
14
+          <span>牛彩</span>
15
+        </div>
16
+      </div>
17
+    </MainPageContainer>
18
+  </div>
19
+</template>
20
+
21
+<script>
22
+import MainPageContainer from '../../../components/common/MainPageContainer'
23
+export default {
24
+  name: '',
25
+  data () {
26
+    return {
27
+    }
28
+  },
29
+  computed: {
30
+  },
31
+  components: {
32
+    MainPageContainer
33
+  },
34
+  created () {
35
+  },
36
+  mounted () {
37
+    this.$nextTick(() => {
38
+    })
39
+  },
40
+  methods: {
41
+  }
42
+}
43
+</script>
44
+
45
+<!-- Add "scoped" attribute to limit CSS to this component only -->
46
+<style lang="scss" scoped>
47
+@import "page.scss";
48
+</style>

+ 51
- 0
src/pages/WoDe/GuanYuWoMen/page.scss ファイルの表示

@@ -0,0 +1,51 @@
1
+.Page {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  overflow: hidden;
6
+  .PageContainer {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    overflow-y: scroll;
11
+    -webkit-overflow-scrolling: touch;
12
+    > .Content {
13
+      min-height: 100%;
14
+      padding: 0 0.15rem;
15
+      position: relative;
16
+      overflow: hidden;
17
+      > span {
18
+        display: block;
19
+        font-size: 0.14rem;
20
+        color: #adadad;
21
+        line-height: 0.2rem;
22
+        text-align: justify;
23
+        text-indent: 2em;
24
+        &:first-child {
25
+          margin-top: 0.2rem;
26
+        }
27
+      }
28
+      > .Box {
29
+        width: 100%;
30
+        height: 1rem;
31
+      }
32
+    }
33
+    > .Logo {
34
+      text-align: center;
35
+      margin-top: -1rem;
36
+      > .Img {
37
+        width: 0.44rem;
38
+        height: 0.44rem;
39
+        position: relative;
40
+        overflow: hidden;
41
+        margin: 0 auto;
42
+      }
43
+      > span {
44
+        font-size: 0.17rem;
45
+        display: inline-block;
46
+        margin-top: 0.1rem;
47
+        line-height: 0.3rem;
48
+      }
49
+    }
50
+  }
51
+}

+ 89
- 0
src/pages/WoDe/ShiMingRenZheng/index.vue ファイルの表示

@@ -0,0 +1,89 @@
1
+<template>
2
+  <div class="Page">
3
+    <MainPageContainer @ShopInfoChange="Init" :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="支付宝实名认证">
4
+      <div class="PageContainer">
5
+        <div class="Form">
6
+          <div class="flex-h">
7
+            <span>支付宝账号</span>
8
+            <div class="flex-item">
9
+              <input type="text" placeholder="请输入您的支付宝账号" v-model="AliAccount">
10
+            </div>
11
+          </div>
12
+          <div class="flex-h">
13
+            <span>真实姓名</span>
14
+            <div class="flex-item">
15
+              <input type="text" placeholder="请输入您的真实姓名" v-model="RealName">
16
+            </div>
17
+          </div>
18
+        </div>
19
+        <span class="Tips">请务必确保账号与认证姓名正确</span>
20
+        <div class="Btn">
21
+          <a @click="ToAliShiMingRenZheng">确定</a>
22
+        </div>
23
+      </div>
24
+    </MainPageContainer>
25
+  </div>
26
+</template>
27
+
28
+<script>
29
+import MainPageContainer from '../../../components/common/MainPageContainer'
30
+import { createNamespacedHelpers } from 'vuex'
31
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
32
+export default {
33
+  name: '',
34
+  data () {
35
+    return {
36
+      RealName: '',
37
+      AliAccount: '',
38
+      DataLock: false
39
+    }
40
+  },
41
+  computed: {
42
+    ...mapUserState({
43
+      CurrentShopInfo: x => x.CurrentShopInfo
44
+    })
45
+  },
46
+  components: {
47
+    MainPageContainer
48
+  },
49
+  created () {
50
+  },
51
+  mounted () {
52
+    this.$nextTick(() => {
53
+    })
54
+  },
55
+  methods: {
56
+    ...mapUserActions([
57
+      'AliShiMingRenZheng'
58
+    ]),
59
+    Init () {
60
+      if (this.CurrentShopInfo !== null) {
61
+        this.AliAccount = this.CurrentShopInfo.aliLoginId
62
+        this.RealName = this.CurrentShopInfo.name
63
+      }
64
+    },
65
+    ToAliShiMingRenZheng () {
66
+      if (this.DataLock) return
67
+      this.DataLock = true
68
+      this.AliShiMingRenZheng({
69
+        urlData: { id: this.CurrentShopInfo.shopId },
70
+        data: {
71
+          name: this.RealName,
72
+          aliLoginId: this.AliAccount
73
+        }
74
+      }).then(() => {
75
+        this.Toast('认证成功')
76
+        this.DataLock = false
77
+      }).catch((res) => {
78
+        this.Toast(res.data.message)
79
+        this.DataLock = false
80
+      })
81
+    }
82
+  }
83
+}
84
+</script>
85
+
86
+<!-- Add "scoped" attribute to limit CSS to this component only -->
87
+<style lang="scss" scoped>
88
+@import "page.scss";
89
+</style>

+ 57
- 0
src/pages/WoDe/ShiMingRenZheng/page.scss ファイルの表示

@@ -0,0 +1,57 @@
1
+.Page {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  overflow: hidden;
6
+  .PageContainer {
7
+    width: 100%;
8
+    height: 100%;
9
+    position: relative;
10
+    background: #f2f2f2;
11
+    > .Form {
12
+      background: #fff;
13
+      > div {
14
+        align-items: center;
15
+        padding: 0 0.15rem;
16
+        border-bottom: 0.01rem solid #f8f8f8;
17
+        > span {
18
+          font-size: 0.14rem;
19
+          min-width: 1rem;
20
+          margin-right: 0.1rem;
21
+        }
22
+        > div {
23
+          > input {
24
+            width: 100%;
25
+            display: block;
26
+            font-size: 0.14rem;
27
+            line-height: 0.2rem;
28
+            padding: 0.1rem 0;
29
+            text-align: right;
30
+            background: none;
31
+          }
32
+        }
33
+      }
34
+    }
35
+    > .Tips {
36
+      display: block;
37
+      padding: 0 0.15rem;
38
+      font-size: 0.12rem;
39
+      color: #999;
40
+      line-height: 0.2rem;
41
+      margin-top: 0.1rem;
42
+    }
43
+    > .Btn {
44
+      padding: 0 0.15rem;
45
+      margin-top: 0.2rem;
46
+      > a {
47
+        display: block;
48
+        font-size: 0.14rem;
49
+        line-height: 0.4rem;
50
+        background: #d91d36;
51
+        text-align: center;
52
+        border-radius: 0.06rem;
53
+        color: #fff;
54
+      }
55
+    }
56
+  }
57
+}

+ 17
- 7
src/pages/WoDe/ShouYe/index.vue ファイルの表示

@@ -1,6 +1,6 @@
1 1
 <template>
2 2
   <div class="Page">
3
-    <MainPageContainer :MainTabBarActiveId="4" :ShowMainTabBar="true">
3
+    <MainPageContainer @ShopInfoChange="Init" :MainTabBarActiveId="4" :ShowMainTabBar="true">
4 4
       <div class="Container">
5 5
         <!-- 顶部 -->
6 6
         <div class="Top">
@@ -10,7 +10,7 @@
10 10
           </div>
11 11
           <div class="Info flex-h">
12 12
             <div class="Icon">
13
-              <img src="" class="centerLabel cover" alt="">
13
+              <img src="https://niucai.oss-cn-beijing.aliyuncs.com/app/images/default-avatar.png" class="centerLabel cover" alt="">
14 14
             </div>
15 15
             <div class="flex-item flex-v">
16 16
               <div class="flex-item flex-h">
@@ -20,7 +20,7 @@
20 20
                   </div>
21 21
                 </div>
22 22
                 <span>营业额</span>
23
-                <em>6.20</em>
23
+                <em v-if="CurrentShopInfo !== null">{{CurrentShopInfo.account.amount}}</em>
24 24
                 <i class="iconfont iconjiantouright"></i>
25 25
               </div>
26 26
               <div class="Desc" v-if="CurrentShopInfo !== null">
@@ -38,6 +38,7 @@
38 38
               <img :src="item.Icon" class="centerLabel contain" alt="">
39 39
             </div>
40 40
             <span class="flex-item">{{item.Name}}</span>
41
+            <span style="color: #999; font-size: 0.12rem;">{{item.Tips}}</span>
41 42
             <i class="iconfont iconjiantouright"></i>
42 43
           </router-link>
43 44
         </ul>
@@ -57,10 +58,10 @@ export default {
57 58
       UserTab: [
58 59
         // { Name: '出票管理', Icon: '', Router: '' },
59 60
         // { Name: '派奖管理', Icon: '', Router: 'PaiJiangGuanLi' },
60
-        { Name: '购彩订单', Icon: require('../../../assets/img/goucaidingdan.png'), Router: 'DingDanLiuShui' },
61
-        { Name: '收款管理', Icon: require('../../../assets/img/shoukuanguanli.png'), Router: 'ZhiFuBaoRenZheng' },
62
-        { Name: '彩种设置', Icon: require('../../../assets/img/caizhongshezhi.png'), Router: 'CaiZhongSheZhi' },
63
-        { Name: '邀请码', Icon: require('../../../assets/img/yaoqingma.png'), Router: 'XiaZaiErWeiMa' }
61
+        { Name: '购彩订单', Icon: require('../../../assets/img/goucaidingdan.png'), Router: 'DingDanLiuShui', Tips: null, Id: 1 },
62
+        { Name: '收款管理', Icon: require('../../../assets/img/shoukuanguanli.png'), Router: 'ZhiFuBaoRenZheng', Tips: null, Id: 2 },
63
+        { Name: '彩种设置', Icon: require('../../../assets/img/caizhongshezhi.png'), Router: 'CaiZhongSheZhi', Tips: null, Id: 3 },
64
+        { Name: '邀请码', Icon: require('../../../assets/img/yaoqingma.png'), Router: 'XiaZaiErWeiMa', Tips: null, Id: 4 }
64 65
       ]
65 66
     }
66 67
   },
@@ -80,6 +81,15 @@ export default {
80 81
     })
81 82
   },
82 83
   methods: {
84
+    Init () {
85
+      if (this.CurrentShopInfo !== null) {
86
+        this.UserTab.map((item) => {
87
+          if (item.Id - 0 === 2) {
88
+            item.Tips = this.CurrentShopInfo.aliLoginId || '未授权'
89
+          }
90
+        })
91
+      }
92
+    },
83 93
     Refresh (done) { // 页面下拉刷新
84 94
       window.setTimeout(() => {
85 95
         done()

+ 1
- 0
src/pages/WoDe/ShouYe/page.scss ファイルの表示

@@ -56,6 +56,7 @@
56 56
           border: 0.01rem solid #fff;
57 57
           margin-right: 0.1rem;
58 58
           margin-left: 0.15rem;
59
+          background: #ccc;
59 60
         }
60 61
         > .flex-item {
61 62
           > .flex-h {

+ 8
- 2
src/pages/WoDe/ZhiFuBaoRenZheng/index.vue ファイルの表示

@@ -107,13 +107,14 @@
107 107
               </div>
108 108
               <i class="iconfont iconjiantouright"></i>
109 109
             </div>
110
-            <router-link tag="div" :to="{ name: 'ZhiFuBaoRenZheng' }" class="Line flex-h">
110
+            <router-link tag="div" :to="{ name: 'ShiMingRenZheng' }" class="Line flex-h">
111 111
               <span>收款管理</span>
112 112
               <div class="flex-item"></div>
113
+              <span>{{CurrentShopInfo.aliLoginId || '未授权'}}</span>
113 114
               <i class="iconfont iconjiantouright"></i>
114 115
             </router-link>
115 116
             <div class="Btn">
116
-              <a @click="ShowQrCodeLayer = true">授权</a>
117
+              <a @click="ToShowQrCodeLayer">保存</a>
117 118
             </div>
118 119
           </div>
119 120
 
@@ -216,6 +217,11 @@ export default {
216 217
       'ShopValid',
217 218
       'GetCurrentShopInfo'
218 219
     ]),
220
+    ToShowQrCodeLayer () {
221
+      if (this.CurrentShopInfo !== null && this.CurrentShopInfo.shopId === 0) {
222
+        this.ShowQrCodeLayer = true
223
+      }
224
+    },
219 225
     ShopInfoChange () {
220 226
       this.ShopName = this.CurrentShopInfo.name
221 227
       this.ZZImg = this.CurrentShopInfo.businessLicense

+ 5
- 2
src/pages/index/DingDanXiangQing/index.vue ファイルの表示

@@ -53,7 +53,7 @@
53 53
 
54 54
         <div class="Bottom">
55 55
           <a @click="ToProcessOrder" v-if="!DetailInfo.bettingDetail.betting.isDrawn" class="active">确定</a>
56
-          <a :href="`/api/shop/sent-award/order/${$route.query.id}?returlURL=${encodeURIComponent(`${Origin}/#/PaiJiang/PaiJiangGuanLi`)}&token=${Jwt}`" v-if="DetailInfo.bettingDetail.betting.isDrawn && DetailInfo.bettingDetail.betting.isWinning && !DetailInfo.bettingDetail.betting.isCashed" class="active">派奖</a>
56
+          <a :href="`${APIBase}api/shop/sent-award/order/${$route.query.id}?returlURL=${encodeURIComponent(`${Origin}/#/PaiJiang/PaiJiangGuanLi`)}&token=${Jwt}`" v-if="DetailInfo.bettingDetail.betting.isDrawn && DetailInfo.bettingDetail.betting.isWinning && !DetailInfo.bettingDetail.betting.isCashed" class="active">派奖</a>
57 57
           <!-- <a v-else>撤单</a> -->
58 58
         </div>
59 59
       </div>
@@ -62,6 +62,7 @@
62 62
 </template>
63 63
 
64 64
 <script>
65
+import { createNamespacedHelpers } from 'vuex'
65 66
 import MainPageContainer from '../../../components/common/MainPageContainer'
66 67
 import DingDanXiangQingDaLeTou from '../../../components/index/DingDanXiangQingDaLeTou'
67 68
 import DingDanXiangQingShuangSeQiu from '../../../components/index/DingDanXiangQingShuangSeQiu'
@@ -69,7 +70,8 @@ import DingDanXiangQingZuQiu from '../../../components/index/DingDanXiangQingZuQ
69 70
 import DingDanXiangQingLanQiu from '../../../components/index/DingDanXiangQingLanQiu'
70 71
 import DingDanXiangQingP3 from '../../../components/index/DingDanXiangQingP3'
71 72
 import DingDanXiangQingP5 from '../../../components/index/DingDanXiangQingP5'
72
-import { createNamespacedHelpers } from 'vuex'
73
+import { APIBase } from '@/util/constant'
74
+
73 75
 const { mapActions: mapUserActions } = createNamespacedHelpers('user')
74 76
 export default {
75 77
   name: 'index',
@@ -79,6 +81,7 @@ export default {
79 81
       Origin: window.location.origin,
80 82
       CpImgArr: [],
81 83
       DetailInfo: null,
84
+      APIBase,
82 85
       DataLock: false // 数据锁
83 86
     }
84 87
   },

+ 10
- 0
src/router/index.js ファイルの表示

@@ -88,10 +88,20 @@ let router = new Router({
88 88
             name: 'GeRenSheZhi',
89 89
             component: resolve => (require(['@/pages/WoDe/GeRenSheZhi'], resolve))
90 90
           },
91
+          {
92
+            path: '/WoDe/GuanYuWoMen', // 个人中心-关于我们
93
+            name: 'GuanYuWoMen',
94
+            component: resolve => (require(['@/pages/WoDe/GuanYuWoMen'], resolve))
95
+          },
91 96
           {
92 97
             path: '/WoDe/XiaZaiErWeiMa', // 个人中心-下载二维码
93 98
             name: 'XiaZaiErWeiMa',
94 99
             component: resolve => (require(['@/pages/WoDe/XiaZaiErWeiMa'], resolve))
100
+          },
101
+          {
102
+            path: '/WoDe/ShiMingRenZheng', // 个人中心-实名认证
103
+            name: 'ShiMingRenZheng',
104
+            component: resolve => (require(['@/pages/WoDe/ShiMingRenZheng'], resolve))
95 105
           }
96 106
         ]
97 107
       },

+ 5
- 0
src/store/user/index.js ファイルの表示

@@ -79,6 +79,11 @@ export default {
79 79
     }
80 80
   },
81 81
   actions: {
82
+    AliShiMingRenZheng (context, payload) { // 支付宝实名认证
83
+      return new Promise((resolve, reject) => {
84
+        ToolClass.Axios(resolve, reject, Api.AliShiMingRenZheng, context, payload, 1000)
85
+      })
86
+    },
82 87
     SendPrize (context, payload) { // 派奖
83 88
       return new Promise((resolve, reject) => {
84 89
         ToolClass.Axios(resolve, reject, Api.SendPrize, context, payload, 1000)

+ 4
- 0
src/util/Api.js ファイルの表示

@@ -2,6 +2,10 @@
2 2
 const prefix = '/api'
3 3
 
4 4
 const $api = {
5
+  AliShiMingRenZheng: { // 支付宝实名认证
6
+    method: 'put',
7
+    url: `${prefix}/app/shop/:id`
8
+  },
5 9
   SendPrize: { // 派奖
6 10
     method: 'put',
7 11
     url: `${prefix}/shop/sent-award/order/:id`

+ 3
- 1
src/util/PublicMethod.js ファイルの表示

@@ -1,6 +1,8 @@
1 1
 /* eslint-disable */
2 2
 import Axios from 'axios'
3 3
 import qs from 'qs'
4
+import { APIBase } from '@/util/constant'
5
+
4 6
 const ToolClass = {
5 7
   ReplaceURLParams (url, params) {
6 8
     const args = { ...(params || {}), org: 'MQ' }
@@ -37,7 +39,7 @@ const ToolClass = {
37 39
       url: Url,
38 40
       data: Data,
39 41
       headers: { ...Header },
40
-      baseURL: process.env.NODE_ENV === 'production' ? 'http://api.xnsport.cn/' : '/'
42
+      baseURL: APIBase
41 43
     }
42 44
     Axios({ ...aParams }).then(res => {
43 45
       const token = res.headers['X-Authorization-JWT'] || res.headers['x-authorization-jwt'] || res.headers['X-AUTHORIZATION-JWT']

+ 2
- 0
src/util/constant.js ファイルの表示

@@ -0,0 +1,2 @@
1
+
2
+export const APIBase = process.env.NODE_ENV === 'production' ? 'https://api.xnsport.cn/' : '/'