Skip to content

Commit baea7dc

Browse files
committed
个人中心
1 parent e67d25d commit baea7dc

File tree

6 files changed

+90
-13
lines changed

6 files changed

+90
-13
lines changed

src/components/cart/Index.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
<p class="price">¥{{ item.price }}</p>
3232
<ul class="flex-box num-box">
3333
<li>
34-
<span class="bjs-btn btn-subtract bjs-btn-full tc font5" @click="item.num = item.num > 1 ? item.num - 1 : item.num; update(item.num, item.id)">-</span>
34+
<span class="bjs-btn btn-subtract bjs-btn-full tc font5" @click="item.num = item.num > 1 ? (update(item.num - 1, item.id),item.num - 1) : item.num">-</span>
3535
</li>
3636
<li class="flex-item-3 marl10"><input class="bjs-btn bjs-btn-full tc num" type="text" v-model="item.num" @blur="item.num = item.num * 1 < 1 ? 1 : item.num * 1; update(item.num, item.id)" @input="item.num = (item.num + '').replace(/[^\d]*/g,'')"></li>
3737
<li class="marl10">
38-
<span class="bjs-btn btn-add bjs-btn-full tc font5" @click="item.num = item.num < 10000 ? item.num + 1 : item.num; update(item.num, item.id)">+</span>
38+
<span class="bjs-btn btn-add bjs-btn-full tc font5" @click="item.num = item.num < 10000 ? (update(item.num + 1, item.id),item.num + 1) : item.num">+</span>
3939
</li>
4040
</ul>
4141
</li>

src/components/center/Index.vue

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,35 @@
11
<template>
2-
<div class="user">
3-
2+
<div id="content">
3+
<div>{{ userInfo }}</div>
4+
<CenterOrder />
45
</div>
56
</template>
67

78
<script lang="ts">
89
import { Component, Vue } from 'vue-property-decorator';
9-
// import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src
10+
import CenterOrder from './Order.vue';
1011
1112
@Component({
1213
components: {
13-
// HelloWorld,
14+
CenterOrder,
1415
},
1516
})
1617
export default class CenterIndex extends Vue {
17-
18+
get userInfo() {
19+
return this.$store.state.userInfo;
20+
}
1821
}
1922
</script>
23+
24+
<style lang="less" scoped>
25+
#content{
26+
top: 0;
27+
bottom: 42px;
28+
position: absolute;
29+
left: 0;
30+
width: 100%;
31+
z-index: 1;
32+
overflow: auto;
33+
}
34+
</style>
35+

src/components/center/Order.vue

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<template>
2+
<div class="order">
3+
<ul class="flex-box">
4+
<li>
5+
<span class="icon-weizhifu"></span>
6+
<span>未支付</span>
7+
<span>{{ order.s0 }}</span>
8+
</li>
9+
<li>
10+
<span class="icon-yizhifu"></span>
11+
<span>已支付</span>
12+
<span>{{ order.s1 }}</span>
13+
</li>
14+
<li>
15+
<span class="icon-yiwancheng"></span>
16+
<span>已完成</span>
17+
<span>{{ order.s2 }}</span>
18+
</li>
19+
<li>
20+
<span class="icon-yiquxiao"></span>
21+
<span>已取消</span>
22+
<span>{{ order.s3 }}</span>
23+
</li>
24+
</ul>
25+
</div>
26+
</template>
27+
28+
<script lang="ts">
29+
import { Component, Vue } from 'vue-property-decorator';
30+
31+
@Component
32+
export default class CenterOrder extends Vue {
33+
get order() {
34+
return this.$store.state.center.order;
35+
}
36+
}
37+
</script>
38+

src/store.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Vue from 'vue';
22
import Vuex from 'vuex';
33
import axios from '@/global/axios';
4-
import { userInfo, goodsDetail, cart } from '@/store/model';
4+
import { userInfo, goodsDetail, cart, center } from '@/store/model';
55

66
Vue.use(Vuex);
77
export default new Vuex.Store({
@@ -17,6 +17,7 @@ export default new Vuex.Store({
1717
goodsDetail,
1818
userInfo,
1919
cart,
20+
center,
2021
},
2122
mutations: {
2223
setSearchKeywords(state, keywords) {
@@ -57,6 +58,9 @@ export default new Vuex.Store({
5758
setGoodsDetail(state, detail) {
5859
state.goodsDetail = detail;
5960
},
61+
setCenterOrder(state, order) {
62+
state.center.order = order;
63+
},
6064
setUser(state, info) {
6165
state.userInfo = info;
6266
},
@@ -126,6 +130,12 @@ export default new Vuex.Store({
126130
});
127131
context.commit('setPageLoad', !1);
128132
},
133+
initCenterPage(context) {
134+
axios.get('/api/centerOrder.json', {}).then((response: any) => {
135+
context.commit('setCenterOrder', response.data);
136+
});
137+
context.commit('setPageLoad', !1);
138+
},
129139
initUserInfo(context) {
130140
if (context.state.userInfo.id !== 0) {
131141
return !1;

src/store/model.ts

+8
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,11 @@ export const cart = {
2424
amount: 0,
2525
list: [],
2626
};
27+
export const center = {
28+
order: {
29+
s0: 0,
30+
s1: 0,
31+
s2: 0,
32+
s3: 0,
33+
},
34+
};

src/views/Center.vue

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
<template>
2-
<div class="center">
3-
2+
<div class="home-page">
3+
<Content />
4+
<Footer />
45
</div>
56
</template>
67

78
<script lang="ts">
89
import { Component, Vue } from 'vue-property-decorator';
9-
// import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src
10+
import Content from '@/components/center/Index.vue';
11+
import Footer from '@/components/layout/Footer.vue';
1012
1113
@Component({
1214
components: {
13-
// HelloWorld,
15+
Content,
16+
Footer,
1417
},
1518
})
1619
export default class Center extends Vue {
17-
20+
public created() {
21+
this.$store.dispatch('initCenterPage');
22+
}
1823
}
1924
</script>

0 commit comments

Comments
 (0)