Commit dfc9b1321612b84f1b9b5ca77f0a1759db2986c3
1 parent
7df6e77e
首页add 地图缩放
底部添加 跳转链接 删除无用代码
Showing
14 changed files
with
155 additions
and
48 deletions
src/api/user.js
src/assets/footer_ico.png
0 → 100644
12.5 KB
src/assets/service/nodatacard.png
0 → 100644
33.1 KB
src/components/VFooter.vue
1 | 1 | <template> |
2 | 2 | <div class="footer"> |
3 | - <span>《隐私权政策》 《权益保障承诺书》 鄂ICP备19013449号</span> | |
3 | + <div class="footer-top"> | |
4 | + <ul class="fl footer-nav"> | |
5 | + <router-link | |
6 | + tag="li" | |
7 | + :to="{path:list.routerLink}" | |
8 | + v-for="(list, index) in navList" | |
9 | + :key="index" | |
10 | + > | |
11 | + {{list.name}} | |
12 | + </router-link> | |
13 | + </ul> | |
14 | + <div class="fr footer-rem"> | |
15 | + <div class="footer-tit">黄石停车APP</div> | |
16 | + <div class="footer-icon"></div> | |
17 | + </div> | |
18 | + </div> | |
19 | + <div class="footer-bottom"> | |
20 | + <div >《隐私权政策》 《权益保障承诺书》 鄂ICP备19013449号</div> | |
21 | + </div> | |
4 | 22 | </div> |
5 | 23 | </template> |
6 | 24 | |
7 | 25 | <script> |
8 | 26 | export default { |
9 | - name: 'VFooter' | |
27 | + name: 'VFooter', | |
28 | + data(){ | |
29 | + return { | |
30 | + navList:[ | |
31 | + {name:'官网中心',routerLink:'/center'}, | |
32 | + {name:'黄石停车',routerLink:'/park'}, | |
33 | + {name:'关于我们',routerLink:'/about'}, | |
34 | + ], | |
35 | + | |
36 | + | |
37 | + } | |
38 | + } | |
10 | 39 | } |
11 | 40 | </script> |
12 | 41 | |
13 | 42 | <style scoped lang="scss"> |
14 | 43 | .footer{ |
15 | - height:64px; | |
16 | - line-height: 64px; | |
44 | + height: 280px; | |
45 | + width:100%; | |
17 | 46 | background:rgba(6,8,10,1); |
18 | - color:rgba(255,255,255,0.65); | |
47 | + .footer-top{ | |
48 | + height: 216px; | |
49 | + margin: 0 auto; | |
50 | + width: 1010px; | |
51 | + .footer-nav{ | |
52 | + margin-top: 25px; | |
53 | + li{ | |
54 | + width:56px; | |
55 | + height:20px; | |
56 | + font-size:14px; | |
57 | + font-family:PingFangSC-Regular; | |
58 | + font-weight:400; | |
59 | + color:rgba(255,255,255,1); | |
60 | + line-height:20px; | |
61 | + margin-top: 20px; | |
62 | + } | |
63 | + } | |
64 | + .footer-rem{ | |
65 | + margin-top: 35px; | |
66 | + width: 129px; | |
67 | + height: 188px; | |
68 | + .footer-tit{ | |
69 | + width:84px; | |
70 | + height:20px; | |
71 | + font-size:14px; | |
72 | + font-family:PingFangSC-Regular; | |
73 | + font-weight:400; | |
74 | + color:rgba(255,255,255,1); | |
75 | + line-height:20px; | |
76 | + margin-bottom: 11px; | |
77 | + } | |
78 | + .footer-icon{ | |
79 | + width:129px; | |
80 | + height:129px; | |
81 | + background: url("../assets/footer_ico.png") no-repeat; | |
82 | + } | |
83 | + | |
84 | + } | |
85 | + | |
86 | + } | |
87 | + .footer-bottom{ | |
88 | + border-top:1px solid rgba(255,255,255,0.25);; | |
89 | + width: 100%; | |
90 | + height: 62px; | |
91 | + line-height: 60px; | |
92 | + font-family:PingFangSC-Regular; | |
93 | + font-weight:400; | |
94 | + color:rgba(255,255,255,0.65); | |
95 | + div{ | |
96 | + font-size:14px; | |
97 | + width: 500px; | |
98 | + margin: 0 auto; | |
99 | + text-align: center; | |
100 | + } | |
101 | + /*text-align: center;*/ | |
102 | + } | |
19 | 103 | } |
20 | 104 | </style> | ... | ... |
src/permission.js
... | ... | @@ -11,7 +11,6 @@ NProgress.configure({showSpinner: false}) // NProgress Configuration |
11 | 11 | const whiteList = ['/login'] // no redirect whitelist |
12 | 12 | |
13 | 13 | router.beforeEach(async (to, from, next) => { |
14 | - debugger | |
15 | 14 | // start progress bar |
16 | 15 | NProgress.start() |
17 | 16 | if (to.path.indexOf("service") == -1) { | ... | ... |
src/store/modules/user.js
... | ... | @@ -27,7 +27,6 @@ const mutations = { |
27 | 27 | const actions = { |
28 | 28 | // user login |
29 | 29 | login({ commit }, userInfo) { |
30 | - debugger | |
31 | 30 | const { phone, password } = userInfo |
32 | 31 | return new Promise((resolve, reject) => { |
33 | 32 | login({ userPhone: phone.trim(), validatorCode: password }).then(response => { | ... | ... |
src/utils/request.js
... | ... | @@ -43,16 +43,16 @@ service.interceptors.response.use( |
43 | 43 | * You can also judge the status by HTTP Status Code |
44 | 44 | */ |
45 | 45 | response => { |
46 | - const res = response.data | |
46 | + const res = response.data; | |
47 | 47 | // if the custom code is not 20000, it is judged as an error. |
48 | 48 | if (res.code !='8888') { |
49 | 49 | Message({ |
50 | - message: res.message || 'Error', | |
50 | + message: res.msg || 'Error', | |
51 | 51 | type: 'error', |
52 | 52 | duration: 5 * 1000 |
53 | 53 | }) |
54 | 54 | |
55 | - return Promise.reject(new Error(res.message || 'Error')) | |
55 | + return Promise.reject(res.msg) | |
56 | 56 | } else { |
57 | 57 | return res |
58 | 58 | } |
... | ... | @@ -60,7 +60,7 @@ service.interceptors.response.use( |
60 | 60 | error => { |
61 | 61 | console.log('err' + error) // for debug |
62 | 62 | Message({ |
63 | - message: error.message, | |
63 | + message: res.msg || '服务异常', | |
64 | 64 | type: 'error', |
65 | 65 | duration: 5 * 1000 |
66 | 66 | }) | ... | ... |
src/views/cardticket/index.vue
1 | 1 | |
2 | 2 | <template> |
3 | 3 | <div class="app-container" style="padding: 0px"> |
4 | + <div class="card_null" v-if="ticketList===null || ticketList.length===0" > | |
5 | + <img src="../../assets/service/nodatacard.png" alt=""/> | |
6 | + <p class="card_nulltit">暂无卡券</p> | |
7 | + </div> | |
4 | 8 | <!--卡券 sta--> |
5 | - <el-row :gutter="16" class=""> | |
6 | - <el-col :span="6" v-for="(ticket,id) in ticketList" :key="id" class="margin-bottom16"> | |
7 | - <el-card class="box-card"> | |
8 | - <div class="ticket-title boxshadow-4 eff-bgcolor " > | |
9 | - <div class=" float-left eff-icon"></div> | |
10 | - <div class="ticket-name hs-hidden-nowrap hs-cursor-pointer float-left" >{{ticket.orgName}}-{{ticket.cardName}}</div> | |
11 | - <div class="ticket-oper float-right">有效</div> | |
12 | - </div> | |
13 | - <div class="ticket-content"> | |
14 | - <div class="ticket-main clearfix" > | |
15 | - <div class=" hs-hidden-nowrap hs-cursor-pointer float-left ticket-effmoney" >{{ticket.fullCutValue | fen2Yuan}}</div> | |
9 | + <div v-else> | |
10 | + <el-row :gutter="16" > | |
11 | + <el-col :span="6" v-for="(ticket,id) in ticketList" :key="id" class="margin-bottom16"> | |
12 | + <el-card class="box-card"> | |
13 | + <div class="ticket-title boxshadow-4 eff-bgcolor " > | |
14 | + <div class=" float-left eff-icon"></div> | |
15 | + <div class="ticket-name hs-hidden-nowrap hs-cursor-pointer float-left" >{{ticket.orgName}}-{{ticket.cardName}}</div> | |
16 | + <div class="ticket-oper float-right">有效</div> | |
17 | + </div> | |
18 | + <div class="ticket-content"> | |
19 | + <div class="ticket-main clearfix" > | |
20 | + <div class=" hs-hidden-nowrap hs-cursor-pointer float-left ticket-effmoney" >{{ticket.fullCutValue | fen2Yuan}}</div> | |
16 | 21 | |
17 | - <div class="ticket-notes float-left">元 优惠券</div> | |
22 | + <div class="ticket-notes float-left">元 优惠券</div> | |
23 | + </div> | |
24 | + <div class="ticket-time">有效时间:{{ticket.endTime | string2Date(1)}}</div> | |
18 | 25 | </div> |
19 | - <div class="ticket-time">有效时间:{{ticket.endTime | string2Date(1)}}</div> | |
20 | - </div> | |
21 | - </el-card> | |
22 | - </el-col> | |
23 | - </el-row> | |
26 | + </el-card> | |
27 | + </el-col> | |
28 | + </el-row> | |
29 | + </div> | |
24 | 30 | </div> |
25 | 31 | </template> |
26 | 32 | |
... | ... | @@ -29,16 +35,7 @@ |
29 | 35 | export default { |
30 | 36 | data() { |
31 | 37 | return { |
32 | - ticketList:[ | |
33 | - /*{ | |
34 | - id:'123', | |
35 | - ptype:'1', | |
36 | - plname:'静雅地上停车场', | |
37 | - pname:'有效', | |
38 | - pmoney:'50', | |
39 | - ptime:'2019/8/30', | |
40 | - }*/ | |
41 | - ] | |
38 | + ticketList:[] | |
42 | 39 | } |
43 | 40 | }, |
44 | 41 | methods: { |
... | ... | @@ -154,6 +151,21 @@ export default { |
154 | 151 | line-height:20px; |
155 | 152 | margin-left: 16px; |
156 | 153 | } |
154 | + .card_null{ | |
155 | + margin-top: 50px; | |
156 | + text-align: center; | |
157 | + } | |
158 | + .card_null img{ | |
159 | + width: 184px; | |
160 | + height: 184px; | |
161 | + } | |
162 | + .card_nulltit{ | |
163 | + font-size: 20px; | |
164 | + font-weight: 400; | |
165 | + height: 30px; | |
166 | + line-height: 30px; | |
167 | + color: rgb(144, 147, 153); | |
168 | + } | |
157 | 169 | |
158 | 170 | </style> |
159 | 171 | ... | ... |
src/views/home.vue
... | ... | @@ -80,9 +80,16 @@ |
80 | 80 | name: 'home', |
81 | 81 | mounted() { |
82 | 82 | // 百度地图API功能 |
83 | - var map = new BMap.Map("map"); | |
83 | + var map = new BMap.Map("map", {enableMapClick:false}); | |
84 | 84 | var point = new BMap.Point(115.078186, 30.232887); |
85 | 85 | map.centerAndZoom(point, 15); |
86 | + map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 | |
87 | + var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | |
88 | + var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 | |
89 | + var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_SMALL}); //右上角,仅包含平移和缩放按钮 | |
90 | + map.addControl(top_left_control); | |
91 | + map.addControl(top_left_navigation); | |
92 | + map.addControl(top_right_navigation); | |
86 | 93 | } |
87 | 94 | } |
88 | 95 | </script> |
... | ... | @@ -110,7 +117,7 @@ |
110 | 117 | height: 368px; |
111 | 118 | position: absolute; |
112 | 119 | top:200px; |
113 | - right: 20px; | |
120 | + right: 80px; | |
114 | 121 | background: url("../assets/home/berth.png") no-repeat; |
115 | 122 | p{ |
116 | 123 | padding-top: 20px; |
... | ... | @@ -185,7 +192,7 @@ |
185 | 192 | content: ''; |
186 | 193 | position: absolute; |
187 | 194 | right: 14px; |
188 | - bottom: 27px; | |
195 | + bottom: 36px; | |
189 | 196 | transform: rotate(-45deg); |
190 | 197 | width: 25px; |
191 | 198 | height: 1px; | ... | ... |
src/views/information/index.vue
... | ... | @@ -100,7 +100,6 @@ |
100 | 100 | }, |
101 | 101 | handleAvatarSuccess(res, file) { |
102 | 102 | this.imageUrl = URL.createObjectURL(file.raw); |
103 | - debugger | |
104 | 103 | }, |
105 | 104 | beforeAvatarUpload(file) { |
106 | 105 | let that = this; |
... | ... | @@ -146,7 +145,6 @@ |
146 | 145 | }; |
147 | 146 | updatePersonByCustId(req).then(response =>{ |
148 | 147 | if(response.code ='8888'){ |
149 | - debugger | |
150 | 148 | let userInfo = this.$store.state.user.userInfo; |
151 | 149 | userInfo.custName=username; |
152 | 150 | userInfo.sex=sex; | ... | ... |
src/views/login/index.vue
... | ... | @@ -234,9 +234,9 @@ export default { |
234 | 234 | max-width: 100%; |
235 | 235 | /*padding: 160px 35px 0;*/ |
236 | 236 | /*margin: 0 auto;*/ |
237 | - top: 50%; | |
237 | + top: 150px; | |
238 | 238 | left: 50%; |
239 | - transform: translate(-50%, -50%); | |
239 | + margin-left: -200px; | |
240 | 240 | overflow: hidden; |
241 | 241 | background: rgba(26, 29, 41, .6); |
242 | 242 | } | ... | ... |
src/views/mycar/index.vue
... | ... | @@ -108,7 +108,7 @@ |
108 | 108 | methods: { |
109 | 109 | /**校验是否已经绑定*/ |
110 | 110 | checkCarNum(formName){ |
111 | - debugger | |
111 | + // debugger | |
112 | 112 | //checkBoundCarNum |
113 | 113 | let that = this; |
114 | 114 | let custId = this.form.custId; |
... | ... | @@ -192,7 +192,7 @@ |
192 | 192 | sysCode:'1001', |
193 | 193 | carBindingStatus:2, //解绑 |
194 | 194 | }; |
195 | - debugger | |
195 | + // debugger | |
196 | 196 | unboundCarNum(req).then(response =>{ |
197 | 197 | if(response.code ='8888'){ |
198 | 198 | this.$message({ | ... | ... |
src/views/myevaluate/index.vue
src/views/service.vue
... | ... | @@ -44,6 +44,10 @@ |
44 | 44 | <el-menu-item index="/service/information">个人资料</el-menu-item> |
45 | 45 | <el-menu-item index="/service/myevaluate">我的评价</el-menu-item> |
46 | 46 | </el-submenu> |
47 | + <el-menu-item @click="logout"> | |
48 | + <i class="el-icon-finished"></i> | |
49 | + <span slot="title">退出服务</span> | |
50 | + </el-menu-item> | |
47 | 51 | </el-menu> |
48 | 52 | </el-aside> |
49 | 53 | |
... | ... | @@ -69,6 +73,10 @@ |
69 | 73 | }, |
70 | 74 | handleClose(key, keyPath) { |
71 | 75 | console.log(key, keyPath); |
76 | + }, | |
77 | + async logout() { | |
78 | + await this.$store.dispatch('user/logout') | |
79 | + this.$router.push(`/login?redirect=${this.$route.fullPath}`) | |
72 | 80 | } |
73 | 81 | } |
74 | 82 | } | ... | ... |