소스 검색

静态页面

XuChengxiang 4 년 전
부모
커밋
e0f18da916

+ 4
- 7
.eslintrc.js 파일 보기

@@ -1,24 +1,21 @@
1 1
 // https://eslint.org/docs/user-guide/configuring
2
-
3 2
 module.exports = {
4 3
   root: true,
5 4
   parserOptions: {
6 5
     parser: 'babel-eslint'
7 6
   },
8 7
   env: {
9
-    browser: true,
8
+    browser: true
10 9
   },
11 10
   extends: [
12 11
     // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
13 12
     // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
14
-    'plugin:vue/essential', 
13
+    'plugin:vue/essential',
15 14
     // https://github.com/standard/standard/blob/master/docs/RULES-en.md
16 15
     'standard'
17 16
   ],
18 17
   // required to lint *.vue files
19
-  plugins: [
20
-    'vue'
21
-  ],
18
+  plugins: ['vue'],
22 19
   // add your custom rules here
23 20
   rules: {
24 21
     // allow async-await
@@ -26,4 +23,4 @@ module.exports = {
26 23
     // allow debugger during development
27 24
     'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
28 25
   }
29
-}
26
+}

+ 10
- 0
config/index.js 파일 보기

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

+ 20
- 0
package-lock.json 파일 보기

@@ -2585,6 +2585,11 @@
2585 2585
       "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
2586 2586
       "dev": true
2587 2587
     },
2588
+    "charenc": {
2589
+      "version": "0.0.2",
2590
+      "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
2591
+      "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
2592
+    },
2588 2593
     "check-types": {
2589 2594
       "version": "7.4.0",
2590 2595
       "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
@@ -3347,6 +3352,11 @@
3347 3352
         "which": "^1.2.9"
3348 3353
       }
3349 3354
     },
3355
+    "crypt": {
3356
+      "version": "0.0.2",
3357
+      "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
3358
+      "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
3359
+    },
3350 3360
     "crypto-browserify": {
3351 3361
       "version": "3.12.0",
3352 3362
       "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
@@ -8414,6 +8424,16 @@
8414 8424
       "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
8415 8425
       "dev": true
8416 8426
     },
