1002884655 преди 4 години
родител
ревизия
ce8b029ac8
променени са 10 файла, в които са добавени 162 реда и са изтрити 21 реда
  1. 5
    5
      config/index.js
  2. 42
    4
      package-lock.json
  3. 2
    0
      package.json
  4. 23
    3
      src/pages/index.vue
  5. 11
    1
      src/pages/index/ShouYe/index.vue
  6. 12
    0
      src/pages/page.scss
  7. 10
    2
      src/store/index/index.js
  8. 10
    2
      src/store/user/index.js
  9. 6
    2
      src/util/Api.js
  10. 41
    2
      src/util/PublicMethod.js

+ 5
- 5
config/index.js Целия файл

@@ -11,11 +11,11 @@ module.exports = {
11 11
     assetsSubDirectory: 'static',
12 12
     assetsPublicPath: '/',
13 13
     proxyTable: {
14
-      // '/api': {
15
-      //   target: 'http://114.67.101.226:8080',
16
-      //   changeOrigin: false, // 如果接口跨域,需要进行这个参数配置
17
-      //   pathRewrite: { '^/api': '' }
18
-      // },
14
+      '/api': {
15
+        target: 'http://123.57.65.31:9004',
16
+        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
17
+        pathRewrite: { '^/api': '/api' }
18
+      }
19 19
       // '/app-api': {
20 20
       //   target: 'http://ycapi.jcjyhn.com',
21 21
       //   changeOrigin: true, // 如果接口跨域,需要进行这个参数配置

+ 42
- 4
package-lock.json Целия файл

@@ -219,6 +219,15 @@
219 219
       "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
220 220
       "dev": true
221 221
     },
222
+    "MD5": {
223
+      "version": "1.3.0",
224
+      "resolved": "https://registry.npm.taobao.org/MD5/download/MD5-1.3.0.tgz",
225
+      "integrity": "sha1-PMJm8Oiau2tDpQ85pFnfW/3gskA=",
226
+      "requires": {
227
+        "charenc": ">= 0.0.1",
228
+        "crypt": ">= 0.0.1"
229
+      }
230
+    },
222 231
     "abab": {
223 232
       "version": "2.0.0",
224 233
       "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -2103,6 +2112,12 @@
2103 2112
           "requires": {
2104 2113
             "safer-buffer": ">= 2.1.2 < 3"
2105 2114
           }
2115
+        },
2116
+        "qs": {
2117
+          "version": "6.5.2",
2118
+          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
2119
+          "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
2120
+          "dev": true
2106 2121
         }
2107 2122
       }
2108 2123
     },
@@ -2510,6 +2525,11 @@
2510 2525
       "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
2511 2526
       "dev": true
2512 2527
     },
2528
+    "charenc": {
2529
+      "version": "0.0.2",
2530
+      "resolved": "https://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz",
2531
+      "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
2532
+    },
2513 2533
     "check-types": {
2514 2534
       "version": "7.4.0",
2515 2535
       "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
@@ -3272,6 +3292,11 @@
3272 3292
         "which": "^1.2.9"
3273 3293
       }
3274 3294
     },
3295
+    "crypt": {
3296
+      "version": "0.0.2",
3297
+      "resolved": "https://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz",
3298
+      "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
3299
+    },
3275 3300
     "crypto-browserify": {
3276 3301
       "version": "3.12.0",
3277 3302
       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
@@ -4898,6 +4923,12 @@
4898 4923
         "vary": "~1.1.2"
4899 4924
       },
4900 4925
       "dependencies": {
4926
+        "qs": {
4927
+          "version": "6.5.2",
4928
+          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
4929
+          "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
4930
+          "dev": true
4931
+        },
4901 4932
         "statuses": {
4902 4933
           "version": "1.4.0",
4903 4934
           "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
@@ -11928,10 +11959,9 @@
11928 11959
       "dev": true
11929 11960
     },
11930 11961
     "qs": {
11931
-      "version": "6.5.2",
11932
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
11933
-      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
11934
-      "dev": true
11962
+      "version": "6.9.4",
11963
+      "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz",
11964
+      "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc="
11935 11965
     },
11936 11966
     "query-string": {
11937 11967
       "version": "4.3.4",
@@ -12610,6 +12640,14 @@
12610 12640
         "tough-cookie": "~2.4.3",
12611 12641
         "tunnel-agent": "^0.6.0",
12612 12642
         "uuid": "^3.3.2"
12643
+      },
12644
+      "dependencies": {
12645
+        "qs": {
12646
+          "version": "6.5.2",
12647
+          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
12648
+          "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
12649
+          "dev": true
12650
+        }
12613 12651
       }
12614 12652
     },
12615 12653
     "request-promise-core": {

+ 2
- 0
package.json Целия файл

@@ -14,9 +14,11 @@
14 14
     "build": "node build/build.js"
15 15
   },
