wangfei před 6 roky
rodič
revize
80f85a6977
7 změnil soubory, kde provedl 164 přidání a 79 odebrání
  1. 6
    3
      config/index.js
  2. 87
    74
      src/pages/index.vue
  3. 3
    1
      src/store/index.js
  4. 29
    0
      src/store/news/index.js
  5. 29
    0
      src/store/page/index.js
  6. 2
    1
      src/util/ajax.js
  7. 8
    0
      src/util/api.js

+ 6
- 3
config/index.js Zobrazit soubor

@@ -11,15 +11,18 @@ module.exports = {
11 11
     assetsSubDirectory: 'static',
12 12
     assetsPublicPath: '/',
13 13
     proxyTable: {
14
-      '/app-api': {
15
-        target: 'http://101.132.102.231:8085',
14
+      '/api': {
15
+        target: 'http://localhost:8080',
16 16
         changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
17
+        pathRewrite: {
18
+          '^/api': '/'
19
+        },
17 20
       },
18 21
     },
19 22
 
20 23
     // Various Dev Server settings
21 24
     host: '0.0.0.0', // can be overwritten by process.env.HOST
22
-    port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
25
+    port: 8082, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
23 26
     autoOpenBrowser: false,
24 27
     errorOverlay: true,
25 28
     notifyOnErrors: true,

+ 87
- 74
src/pages/index.vue Zobrazit soubor

@@ -38,11 +38,11 @@
38 38
         <div class="flex-item">
39 39
           <div>
40 40
             <div class="centerLabel notice">
41
-              <h1>{{timeNum}}</h1>
42
-              <span>阿克苏娜LDNA索拉卡DNASDLK安山东济南加上大陆上的那家里电脑安静店里看到埃里克的加快了升级卡了多久啊啦拉开觉得苦辣加大了肯德基案例卡的昆仑决ad卡拉胶的拉客的加快了升级阿卡丽</span>
41
+              <span v-html="(showNew.content || '').replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ')">
42
+              </span>
43 43
               <div>
44
-                <span>通知人</span>
45
-                <span>2019年2月22日</span>
44
+                <span>{{showNew.publisher}}</span>
45
+                <span>{{FormatDate(showNew.publishDate, 'yyyy年MM月dd日')}}</span>
46 46
               </div>
47 47
             </div>
48 48
           </div>
@@ -50,15 +50,24 @@
50 50
       </div>
51 51
       <div class="flex-item">
52 52
         <div :hidden="!showSlide">
53
-          <swiper :options="swiperOption" ref="mySwiper">
54
-            <swiper-slide class="swiper-slide" v-for="(item, index) in 5" :key="index">
53
+          <!-- <swiper :options="swiperOption" ref="mySwiper">
54
+            <swiper-slide class="swiper-slide" v-for="(item, index) in 1" :key="index">
55 55
               <img
56 56
                 class="centerLabel cover"
57 57
                 src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1550835899076&di=3f786b46cffb6956608e66421b2ec859&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Fe4dde71190ef76c66c3378239716fdfaae5167d1.jpg"
58 58
                 alt
59 59
               >
60 60
             </swiper-slide>
61
-          </swiper>
61
+          </swiper> -->
62
+          <img
63
+            v-if="showPage.showType === 'image'"
64
+            class="centerLabel cover"
65
+            :src="'api' + showPage.showContent"
66
+            alt
67
+          >
68
+          <video v-if="showPage.showType === 'video'" width="100%" height="100%" controls="controls" autoplay muted loop>
69
+            <source :src="'api' + showPage.showContent" type="video/mp4" />
70
+          </video>
62 71
         </div>
63 72
         <div :hidden="showSlide">
64 73
           <ul class="centerLabel userList">
@@ -79,6 +88,10 @@ import 'swiper/dist/css/swiper.css'
79 88
 import { swiper, swiperSlide } from 'vue-awesome-swiper'
80 89
 import solarLunar from 'solarLunar'
81 90
 const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
91
+
92
+const { mapState: mapPageState, mapActions: mapPageActions } = createNamespacedHelpers('page')
93
+
94
+const { mapState: mapNewsState, mapActions: mapNewsActions } = createNamespacedHelpers('news')
82 95
 export default {
83 96
   name: 'projectIndex',
84 97
   data () {
@@ -108,6 +121,18 @@ export default {
108 121
     ...mapUserState({
109 122
       weatherInfo: x => x.weatherInfo // 天气信息
110 123
     }),
124
+    ...mapPageState({
125
+      pages: x => x.pages
126
+    }),
127
+    ...mapNewsState({
128
+      news: x => x.news
129
+    }),
130
+    showNew () {
131
+      return ((this.news.data || {}).records || []).filter(x => x.status === 1)[0] || {}
132
+    },
133
+    showPage () {
134
+      return ((this.pages.data || {}).records || []).filter(x => x.status === 1)[0] || {}
135
+    },
111 136
     mySwiper () {
112 137
       return this.$refs.mySwiper.swiper
113 138
     },
@@ -124,73 +149,17 @@ export default {
124 149
     window.setInterval(() => {
125 150
       this.init()
126 151
     }, 1000)
127
-    // this.getWeatherInfo({
128
-    //   city: '110101',
129
-    //   key: '1c57a8a9ba3fd1a2afcac167dec97be1'
130
-    // })
131
-    window.setTimeout(() => {
132
-      this.returnUserList({
133
-        firstName: '111',
134
-        gender: '0',
135
-        show: false
136
-      })
137
-    }, 1000)
138
-    window.setTimeout(() => {
139
-      this.returnUserList({
140
-        firstName: '222',
141
-        gender: '1',
142
-        show: false
143
-      })
144
-    }, 4000)
145
-    window.setTimeout(() => {
146
-      this.returnUserList({
147
-        firstName: '333',
148
-        gender: '1',
149
-        show: false
150
-      })
151
-    }, 8000)
152
-    window.setTimeout(() => {
153
-      this.returnUserList({
154
-        firstName: '444',
155
-        gender: '1',
156
-        show: false
157
-      })
158
-    }, 12000)
159
-    window.setTimeout(() => {
160
-      this.returnUserList({
161
-        firstName: '555',
162
-        gender: '1',
163
-        show: false
164
-      })
165
-    }, 14000)
166
-    window.setTimeout(() => {
167
-      this.returnUserList({
168
-        firstName: '666',
169
-        gender: '1',
170
-        show: false
171
-      })
172
-    }, 16000)
173
-    window.setTimeout(() => {
174
-      this.returnUserList({
175
-        firstName: '777',
176
-        gender: '1',
177
-        show: false
178
-      })
179
-    }, 19000)
180
-    window.setTimeout(() => {
181
-      this.returnUserList({
182
-        firstName: '888',
183
-        gender: '1',
184
-        show: false
185
-      })
186
-    }, 21000)
187
-    window.setTimeout(() => {
188
-      this.returnUserList({
189
-        firstName: '999',
190
-        gender: '1',
191
-        show: false
192
-      })
193
-    }, 24000)
152
+    this.getInitData()
153
+    window.setInterval(() => {
154
+      this.getInitData()
155
+    }, 3600)
156
+    // window.setTimeout(() => {
157
+    //   this.returnUserList({
158
+    //     firstName: '999',
159
+    //     gender: '1',
160
+    //     show: false
161
+    //   })
162
+    // }, 24000)
194 163
   },
195 164
   mounted () {
196 165
     this.$nextTick(() => {
@@ -200,6 +169,12 @@ export default {
200 169
     ...mapUserActions([
201 170
       'getWeatherInfo'
202 171
     ]),
172
+    ...mapPageActions([
173
+      'getPagesList'
174
+    ]),
175
+    ...mapNewsActions([
176
+      'getNewsList'
177
+    ]),
203 178
     returnUserList (item) { // 返回用户信息
204 179
       this.showSlide = false
205 180
       window.clearInterval(this.timer)
@@ -229,6 +204,44 @@ export default {
229 204
         this.currentTimeTamp = Date.now()
230 205
       }
231 206
     },
207
+    getInitData () {
208
+      this.getPagesList({
209
+        pageNum: 1,
210
+        pageSize: 100
211
+      })
212
+      this.getNewsList({
213
+        pageNum: 1,
214
+        pageSize: 100
215
+      })
216
+    },
217
+    FormatDate (timestamp, fmt) {
218
+      if (timestamp === '0001-01-01T00:00:00Z') {
219
+        return ''
220
+      }
221
+      if (!fmt) {
222
+        fmt = 'yyyy-MM-dd hh:mm'
223
+      }
224
+
225
+      let date = new Date(timestamp)
226
+      var o = {
227
+        'M+': date.getMonth() + 1,
228
+        'd+': date.getDate(),
229
+        'h+': date.getHours(),
230
+        'm+': date.getMinutes(),
231
+        's+': date.getSeconds(),
232
+        'q+': Math.floor((date.getMonth() + 3) / 3),
233
+        'S': date.getMilliseconds()
234
+      }
235
+      if (/(y+)/.test(fmt)) {
236
+        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
237
+      }
238
+      for (var k in o) {
239
+        if (new RegExp('(' + k + ')').test(fmt)) {
240
+          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
241
+        }
242
+      }
243
+      return fmt
244
+    },
232 245
     getDate () { // 获取当前时间
233 246
       let currentTime = Date.now()
234 247
       let weekday = ['日', '一', '二', '三', '四', '五', '六']

+ 3
- 1
src/store/index.js Zobrazit soubor

@@ -32,7 +32,9 @@ const store = new Vuex.Store({
32 32
   }
33 33
 })
34 34
 export const modules = {
35
-  user: () => require('./user/index').default
35
+  user: () => require('./user/index').default,
36
+  news: () => require('./news/index').default,
37
+  page: () => require('./page/index').default
36 38
 }
37 39
 
38 40
 Object.keys(modules).forEach((modKey) => {

+ 29
- 0
src/store/news/index.js Zobrazit soubor

@@ -0,0 +1,29 @@
1
+import Ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    news: {}
8
+  },
9
+  mutations: {
10
+    updateList (state, payload) {
11
+      state.news = payload
12
+    }
13
+  },
14
+  actions: {
15
+    getNewsList ({ commit }, payload) {
16
+      return new Promise((resolve, reject) => {
17
+        Ajax(api.news.url, {
18
+          method: api.news.method,
19
+          queryData: { ...payload }
20
+        }).then(res => {
21
+          commit('updateList', res)
22
+          resolve(res)
23
+        }).catch((res) => {
24
+          reject(res)
25
+        })
26
+      })
27
+    }
28
+  }
29
+}

+ 29
- 0
src/store/page/index.js Zobrazit soubor

@@ -0,0 +1,29 @@
1
+import Ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    pages: {}
8
+  },
9
+  mutations: {
10
+    updateList (state, payload) {
11
+      state.pages = payload
12
+    }
13
+  },
14
+  actions: {
15
+    getPagesList ({ commit }, payload) {
16
+      return new Promise((resolve, reject) => {
17
+        Ajax(api.pages.url, {
18
+          method: api.pages.method,
19
+          queryData: { ...payload }
20
+        }).then(res => {
21
+          commit('updateList', res)
22
+          resolve(res)
23
+        }).catch((res) => {
24
+          reject(res)
25
+        })
26
+      })
27
+    }
28
+  }
29
+}

+ 2
- 1
src/util/ajax.js Zobrazit soubor

@@ -9,7 +9,8 @@ const Axios = axios.create({
9 9
   urlData: {},
10 10
   headers: {
11 11
     'Content-Type': 'application/json',
12
-    'X-Auth-Token': ''
12
+    'X-Auth-Token': '',
13
+    'hk-from': 'DP'
13 14
   }
14 15
 })
15 16
 

+ 8
- 0
src/util/api.js Zobrazit soubor

@@ -3,6 +3,14 @@ const $api = {
3 3
   getWeatherInfo: { // 获取天气信息
4 4
     method: 'get',
5 5
     url: `https://restapi.amap.com/v3/weather/weatherInfo?parameters`
6
+  },
7
+  news: {
8
+    method: 'get',
9
+    url: `/api/notices`
10
+  },
11
+  pages: {
12
+    method: 'get',
13
+    url: `/api/firsts`
6 14
   }
7 15
 }
8 16