8427
+    "md5": {
8428
+      "version": "2.3.0",
8429
+      "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
8430
+      "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
8431
+      "requires": {
8432
+        "charenc": "0.0.2",
8433
+        "crypt": "0.0.2",
8434
+        "is-buffer": "~1.1.6"
8435
+      }
8436
+    },
8417 8437
     "md5.js": {
8418 8438
       "version": "1.3.5",
8419 8439
       "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",

+ 1
- 0
package.json 파일 보기

@@ -17,6 +17,7 @@
17 17
     "axios": "^0.18.0",
18 18
     "exports-loader": "^0.7.0",
19 19
     "js-md5": "^0.7.3",
20
+    "md5": "^2.3.0",
20 21
     "script-loader": "^0.7.2",
21 22
     "vant": "^2.10.3",
22 23
     "vue": "^2.5.2",

+ 167
- 0
src/components/common/MainPageContainer/index.vue 파일 보기

@@ -0,0 +1,167 @@
1
+<template>
2
+  <div class="components MainPageContainer flex-v">
3
+
4
+    <!-- 头部 -->
5
+    <div class="MainHeaderPadding" v-if="ShowMainHeader" :style="{height: `${MainPaddingTop}px`}"></div>
6
+    <div class="MainHeader flex-h" v-if="ShowMainHeader">
7
+      <a class="MainBack iconfont iconjiantouleft" v-if="ShowMainHeaderBack" @click="$router.back(-1)"></a>
8
+      <span class="MainTitle">
9
+        <span @click="MainTitleClick()">{{MainHeaderTitle}}</span>
10
+        <a class="iconfont iconjiantoudown" @click="MainTitleClick()" v-if="ShowMainTitleIcon"></a>
11
+      </span>
12
+      <a class="MainHeaderMore" v-if="ShowMainHeaderMore" @click="MainHeaderMoreClick">
13
+        <span>{{MainHeaderMoreText}}</span>
14
+        <i class="iconfont" v-if="MainHeaderMoreIcon !== ''" :class="MainHeaderMoreIcon"></i>
15
+      </a>
16
+    </div>
17
+
18
+    <!-- 内容 -->
19
+    <div class="MainBody flex-item">
20
+      <div>
21
+        <slot></slot>
22
+      </div>
23
+    </div>
24
+
25
+    <!-- tabbar -->
26
+    <div class="TabBar flex-h" :style="{paddingBottom: `${MainPaddingBottom}px`}" v-if="ShowMainTabBar">
27
+      <div class="flex-item" v-for="(item, index) in MainTabBar" :key="index">
28
+        <router-link :to="{name: item.router}" :class="{'active': item.id === MainTabBarActiveId}">
29
+          <i class="iconfont" :class="item.icon"></i>
30
+          <span>{{item.name}}</span>
31
+        </router-link>
32
+      </div>
33
+    </div>
34
+
35
+  </div>
36
+</template>
37
+
38
+<script>
39
+/*
40
+  页面名称:
41
+*/
42
+import md5 from 'js-md5'
43
+import { mapActions, mapMutations, createNamespacedHelpers } from 'vuex'
44
+const { mapState: mapUserState, mapActions: mapUserActions } = createNamespacedHelpers('user')
45
+export default {
46
+  name: 'MainPageContainer',
47
+  props: {
48
+    ShowMainHeaderMore: {
49
+      default: false,
50
+      type: Boolean
51
+    },
52
+    ShowMainHeaderRight: { // 显隐头部右边选项
53
+      default: false,
54
+      type: Boolean
55
+    },
56
+    MainHeaderMoreIcon: { // 头部右边选项图标
57
+      default: null,
58
+      type: String
59
+    },
60
+    MainHeaderMoreText: { // 头部右边选项文本
61
+      default: null,
62
+      type: String
63
+    },
64
+    MainHeaderMoreClick: { // 头部右边选项点击事件
65
+      default: () => { },
66
+      type: Function
67
+    },
68
+    MainTitleClick: { // 页面标题点击事件
69
+      default: () => { },
70
+      type: Function
71
+    },
72
+    ShowMainTitleIcon: { // 显隐页面标题箭头图标
73
+      default: false,
74
+      type: Boolean
75
+    },
76
+    ShowMainHeaderBack: { // 显隐头部返回按钮
77
+      default: false,
78
+      type: Boolean
79
+    },
80
+    MainTabBar: { // tabbar列表
81
+      default: () => {
82
+        return [
83
+          { name: '彩单管理', icon: 'iconcaidanguanli', id: 1, router: 'CaiDanGuanLi' },
84
+          { name: '彩民管理', icon: 'iconyonghuguanli', id: 2, router: 'CaiMinGuanLi' },
85
+          { name: '个人中心', icon: 'icongerenzhongxin', id: 3, router: 'WoDe' }
86
+        ]
87
+      },
88
+      type: Array
89
+    },
90
+    MainTabBarActiveId: { // tabbar选中id
91
+      default: null,
92
+      type: Number
93
+    },
94
+    ShowMainHeader: { // 显隐页面头部
95
+      default: false,
96
+      type: Boolean
97
+    },
98
+    ShowMainTabBar: { // 显隐页面tabbar
99
+      default: false,
100
+      type: Boolean
101
+    },
102
+    MainPaddingTop: { // 页面padding-top(不与系统顶部时间栏重叠)
103
+      default: null,
104
+      type: Number
105
+    },
106
+    MainPaddingBottom: { // 页面padding-bottom(不与系统底部返回栏重叠)
107
+      default: null,
108
+      type: Number
109
+    },
110
+    MainHeaderTitle: { // 页面title
111
+      default: null,
112
+      type: String
113
+    }
114
+  },
115
+  data () {
116
+    return {
117
+    }
118
+  },
119
+  computed: {
120
+    ...mapUserState({
121
+      UserInfo: x => x.UserInfo // 用户信息
122
+    })
123
+  },
124
+  components: {
125
+  },
126
+  created () {
127
+    this.Init()
128
+  },
129
+  mounted () {
130
+    this.$nextTick(() => {
131
+    })
132
+  },
133
+  methods: {
134
+    ...mapActions([
135
+      ''
136
+    ]),
137
+    ...mapMutations([
138
+      ''
139
+    ]),
140
+    ...mapUserActions([
141
+      'SignIn'
142
+    ]),
143
+    Init () { // 初始化
144
+      if (this.UserInfo === null) {
145
+        if (window.localStorage.niucaiadminname && window.localStorage.niucaiadminpassword) {
146
+          this.SignIn({ data: { password: md5(window.localStorage.niucaiadminpassword), userName: window.localStorage.niucaiadminname } }).then(() => { // 登录
147
+            if (this.UserInfo === null) {
148
+              // this.$router.push({ name: 'SignIn' })
149
+            } else {
150
+              this.$emit('UserInfoChange')
151
+            }
152
+          }).catch(() => {
153
+            // this.$router.push({ name: 'SignIn' })
154
+          })
155
+        } else {
156
+          // this.$router.push({ name: 'SignIn' })
157
+        }
158
+      }
159
+    }
160
+  }
161
+}
162
+</script>
163
+
164
+<!-- Add "scoped" attribute to limit CSS to this component only -->
165
+<style lang="scss" scoped>
166
+@import "page.scss";
167
+</style>

+ 108
- 0
src/components/common/MainPageContainer/page.scss 파일 보기

@@ -0,0 +1,108 @@
1
+.components.MainPageContainer {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  overflow: hidden;
6
+  > .MainHeaderPadding {
7
+    position: relative;
8
+    overflow: hidden;
9
+    background: #d91d36;
10
+  }
11
+  > .MainHeader {
12
+    position: relative;
13
+    overflow: hidden;
14
+    background: #d91d36;
15
+    > .MainTitle {
16
+      width: 100%;
17
+      display: block;
18
+      text-align: center;
19
+      height: 0.4rem;
20
+      white-space: nowrap;
21
+      position: relative;
22
+      z-index: 1;
23
+      > * {
24
+        display: inline-block;
25
+        vertical-align: middle;
26
+        line-height: 0.4rem;
27
+        font-size: 0.17rem;
28
+        color: #fff;
29
+      }
30
+    }
31
+    > a {
32
+      display: inline-block;
33
+      position: absolute;
34
+      z-index: 2;
35
+      color: #fff;
36
+      &.MainBack {
37
+        font-size: 0.18rem;
38
+        line-height: 0.4rem;
39
+        top: 0;
40
+        left: 0.15rem;
41
+      }
42
+      &.MainHeaderMore {
43
+        right: 0.15rem;
44
+        top: 0;
45
+        font-size: 0;
46
+        white-space: nowrap;
47
+        > span {
48
+          font-size: 0.12rem;
49
+          line-height: 0.4rem;
50
+          height: 0.4rem;
51
+          display: inline-block;
52
+          vertical-align: middle;
53
+          color: #fff;
54
+        }
55
+        > i {
56
+          font-size: 0.16rem;
57
+          line-height: 0.22rem;
58
+          display: inline-block;
59
+          vertical-align: middle;
60
+          color: #fff;
61
+          width: 0.22rem;
62
+          text-align: center;
63
+          background: rgba(255, 255, 255, 0.3);
64
+          border-radius: 100%;
65
+          margin-left: 0.05rem;
66
+        }
67
+      }
68
+    }
69
+  }
70
+  >.MainBody {
71
+    position: relative;
72
+    overflow: hidden;
73
+    >div {
74
+      position: absolute;
75
+      left: 0;
76
+      width: 100%;
77
+      top: 0;
78
+      bottom: 0;
79
+    }
80
+  }
81
+  > .TabBar {
82
+    align-items: center;
83
+    border-top: 0.01rem solid #f7f7f7;
84
+    > div {
85
+      text-align: center;
86
+      font-size: 0;
87
+      > a {
88
+        display: inline-block;
89
+        padding: 0.05rem 0;
90
+        &.active {
91
+          > * {
92
+            color: #d91d36;
93
+          }
94
+        }
95
+        > * {
96
+          display: block;
97
+          line-height: 0.2rem;
98
+          text-align: center;
99
+          font-size: 0.13rem;
100
+          color: #656565;
101
+        }
102
+        > i {
103
+          font-size: 0.2rem;
104
+        }
105
+      }
106
+    }
107
+  }
108
+}

+ 2
- 52
src/pages/index.vue 파일 보기

@@ -1,40 +1,10 @@
1 1
 <template>
2
-  <div class="MainPage flex-v">
3
-
4
-    <!-- 头部 -->
5
-    <div class="MainHeaderPadding" v-if="ShowMainHeader" :style="{height: `${MainPaddingTop}px`}"></div>
6
-    <div class="MainHeader flex-h" v-if="ShowMainHeader">
7
-      <a class="MainBack iconfont iconjiantouleft" v-if="ShowMainHeaderBack" @click="$router.back(-1)"></a>
8
-      <span class="MainTitle">
9
-        <span @click="MainTitleClick()">{{MainHeaderTitle}}</span>
10
-        <a class="iconfont iconjiantoudown" @click="MainTitleClick()" v-if="ShowMainTitleIcon"></a>
11
-      </span>
12
-      <a class="MainHeaderMore" v-if="ShowMainHeaderMore" @click="MainHeaderMoreClick">
13
-        <span>{{MainHeaderMoreText}}</span>
14
-        <i class="iconfont" v-if="MainHeaderMoreIcon !== ''" :class="MainHeaderMoreIcon"></i>
15
-      </a>
16
-    </div>
17
-
18
-    <!-- 内容 -->
19
-    <div class="MainBody flex-item">
20
-      <router-view></router-view>
21
-    </div>
22
-
23
-    <!-- tabbar -->
24
-    <div class="TabBar flex-h" :style="{paddingBottom: `${MainPaddingBottom}px`}" v-if="ShowMainTabBar">
25
-      <div class="flex-item" v-for="(item, index) in MainTabBar" :key="index">
26
-        <router-link :to="{name: item.router}" :class="{'active': item.id === MainTabBarActiveId}">
27
-          <i class="iconfont" :class="item.icon"></i>
28
-          <span>{{item.name}}</span>
29
-        </router-link>
30
-      </div>
31
-    </div>
32
-
2
+  <div class="MainPage">
3
+    <router-view></router-view>
33 4
   </div>
34 5
 </template>
35 6
 
36 7
 <script>
37
-import { mapState, mapMutations } from 'vuex'
38 8
 export default {
39 9
   name: '',
40 10
   data () {
@@ -42,36 +12,16 @@ export default {
42 12
     }
43 13
   },
44 14
   computed: {
45
-    ...mapState({
46
-      ShowMainHeaderMore: x => x.ShowMainHeaderMore, // 显隐页面头部更多按钮
47
-      MainHeaderMoreText: x => x.MainHeaderMoreText, // 页面头部更多按钮文案
48
-      MainHeaderMoreIcon: x => x.MainHeaderMoreIcon, // 页面头部更多按钮图标
49
-      MainHeaderMoreClick: x => x.MainHeaderMoreClick, // 页面头部更多按钮点击事件
50
-      MainTitleClick: x => x.MainTitleClick, // 页面标题点击事件
51
-      ShowMainTitleIcon: x => x.ShowMainTitleIcon, // 显隐页面标题箭头图标
52
-      ShowMainHeaderBack: x => x.ShowMainHeaderBack, // 显隐头部返回按钮
53
-      MainTabBar: x => x.MainTabBar, // tabbar列表
54
-      MainTabBarActiveId: x => x.MainTabBarActiveId, // tabbar索引值
55
-      ShowMainHeader: x => x.ShowMainHeader, // 显隐页面头部
56
-      ShowMainTabBar: x => x.ShowMainTabBar, // 显隐页面tabbar
57
-      MainPaddingTop: x => x.MainPaddingTop, // 页面padding-top(不与系统顶部时间栏重叠)
58
-      MainPaddingBottom: x => x.MainPaddingBottom, // 页面padding-bottom(不与系统底部返回栏重叠)
59
-      MainHeaderTitle: x => x.MainHeaderTitle // 页面title
60
-    })
61 15
   },
62 16
   components: {
63 17
   },
64 18
   created () {
65
-    this.EditMainData({ name: 'MainPaddingBottom', value: 10 })
66 19
   },
67 20
   mounted () {
68 21
     this.$nextTick(() => {
69 22
     })
70 23
   },
71 24
   methods: {
72
-    ...mapMutations([
73
-      'EditMainData'
74
-    ])
75 25
   }
76 26
 }
77 27
 </script>

+ 50
- 64
src/pages/index/ShouYe/index.vue 파일 보기

@@ -1,61 +1,63 @@
1 1
 <template>
2
-  <div class="Page flex-v">
2
+  <div class="Page">
3
+    <MainPageContainer :MainHeaderTitle="`订单管理`" :MainTabBarActiveId="1" :ShowMainHeader="true" :ShowMainTabBar="true" :ShowMainHeaderMore="true" :MainHeaderMoreIcon="`icondaojishi`" :MainHeaderMoreText="`全部彩种`" :MainHeaderMoreClick="() => { $router.push({ name: 'DingDanChaXun' }) }">
4
+      <div class="PageContainer flex-v">
5
+        <a class="flex-h">
6
+          <i class="iconfont icontongzhi"></i>
7
+          <span class="flex-item">关于彩民端提示风险问题的通知</span>
8
+          <i class="iconfont iconguanbi"></i>
9
+        </a>
3 10
 
4
-    <a class="flex-h">
5
-      <i class="iconfont icontongzhi"></i>
6
-      <span class="flex-item">关于彩民端提示风险问题的通知</span>
7
-      <i class="iconfont iconguanbi"></i>
8
-    </a>
9
-
10
-    <!-- 内容 -->
11
-    <div class="flex-item">
12
-      <div>
13
-        <div class="Content">
14
-          <scroller :on-refresh="Refresh">
15
-            <div class="Container">
16
-              <ul>
17
-                <li v-for="(item, index) in 15" :key="index">
18
-                  <div class="Res">
19
-                    <div class="Num flex-h">
20
-                      <div class="Icon">
21
-                        <img src="../../../assets/img/icon5.png" class="centerLabel contain" alt="">
11
+        <!-- 内容 -->
12
+        <div class="flex-item">
13
+          <div>
14
+            <div class="Content">
15
+              <scroller :on-refresh="Refresh">
16
+                <div class="Container">
17
+                  <ul>
18
+                    <li v-for="(item, index) in 15" :key="index">
19
+                      <div class="Res">
20
+                        <div class="Num flex-h">
21
+                          <div class="Icon">
22
+                            <img src="../../../assets/img/icon5.png" class="centerLabel contain" alt="">
23
+                          </div>
24
+                          <span>双色球</span>
25
+                          <div class="flex-item">
26
+                            <ul>
27
+                              <li>01</li>
28
+                              <li>01</li>
29
+                              <li>01</li>
30
+                              <li>01</li>
31
+                              <li>01</li>
32
+                              <li class="active">01</li>
33
+                              <li class="active">01</li>
34
+                            </ul>
35
+                          </div>
36
+                        </div>
37
+                        <div class="Count flex-h">
38
+                          <span class="flex-item"><em>1</em>注<em>1</em>倍<em>2.00</em>元</span>
39
+                          <span>第202076期</span>
40
+                          <span>2020-08-14 18:43:22</span>
41
+                        </div>
22 42
                       </div>
23
-                      <span>双色球</span>
24
-                      <div class="flex-item">
25
-                        <ul>
26
-                          <li>01</li>
27
-                          <li>01</li>
28
-                          <li>01</li>
29
-                          <li>01</li>
30
-                          <li>01</li>
31
-                          <li class="active">01</li>
32
-                          <li class="active">01</li>
33
-                        </ul>
43
+                      <div class="Time flex-h">
44
+                        <span class="flex-item">截止时间:04:49:26</span>
45
+                        <router-link :to="{ name: 'DingDanXiangQing' }">查看详情</router-link>
34 46
                       </div>
35
-                    </div>
36
-                    <div class="Count flex-h">
37
-                      <span class="flex-item"><em>1</em>注<em>1</em>倍<em>2.00</em>元</span>
38
-                      <span>第202076期</span>
39
-                      <span>2020-08-14 18:43:22</span>
40
-                    </div>
41
-                  </div>
42
-                  <div class="Time flex-h">
43
-                    <span class="flex-item">截止时间:04:49:26</span>
44
-                    <router-link :to="{ name: 'DingDanXiangQing' }">查看详情</router-link>
45
-                  </div>
46
-                </li>
47
-              </ul>
47
+                    </li>
48
+                  </ul>
49
+                </div>
50
+              </scroller>
48 51
             </div>
49
-          </scroller>
52
+          </div>
50 53
         </div>
51 54
       </div>
52
-    </div>
53
-
55
+    </MainPageContainer>
54 56
   </div>
55 57
 </template>
56 58
 
57 59
 <script>
58
-import { mapMutations } from 'vuex'
60
+import MainPageContainer from '../../../components/common/MainPageContainer'
59 61
 export default {
60 62
   name: 'index',
61 63
   data () {
@@ -65,31 +67,15 @@ export default {
65 67
   computed: {
66 68
   },
67 69
   components: {
70
+    MainPageContainer
68 71
   },
69 72
   created () {
70
-    this.EditMainData([ // 配置页面框架数据
71
-      { name: 'MainHeaderMoreIcon', value: 'icondaojishi' },
72
-      { name: 'MainHeaderMoreText', value: '全部彩种' },
73
-      { name: 'ShowMainHeaderMore', value: true },
74
-      { name: 'MainHeaderMoreClick', value: () => { this.$router.push({ name: 'DingDanChaXun' }) } },
75
-      { name: 'MainTitleClick', value: () => { } },
76
-      { name: 'MainHeaderTextColor', value: '#fff' },
77
-      { name: 'ShowMainTitleIcon', value: false },
78
-      { name: 'ShowMainHeader', value: true },
79
-      { name: 'ShowMainTabBar', value: true },
80
-      { name: 'MainHeaderTitle', value: '订单管理' },
81
-      { name: 'MainTabBarActiveId', value: 1 },
82
-      { name: 'ShowMainHeaderBack', value: false }
83
-    ])
84 73
   },
85 74
   mounted () {
86 75
     this.$nextTick(() => {
87 76
     })
88 77
   },
89 78
   methods: {
90
-    ...mapMutations([
91
-      'EditMainData' // 配置页面框架数据
92
-    ]),
93 79
     Refresh (done) { // 页面下拉刷新
94 80
       window.setTimeout(() => {
95 81
         done()

+ 120
- 114
src/pages/index/ShouYe/page.scss 파일 보기

@@ -1,136 +1,142 @@
1 1
 .Page {
2
-  > a.flex-h {
3
-    align-items: center;
4
-    border-bottom: 0.01rem solid #f7f7f7;
5
-    padding: 0 0.15rem;
6
-    > i {
7
-      font-size: 0.15rem;
8
-      color: #999;
9
-      &:first-child {
2
+  .PageContainer {
3
+    width: 100%;
4
+    height: 100%;
5
+    position: relative;
6
+    overflow: hidden;
7
+    > a.flex-h {
8
+      align-items: center;
9
+      border-bottom: 0.01rem solid #f7f7f7;
10
+      padding: 0 0.15rem;
11
+      > i {
12
+        font-size: 0.15rem;
13
+        color: #999;
14
+        &:first-child {
15
+          color: #d91d36;
16
+        }
17
+      }
18
+      > span {
19
+        font-size: 0.1rem;
20
+        line-height: 0.28rem;
10 21
         color: #d91d36;
22
+        margin-left: 0.05rem;
11 23
       }
12 24
     }
13
-    > span {
14
-      font-size: 0.1rem;
15
-      line-height: 0.28rem;
16
-      color: #d91d36;
17
-      margin-left: 0.05rem;
18
-    }
19
-  }
20
-  > .flex-item {
21
-    position: relative;
22
-    > div {
23
-      width: 100%;
24
-      position: absolute;
25
-      left: 0;
26
-      top: 0;
27
-      bottom: 0;
28
-      > .Content {
25
+    > .flex-item {
26
+      position: relative;
27
+      > div {
29 28
         width: 100%;
30
-        height: 100%;
31
-        position: relative;
32
-        overflow: hidden;
33
-        z-index: 2;
34
-        .Container {
29
+        position: absolute;
30
+        left: 0;
31
+        top: 0;
32
+        bottom: 0;
33
+        > .Content {
34
+          width: 100%;
35
+          height: 100%;
35 36
           position: relative;
36
-          padding: 0 0.15rem;
37
-          > ul {
37
+          overflow: hidden;
38
+          z-index: 2;
39
+          .Container {
38 40
             position: relative;
39
-            overflow: visible;
40
-            > li {
41
-              background: #fff;
42
-              border-radius: 0.06rem;
41
+            padding: 0 0.15rem;
42
+            > ul {
43 43
               position: relative;
44
-              box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
45
-              margin-bottom: 0.15rem;
46
-              &:first-child {
47
-                margin-top: 0.15rem;
48
-              }
49
-              > .Res {
44
+              overflow: visible;
45
+              > li {
46
+                background: #fff;
47
+                border-radius: 0.06rem;
50 48
                 position: relative;
51
-                border-bottom: 0.01rem solid #f7f7f7;
52
-                padding: 0.15rem;
53
-                > div.Num {
54
-                  align-items: center;
55
-                  > .Icon {
56
-                    width: 0.4rem;
57
-                    height: 0.4rem;
58
-                    position: relative;
59
-                    overflow: hidden;
60
-                    margin-right: 0.1rem;
61
-                  }
62
-                  > span {
63
-                    width: 0.55rem;
64
-                    font-size: 0.16rem;
65
-                    font-weight: bold;
66
-                    line-height: 0.2rem;
67
-                    margin-right: 0.1rem;
49
+                box-shadow: 0 0 0.02rem 0.02rem rgba(0, 0, 0, 0.05);
50
+                margin-bottom: 0.15rem;
51
+                &:first-child {
52
+                  margin-top: 0.15rem;
53
+                }
54
+                > .Res {
55
+                  position: relative;
56
+                  border-bottom: 0.01rem solid #f7f7f7;
57
+                  padding: 0.15rem;
58
+                  > div.Num {
59
+                    align-items: center;
60
+                    > .Icon {
61
+                      width: 0.4rem;
62
+                      height: 0.4rem;
63
+                      position: relative;
64
+                      overflow: hidden;
65
+                      margin-right: 0.1rem;
66
+                    }
67
+                    > span {
68
+                      width: 0.55rem;
69
+                      font-size: 0.16rem;
70
+                      font-weight: bold;
71
+                      line-height: 0.2rem;
72
+                      margin-right: 0.1rem;
73
+                    }
74
+                    > .flex-item {
75
+                      > ul {
76
+                        width: 100%;
77
+                        font-size: 0;
78
+                        white-space: nowrap;
79
+                        > li {
80
+                          display: inline-block;
81
+                          vertical-align: middle;
82
+                          font-size: 0.1rem;
83
+                          color: #fff;
84
+                          width: 0.2rem;
85
+                          height: 0.2rem;
86
+                          line-height: 0.2rem;
87
+                          border-radius: 100%;
88
+                          text-align: center;
89
+                          background: #d91d36;
90
+                          margin-right: 0.05rem;
91
+                          &.active {
92
+                            background: #1b40c5;
93
+                          }
94
+                        }
95
+                      }
96
+                    }
68 97
                   }
69
-                  > .flex-item {
70
-                    > ul {
71
-                      width: 100%;
72
-                      font-size: 0;
98
+                  > div.Count {
99
+                    align-items: center;
100
+                    margin-top: 0.05rem;
101
+                    > span {
102
+                      font-size: 0.1rem;
103
+                      color: #999;
104
+                      line-height: 0.2rem;
73 105
                       white-space: nowrap;
74
-                      > li {
75
-                        display: inline-block;
76
-                        vertical-align: middle;
77
-                        font-size: 0.1rem;
78
-                        color: #fff;
79
-                        width: 0.2rem;
80
-                        height: 0.2rem;
81
-                        line-height: 0.2rem;
82
-                        border-radius: 100%;
83
-                        text-align: center;
84
-                        background: #d91d36;
85
-                        margin-right: 0.05rem;
86
-                        &.active {
87
-                          background: #1b40c5;
88
-                        }
106
+                      > em {
107
+                        color: #d91d36;
108
+                        font-size: 0.12rem;
109
+                        font-weight: bold;
110
+                      }
111
+                      &:first-child {
112
+                        margin-left: 0.5rem;
113
+                        font-size: 0.12rem;
114
+                        color: #333;
115
+                        font-weight: bold;
116
+                      }
117
+                      &:last-child {
118
+                        margin-left: 0.25rem;
89 119
                       }
90 120
                     }
91 121
                   }
92 122
                 }
93
-                > div.Count {
123
+                > .Time {
94 124
                   align-items: center;
95
-                  margin-top: 0.05rem;
125
+                  padding: 0.1rem 0.15rem;
96 126
                   > span {
97
-                    font-size: 0.1rem;
98
-                    color: #999;
127
+                    font-size: 0.12rem;
128
+                    color: #666;
99 129
                     line-height: 0.2rem;
100
-                    white-space: nowrap;
101
-                    > em {
102
-                      color: #d91d36;
103
-                      font-size: 0.12rem;
104
-                      font-weight: bold;
105
-                    }
106
-                    &:first-child {
107
-                      margin-left: 0.5rem;
108
-                      font-size: 0.12rem;
109
-                      color: #333;
110
-                      font-weight: bold;
111
-                    }
112
-                    &:last-child {
113
-                      margin-left: 0.25rem;
114
-                    }
115 130
                   }
116
-                }
117
-              }
118
-              > .Time {
119
-                align-items: center;
120
-                padding: 0.1rem 0.15rem;
121
-                > span {
122
-                  font-size: 0.12rem;
123
-                  color: #666;
124
-                  line-height: 0.2rem;
125
-                }
126
-                > a {
127
-                  font-size: 0.12rem;
128
-                  width: 0.8rem;
129
-                  border: 0.01rem solid #d91d36;
130
-                  border-radius: 0.04rem;
131
-                  line-height: 0.28rem;
132
-                  text-align: center;
133
-                  color: #d91d36;
131
+                  > a {
132
+                    font-size: 0.12rem;
133
+                    width: 0.8rem;
134
+                    border: 0.01rem solid #d91d36;
135
+                    border-radius: 0.04rem;
136
+                    line-height: 0.28rem;
137
+                    text-align: center;
138
+                    color: #d91d36;
139
+                  }
134 140
                 }
135 141
               }
136 142
             }

+ 0
- 91
src/pages/page.scss 파일 보기

@@ -3,95 +3,4 @@
3 3
   height: 100%;
4 4
   position: relative;
5 5
   overflow: hidden;
6
-  > .MainHeaderPadding {
7
-    position: relative;
8
-    overflow: hidden;
9
-    background: #d91d36;
10
-  }
11
-  > .MainHeader {
12
-    position: relative;
13
-    overflow: hidden;
14
-    background: #d91d36;
15
-    > .MainTitle {
16
-      width: 100%;
17
-      display: block;
18
-      text-align: center;
19
-      height: 0.4rem;
20
-      white-space: nowrap;
21
-      position: relative;
22
-      z-index: 1;
23
-      > * {
24
-        display: inline-block;
25
-        vertical-align: middle;
26
-        line-height: 0.4rem;
27
-        font-size: 0.17rem;
28
-        color: #fff;
29
-      }
30
-    }
31
-    > a {
32
-      display: inline-block;
33
-      position: absolute;
34
-      z-index: 2;
35
-      color: #fff;
36
-      &.MainBack {
37
-        font-size: 0.18rem;
38
-        line-height: 0.4rem;
39
-        top: 0;
40
-        left: 0.15rem;
41
-      }
42
-      &.MainHeaderMore {
43
-        right: 0.15rem;
44
-        top: 0;
45
-        font-size: 0;
46
-        white-space: nowrap;
47
-        > span {
48
-          font-size: 0.12rem;
49
-          line-height: 0.4rem;
50
-          height: 0.4rem;
51
-          display: inline-block;
52
-          vertical-align: middle;
53
-          color: #fff;
54
-        }
55
-        > i {
56
-          font-size: 0.16rem;
57
-          line-height: 0.22rem;
58
-          display: inline-block;
59
-          vertical-align: middle;
60
-          color: #fff;
61
-          width: 0.22rem;
62
-          text-align: center;
63
-          background: rgba(255, 255, 255, 0.3);
64
-          border-radius: 100%;
65
-          margin-left: 0.05rem;
66
-        }
67
-      }
68
-    }
69
-  }
70
-  > .TabBar {
71
-    align-items: center;
72
-    border-top: 0.01rem solid #f7f7f7;
73
-    > div {
74
-      text-align: center;
75
-      font-size: 0;
76
-      > a {
77
-        display: inline-block;
78
-        padding: 0.05rem 0;
79
-        &.active {
80
-          > * {
81
-            color: #d91d36;
82
-          }
83
-        }
84
-        > * {
85
-          display: block;
86
-          line-height: 0.2rem;
87
-          text-align: center;
88
-          font-size: 0.13rem;
89
-          color: #656565;
90
-        }
91
-        > i {
92
-          font-size: 0.2rem;
93
-        }
94
-      }
95
-    }
96
-  }
97 6
 }

+ 13
- 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,18 @@ export default {
36 36
     }
37 37
   },
38 38
   mutations: {
39
+    UpdateUserInfo (state, data) { // 更新用户信息
40
+      state.UserInfo = data || null
41
+    },
42
+    EmptyUserInfo (state) { // 清空用户信息
43
+      state.UserInfo = null
44
+    }
39 45
   },
40 46
   actions: {
47
+    SignIn (context, payload) { // 登录
48
+      return new Promise((resolve, reject) => {
49
+        ToolClass.Axios(resolve, reject, Api.SignIn, context, payload, 1000, 'UpdateUserInfo')
50
+      })
51
+    }
41 52
   }
42 53
 }

+ 2
- 2
src/util/Api.js 파일 보기

@@ -2,9 +2,9 @@
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}/shop/login`
8 8
   }
9 9
 }
10 10