16 16
   "dependencies": {
17
+    "MD5": "^1.3.0",
17 18
     "axios": "^0.18.0",
18 19
     "exports-loader": "^0.7.0",
19 20
     "js-md5": "^0.7.3",
21
+    "qs": "^6.9.4",
20 22
     "script-loader": "^0.7.2",
21 23
     "vue": "^2.5.2",
22 24
     "vue-amap": "^0.5.10",

+ 23
- 3
src/pages/index.vue Целия файл

@@ -13,7 +13,9 @@
13 13
 
14 14
     <!-- 内容 -->
15 15
     <div class="MainBody flex-item">
16
-      <router-view></router-view>
16
+      <div>
17
+        <router-view></router-view>
18
+      </div>
17 19
     </div>
18 20
 
19 21
     <!-- tabbar -->
@@ -30,11 +32,14 @@
30 32
 </template>
31 33
 
32 34
 <script>
33
-import { mapState, mapMutations } from 'vuex'
35
+import md5 from 'js-md5'
36
+import { mapState, mapMutations, createNamespacedHelpers } from 'vuex'
37
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
34 38
 export default {
35 39
   name: '',
36 40
   data () {
37 41
     return {
42
+      Timer: null
38 43
     }
39 44
   },
40 45
   computed: {
@@ -49,6 +54,9 @@ export default {
49 54
       MainPaddingTop: x => x.MainPaddingTop, // 页面padding-top(不与系统顶部时间栏重叠)
50 55
       MainPaddingBottom: x => x.MainPaddingBottom, // 页面padding-bottom(不与系统底部返回栏重叠)
51 56
       MainHeaderTitle: x => x.MainHeaderTitle // 页面title
57
+    }),
58
+    ...mapUserState({
59
+      UserInfo: x => x.UserInfo // 用户信息
52 60
     })
53 61
   },
54 62
   components: {
@@ -58,12 +66,24 @@ export default {
58 66
   },
59 67
   mounted () {
60 68
     this.$nextTick(() => {
69
+      this.Init()
61 70
     })
62 71
   },
63 72
   methods: {
64 73
     ...mapMutations([
65 74
       'EditMainData'
66
-    ])
75
+    ]),
76
+    ...mapUserActions([
77
+      'SignIn'
78
+    ]),
79
+    Init () { // 初始化
80
+      this.SignIn({ data: { password: md5('123456'), userName: '17714208769' } }).then(() => { // 登录
81
+        if (this.UserInfo === null) {
82
+          this.$router.push({ name: 'SignIn' })
83
+        }
84
+      }).catch(() => {
85
+      })
86
+    }
67 87
   }
68 88
 }
69 89
 </script>

+ 11
- 1
src/pages/index/ShouYe/index.vue Целия файл

@@ -62,7 +62,8 @@
62 62
 
63 63
 <script>
64 64
 import Banner from '../../../components/index/Banner'
65
-import { mapMutations } from 'vuex'
65
+import { mapMutations, createNamespacedHelpers } from 'vuex'
66
+const { mapState: mapIndexState, mapActions: mapIndexActions } = createNamespacedHelpers('index')
66 67
 export default {
67 68
   name: 'index',
68 69
   data () {
@@ -84,6 +85,8 @@ export default {
84 85
     }
85 86
   },
86 87
   computed: {
88
+    ...mapIndexState({
89
+    })
87 90
   },
88 91
   components: {
89 92
     Banner
@@ -99,6 +102,7 @@ export default {
99 102
       { name: 'MainTabBarActiveId', value: 1 },
100 103
       { name: 'ShowMainHeaderBack', value: false }
101 104
     ])
105
+    this.Init()
102 106
   },
