Commit e4acf226b47f0ebf0d6dfeef910363f016501806
1 parent
613d2a9c
add 我的钱包前端页面 table
Showing
7 changed files
with
411 additions
and
33 deletions
package.json
src/components/Breadcrumb/index.vue
... | ... | @@ -33,7 +33,7 @@ export default { |
33 | 33 | const first = matched[0] |
34 | 34 | |
35 | 35 | if (!this.isDashboard(first)) { |
36 | - matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched) | |
36 | + matched = [{ path: '/dashboard', meta: { title: '首页' }}].concat(matched) | |
37 | 37 | } |
38 | 38 | |
39 | 39 | this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false) |
... | ... | @@ -43,7 +43,7 @@ export default { |
43 | 43 | if (!name) { |
44 | 44 | return false |
45 | 45 | } |
46 | - return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase() | |
46 | + return name.trim().toLocaleLowerCase() === '首页'.toLocaleLowerCase() | |
47 | 47 | }, |
48 | 48 | pathCompile(path) { |
49 | 49 | // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561 | ... | ... |
src/components/Pagination/index.vue
0 → 100644
1 | +<template> | |
2 | + <div :class="{'hidden':hidden}" class="pagination-container"> | |
3 | + <el-pagination | |
4 | + :background="background" | |
5 | + :current-page.sync="currentPage" | |
6 | + :page-size.sync="limit" | |
7 | + :layout="layout" | |
8 | + :page-sizes="pageSizes" | |
9 | + :total="total" | |
10 | + v-bind="$attrs" | |
11 | + @size-change="handleSizeChange" | |
12 | + @current-change="handleCurrentChange" | |
13 | + /> | |
14 | + </div> | |
15 | +</template> | |
16 | + | |
17 | +<script> | |
18 | +import { scrollTo } from '@/utils/scroll-to' | |
19 | + | |
20 | +export default { | |
21 | + name: 'Pagination', | |
22 | + props: { | |
23 | + total: { | |
24 | + required: true, | |
25 | + type: Number | |
26 | + }, | |
27 | + page: { | |
28 | + type: Number, | |
29 | + default: 1 | |
30 | + }, | |
31 | + limit: { | |
32 | + type: Number, | |
33 | + default: 20 | |
34 | + }, | |
35 | + pageSizes: { | |
36 | + type: Array, | |
37 | + default() { | |
38 | + return [10, 20, 30, 50] | |
39 | + } | |
40 | + }, | |
41 | + layout: { | |
42 | + type: String, | |
43 | + default: 'total, sizes, prev, pager, next, jumper' | |
44 | + }, | |
45 | + background: { | |
46 | + type: Boolean, | |
47 | + default: true | |
48 | + }, | |
49 | + autoScroll: { | |
50 | + type: Boolean, | |
51 | + default: true | |
52 | + }, | |
53 | + hidden: { | |
54 | + type: Boolean, | |
55 | + default: false | |
56 | + } | |
57 | + }, | |
58 | + computed: { | |
59 | + currentPage: { | |
60 | + get() { | |
61 | + return this.page | |
62 | + }, | |
63 | + set(val) { | |
64 | + this.$emit('update:page', val) | |
65 | + } | |
66 | + }, | |
67 | + pageSize: { | |
68 | + get() { | |
69 | + return this.limit | |
70 | + }, | |
71 | + set(val) { | |
72 | + this.$emit('update:limit', val) | |
73 | + } | |
74 | + } | |
75 | + }, | |
76 | + methods: { | |
77 | + handleSizeChange(val) { | |
78 | + this.$emit('pagination', { page: this.currentPage, limit: val }) | |
79 | + if (this.autoScroll) { | |
80 | + scrollTo(0, 800) | |
81 | + } | |
82 | + }, | |
83 | + handleCurrentChange(val) { | |
84 | + this.$emit('pagination', { page: val, limit: this.pageSize }) | |
85 | + if (this.autoScroll) { | |
86 | + scrollTo(0, 800) | |
87 | + } | |
88 | + } | |
89 | + } | |
90 | +} | |
91 | +</script> | |
92 | + | |
93 | +<style scoped> | |
94 | + .pagination-container { | |
95 | + background: #fff; | |
96 | + /**margin-top: 16px;**/ | |
97 | + margin-bottom: 16px; | |
98 | + float: right; | |
99 | + } | |
100 | + .pagination-container.hidden { | |
101 | + display: none; | |
102 | + } | |
103 | +</style> | ... | ... |
src/styles/element-ui.scss
... | ... | @@ -42,3 +42,34 @@ |
42 | 42 | display: block |
43 | 43 | } |
44 | 44 | } |
45 | +// fix date-picker ui bug in filter-item | |
46 | +.el-range-editor.el-input__inner { | |
47 | + display: inline-flex !important; | |
48 | +} | |
49 | + | |
50 | +.el-table thead { | |
51 | + color: #515a6e !important; | |
52 | + font-weight: 500; | |
53 | +} | |
54 | +.el-table th{ | |
55 | + white-space: nowrap !important; | |
56 | + overflow: hidden !important; | |
57 | + background-color: #f8f8f9 !important; | |
58 | +} | |
59 | +.el-table{ | |
60 | + color: #515A6E !important; | |
61 | +} | |
62 | +.el-table thead{ | |
63 | + color: #1F2D3D !important; | |
64 | +} | |
65 | + | |
66 | +.el-form-item__label{ | |
67 | + font-size: 12px !important; | |
68 | + color: #515a6e !important; | |
69 | + vertical-align:middle; | |
70 | +} | |
71 | +label{ | |
72 | + font-weight:500 !important; | |
73 | + font-size: 14px !important; | |
74 | + cursor: default !important; | |
75 | +} | ... | ... |
src/styles/index.scss
src/utils/scroll-to.js
0 → 100644
1 | +Math.easeInOutQuad = function(t, b, c, d) { | |
2 | + t /= d / 2 | |
3 | + if (t < 1) { | |
4 | + return c / 2 * t * t + b | |
5 | + } | |
6 | + t-- | |
7 | + return -c / 2 * (t * (t - 2) - 1) + b | |
8 | +} | |
9 | + | |
10 | +// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts | |
11 | +var requestAnimFrame = (function() { | |
12 | + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) { window.setTimeout(callback, 1000 / 60) } | |
13 | +})() | |
14 | + | |
15 | +/** | |
16 | + * Because it's so fucking difficult to detect the scrolling element, just move them all | |
17 | + * @param {number} amount | |
18 | + */ | |
19 | +function move(amount) { | |
20 | + document.documentElement.scrollTop = amount | |
21 | + document.body.parentNode.scrollTop = amount | |
22 | + document.body.scrollTop = amount | |
23 | +} | |
24 | + | |
25 | +function position() { | |
26 | + return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop | |
27 | +} | |
28 | + | |
29 | +/** | |
30 | + * @param {number} to | |
31 | + * @param {number} duration | |
32 | + * @param {Function} callback | |
33 | + */ | |
34 | +export function scrollTo(to, duration, callback) { | |
35 | + const start = position() | |
36 | + const change = to - start | |
37 | + const increment = 20 | |
38 | + let currentTime = 0 | |
39 | + duration = (typeof (duration) === 'undefined') ? 500 : duration | |
40 | + var animateScroll = function() { | |
41 | + // increment the time | |
42 | + currentTime += increment | |
43 | + // find the value with the quadratic in-out easing function | |
44 | + var val = Math.easeInOutQuad(currentTime, start, change, duration) | |
45 | + // move the document.body | |
46 | + move(val) | |
47 | + // do the animation unless its over | |
48 | + if (currentTime < duration) { | |
49 | + requestAnimFrame(animateScroll) | |
50 | + } else { | |
51 | + if (callback && typeof (callback) === 'function') { | |
52 | + // the animation is done so lets callback | |
53 | + callback() | |
54 | + } | |
55 | + } | |
56 | + } | |
57 | + animateScroll() | |
58 | +} | ... | ... |
src/views/account/index.vue
1 | 1 | <template> |
2 | - <!--汇总卡片--> | |
3 | - <el-row :gutter="16" class="card-second-top"> | |
4 | - <el-col :span="12"> | |
5 | - <el-card class="box-card"> | |
6 | - <el-row :gutter="24"> | |
7 | - <el-col :span="8" style="text-align: center"> | |
8 | - <svg-icon icon-class="recharge" class="svg-icon" style="width: 48px;height: 48px" /> | |
9 | - </el-col> | |
10 | - <el-col :span="12" :offset="4"> | |
11 | - <el-row :gutter="16"><el-col :span="24">充值账户(元)</el-col></el-row> | |
12 | - <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">240.0</el-col></el-row> | |
13 | - </el-col> | |
14 | - </el-row> | |
15 | - </el-card> | |
16 | - </el-col> | |
17 | - <el-col :span="12"> | |
18 | - <el-card class="box-card"> | |
19 | - <el-row :gutter="24"> | |
20 | - <el-col :span="8" style="text-align: center"> | |
21 | - <svg-icon icon-class="give" style="width: 48px;height: 48px" /> | |
22 | - </el-col> | |
23 | - <el-col :span="12" :offset="4"> | |
24 | - <el-row :gutter="16"><el-col :span="24">赠送账户(元)</el-col></el-row> | |
25 | - <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">140.0</el-col></el-row> | |
26 | - </el-col> | |
27 | - </el-row> | |
28 | - </el-card> | |
29 | - </el-col> | |
30 | - </el-row> | |
2 | + <div class="app-container"> | |
3 | + <!--卡片--> | |
4 | + <el-row :gutter="16" class="card-second-top"> | |
5 | + <el-col :span="12"> | |
6 | + <el-card class="box-card"> | |
7 | + <el-row :gutter="24"> | |
8 | + <el-col :span="8" style="text-align: center"> | |
9 | + <svg-icon icon-class="recharge" class="svg-icon" style="width: 48px;height: 48px" /> | |
10 | + </el-col> | |
11 | + <el-col :span="12" :offset="4"> | |
12 | + <el-row :gutter="16"><el-col :span="24">充值账户(元)</el-col></el-row> | |
13 | + <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">240.0</el-col></el-row> | |
14 | + </el-col> | |
15 | + </el-row> | |
16 | + </el-card> | |
17 | + </el-col> | |
18 | + <el-col :span="12"> | |
19 | + <el-card class="box-card"> | |
20 | + <el-row :gutter="24"> | |
21 | + <el-col :span="8" style="text-align: center"> | |
22 | + <svg-icon icon-class="give" style="width: 48px;height: 48px" /> | |
23 | + </el-col> | |
24 | + <el-col :span="12" :offset="4"> | |
25 | + <el-row :gutter="16"><el-col :span="24">赠送账户(元)</el-col></el-row> | |
26 | + <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">140.0</el-col></el-row> | |
27 | + </el-col> | |
28 | + </el-row> | |
29 | + </el-card> | |
30 | + </el-col> | |
31 | + </el-row> | |
32 | + <!--账户明细 sta--> | |
33 | + <el-card shadow="always" class="card-second-top margin-top-24"> | |
34 | + <el-tabs :tab-position="left" > | |
35 | + <el-tab-pane label="充值记录"> | |
36 | + <el-table | |
37 | + :data="paytableData" | |
38 | + style="width: 100%;" | |
39 | + :show-overflow-tooltip="true"> | |
40 | + <el-table-column | |
41 | + prop="parkName" | |
42 | + label="账户类型" | |
43 | + :show-overflow-tooltip="true"> | |
44 | + </el-table-column> | |
45 | + <el-table-column | |
46 | + prop="license" | |
47 | + label="充值金额" | |
48 | + :show-overflow-tooltip="true"> | |
49 | + </el-table-column> | |
50 | + <el-table-column | |
51 | + prop="money" | |
52 | + label="充值后余额"> | |
53 | + </el-table-column> | |
54 | + <el-table-column | |
55 | + prop="inTime" | |
56 | + label="充值时间" | |
57 | + :show-overflow-tooltip="true"> | |
58 | + </el-table-column> | |
59 | + </el-table> | |
60 | + <el-pagination | |
61 | + :page-size="10" | |
62 | + :pager-count="11" | |
63 | + layout="prev, pager, next" | |
64 | + :total="total"> | |
65 | + </el-pagination> | |
66 | + </el-tab-pane> | |
67 | + <el-tab-pane label="支出记录"> | |
68 | + <el-table | |
69 | + :data="outtableData" | |
70 | + style="width: 100%;" | |
71 | + :show-overflow-tooltip="true"> | |
72 | + <el-table-column | |
73 | + prop="parkName" | |
74 | + label="账户类型" | |
75 | + :show-overflow-tooltip="true"> | |
76 | + </el-table-column> | |
77 | + <el-table-column | |
78 | + prop="license" | |
79 | + label="交易金额" | |
80 | + :show-overflow-tooltip="true"> | |
81 | + </el-table-column> | |
82 | + <el-table-column | |
83 | + prop="money" | |
84 | + label="交易后余额"> | |
85 | + </el-table-column> | |
86 | + <el-table-column | |
87 | + prop="outtype" | |
88 | + label="交易类型"> | |
89 | + </el-table-column> | |
90 | + <el-table-column | |
91 | + prop="inTime" | |
92 | + label="交易时间" | |
93 | + :show-overflow-tooltip="true"> | |
94 | + </el-table-column> | |
95 | + </el-table> | |
96 | + <el-pagination | |
97 | + :page-size="10" | |
98 | + :pager-count="21" | |
99 | + layout="prev, pager, next" | |
100 | + :total="total"> | |
101 | + </el-pagination> | |
102 | + </el-tab-pane> | |
103 | + </el-tabs> | |
104 | + | |
105 | + <!-- <el-tabs v-model="activeName" type="card" @tab-click="handleClick"> | |
106 | + <el-tab-pane label="充值" name="first"> | |
107 | + | |
108 | + </el-tab-pane> | |
109 | + <el-tab-pane label="支出" name="second">配置管理</el-tab-pane> | |
110 | + </el-tabs>--> | |
111 | + | |
112 | + </el-card> | |
113 | + </div> | |
31 | 114 | </template> |
32 | 115 | |
33 | 116 | <script> |
34 | 117 | // import { getList } from '@/api/table' |
118 | +import pagination from '@/components/Pagination/index.vue'; | |
119 | +import LoadingBar from 'nprogress' // progress bar | |
120 | +import 'nprogress/nprogress.css' // progress bar style | |
35 | 121 | |
36 | 122 | export default { |
123 | + components:{ | |
124 | + 'i-pagination': pagination | |
125 | + }, | |
37 | 126 | filters: { |
38 | 127 | |
39 | 128 | }, |
40 | 129 | data() { |
41 | 130 | return { |
42 | 131 | list: null, |
43 | - listLoading: true | |
132 | + listLoading: true, | |
133 | + btnLoading:false, | |
134 | + loading:false, | |
135 | + paytableData: [ | |
136 | + { | |
137 | + parkName: '个人账户', | |
138 | + license: '21', | |
139 | + money: '31', | |
140 | + inTime: '2019-06-02 09:00:00', | |
141 | + }, | |
142 | + { | |
143 | + parkName: '个人账户', | |
144 | + license: '10', | |
145 | + money: '31', | |
146 | + inTime: '2019-06-02 00:23:00', | |
147 | + }, | |
148 | + { | |
149 | + parkName: '个人账户', | |
150 | + license: '21', | |
151 | + money: '31', | |
152 | + inTime: '2019-06-02 09:00:00', | |
153 | + }, | |
154 | + { | |
155 | + parkName: '个人账户', | |
156 | + license: '10', | |
157 | + money: '31', | |
158 | + inTime: '2019-06-02 00:23:00', | |
159 | + },{ | |
160 | + parkName: '个人账户', | |
161 | + license: '10', | |
162 | + money: '31', | |
163 | + inTime: '2019-06-02 00:23:00', | |
164 | + }, | |
165 | + ], | |
166 | + outtableData: [ | |
167 | + { | |
168 | + parkName: '个人账户', | |
169 | + license: '21', | |
170 | + money: '31', | |
171 | + outtype: '停车支付', | |
172 | + inTime: '2019-06-02 09:00:00', | |
173 | + }, | |
174 | + { | |
175 | + parkName: '个人账户', | |
176 | + license: '10', | |
177 | + money: '31', | |
178 | + outtype: '停车支付', | |
179 | + inTime: '2019-06-02 00:23:00', | |
180 | + }, | |
181 | + { | |
182 | + parkName: '个人账户', | |
183 | + license: '21', | |
184 | + money: '31', | |
185 | + outtype: '停车支付', | |
186 | + inTime: '2019-06-02 09:00:00', | |
187 | + }, | |
188 | + { | |
189 | + parkName: '个人账户', | |
190 | + license: '10', | |
191 | + money: '31', | |
192 | + outtype: '停车支付', | |
193 | + inTime: '2019-06-02 00:23:00', | |
194 | + }, | |
195 | + ], | |
196 | + /** 分页*/ | |
197 | + total: 32, | |
198 | + currentPage: 1, | |
199 | + pageSize: 10, | |
44 | 200 | } |
45 | 201 | }, |
202 | + computed: { | |
203 | + }, | |
46 | 204 | created() { |
47 | 205 | |
48 | 206 | }, |
207 | + mounted:function () { | |
208 | + }, | |
49 | 209 | methods: { |
210 | + queryBtn:function () { | |
211 | + LoadingBar.start(); | |
212 | + this.btnLoading=true; | |
213 | + this.loading = true; | |
214 | + | |
215 | + }, | |
216 | + /**获取子组件页码方法*/ | |
217 | + handleSizeChange: function(pages) { | |
218 | + this.currentPage = pages.page; | |
219 | + this.pageSize = pages.limit; | |
220 | + /** 调用表格数据.*/ | |
221 | + this.queryBtn(); | |
222 | + }, | |
50 | 223 | |
51 | 224 | } |
52 | 225 | } |
53 | 226 | </script> |
227 | +<style lang="scss" scoped > | |
228 | + .serch-wrap{ | |
229 | + background-color: #FFF; | |
230 | + padding: 15px; | |
231 | + } | |
232 | + .el-card__header{ | |
233 | + padding:10px 20px!important;; | |
234 | + } | |
235 | + | |
236 | +</style> | ... | ... |