103 107
   mounted () {
104 108
     this.$nextTick(() => {
@@ -108,6 +112,12 @@ export default {
108 112
     ...mapMutations([
109 113
       'EditMainData' // 配置页面框架数据
110 114
     ]),
115
+    ...mapIndexActions([
116
+      'GetBanner'
117
+    ]),
118
+    Init () {
119
+      this.GetBanner({ queryData: { pageNum: 1, pageSize: 10, status: 1, adType: 'app-index-banner' } })
120
+    },
111 121
     Refresh (done) { // 页面下拉刷新
112 122
       window.setTimeout(() => {
113 123
         done()

+ 12
- 0
src/pages/page.scss Целия файл

@@ -41,6 +41,18 @@
41 41
       }
42 42
     }
43 43
   }
44
+  > .MainBody {
45
+    position: relative;
46
+    overflow: hidden;
47
+    > div {
48
+      position: absolute;
49
+      width: 100%;
50
+      position: absolute;
51
+      left: 0;
52
+      top: 0;
53
+      bottom: 0;
54
+    }
55
+  }
44 56
   > .TabBar {
45 57
     align-items: center;
46 58
     border-top: 0.01rem solid #f7f7f7;

+ 10
- 2
src/store/index/index.js Целия файл

@@ -1,6 +1,6 @@
1 1
 
2
-// import Api from '../../util/Api'
3
-// import ToolClass from '../../util/PublicMethod'
2
+import Api from '../../util/Api'
3
+import ToolClass from '../../util/PublicMethod'
4 4
 export default {
5 5
   namespaced: true,
6 6
   state: {
@@ -16,7 +16,15 @@ export default {
16 16
     ]
17 17
   },
18 18
   mutations: {
19
+    UpdateBanner (state, data) { // 更新banner
20
+      console.log(data)
21
+    }
19 22
   },
20 23
   actions: {
24
+    GetBanner (context, payload) { // 获取banner
25
+      return new Promise((resolve, reject) => {
26
+        ToolClass.Axios(resolve, reject, Api.GetBanner, context, payload, 1000, 'UpdateBanner')
27
+      })
28
+    }
21 29
   }
22 30
 }

+ 10
- 2
src/store/user/index.js Целия файл

@@ -1,6 +1,6 @@
1 1
 
2
-// import Api from '../../util/Api'
3
-// import ToolClass from '../../util/PublicMethod'
2
+import Api from '../../util/Api'
3
+import ToolClass from '../../util/PublicMethod'
4 4
 export default {
5 5
   namespaced: true,
6 6
   state: {
@@ -36,7 +36,15 @@ export default {
36 36
     }
37 37
   },
38 38
   mutations: {
39
+    UpdateUserInfo (state, data) { // 更新用户信息
40
+      state.UserInfo = data || null
41
+    }
39 42
   },
40 43
   actions: {
44
+    SignIn (context, payload) { // 登录
45
+      return new Promise((resolve, reject) => {
46
+        ToolClass.Axios(resolve, reject, Api.SignIn, context, payload, 1000, 'UpdateUserInfo')
47
+      })
48
+    }
41 49
   }
42 50
 }

+ 6
- 2
src/util/Api.js Целия файл

@@ -2,9 +2,13 @@
2 2
 const prefix = process.env.NODE_ENV === 'production' ? '' : '/api'
3 3
 
4 4
 const $api = {
5
-  ModifyDailyStatus: { // 修改动态状态
5
+  SignIn: { // 登录
6 6
     method: 'post',
7
-    url: `${prefix}/business/daily/modifyStatus`
7
+    url: `${prefix}/app/login`
8
+  },
9
+  GetBanner: { // 获取banner
10
+    method: 'get',
11
+    url: `${prefix}/app/ad`
8 12
   }
9 13
 }
10 14
 

+ 41
- 2
src/util/PublicMethod.js Целия файл

@@ -1,12 +1,51 @@
1 1
 /* eslint-disable */
2 2
 import Axios from 'axios'
3
+import qs from 'qs'
3 4
 const ToolClass = {
5
+  TimeOut (callback) {
6
+    if (window.InitTimer === undefined) window.InitTimer = null
7
+    window.clearTimeout(window.InitTimer)
8
+    window.InitTimer = window.setTimeout(() => {
9
+      window.clearTimeout(window.InitTimer)
10
+      callback()
11
+    }, 300)
12
+  },
13
+  ReplaceURLParams (url, params) {
14
+    const args = { ...(params || {}), org: 'MQ' }
15
+    return Object.keys(args).reduce((acc, k) => { // 此方法对每个元素进行处理
16
+      const re = new RegExp(`:${k}(?!w)`, 'i')
17
+      return acc.replace(re, args[k])
18
+    }, url)
19
+  },
4 20
   Axios (resolve, reject, target, context, payload = {}, code = 0, commit = null, params = null, hasdata = false) { // Axios
21
+    let Data = null
22
+    let Url = null
23
+    if (payload.urlData !== undefined) {
24
+      Url = this.ReplaceURLParams(target.url, payload.urlData)
25
+    } else {
26
+      Url = target.url
27
+    }
28
+    if (payload.queryData !== undefined) {
29
+      Url += '?' + qs.stringify(payload.queryData)
30
+    }
31
+    if (payload.data !== undefined) {
32
+      Data = payload.data
33
+    }
34
+    let Header = {}
35
+    if (window.localStorage.Jwt !== undefined && window.localStorage.JwtTime !== undefined && window.localStorage.JwtTime + 24 * 60 * 60 * 1000 >= Date.now()) { // 本地获取token
36
+      Header['x-authorization-jwt'] = window.localStorage.Jwt
37
+    }
5 38
     Axios({
6 39
       method: target.method,
7
-      url: target.url,
8
-      ...payload
40
+      url: Url,
41
+      data: { ...Data },
42
+      headers: { ...Header }
9 43
     }).then(res => {
44
+      const token = res.headers['x-authorization-jwt']
45
+      if (token) { // 更新本地存储token
46
+        window.localStorage.Jwt = token
47
+        window.localStorage.JwtTime = Date.now()
48
+      }
10 49
       if (res.data.code - 0 === code - 0) {
11 50
         if (commit !== null) {
12 51
           context.commit(commit, params === null ? res.data.data : hasdata ? { ...params, data: res.data.data } : params)