Commit 46081f338ee706cd46d2efe2890d1b80409e3ecf

Authored by 王飞
1 parent 61f89c44

交互

.env.development
@@ -2,9 +2,9 @@ @@ -2,9 +2,9 @@
2 ENV = 'development' 2 ENV = 'development'
3 3
4 # base api '/dev-api' 4 # base api '/dev-api'
5 -#VUE_APP_BASE_API = 'http://test.renniting.cn/bcp/' 5 +VUE_APP_BASE_API = 'http://test.renniting.cn/bcp/'
6 6
7 -VUE_APP_BASE_API = 'http://127.0.0.1:8099' 7 +#VUE_APP_BASE_API = 'http://127.0.0.1:8099'
8 8
9 9
10 # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, 10 # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
src/api/account.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +/**
  4 + * 获取车主账户
  5 + * @param param
  6 + */
  7 +export function getAcctPersonGroupByAcctType(param) {
  8 + return request({
  9 + url: '/personPc/acct/getAcctPersonGroupByAcctType',
  10 + method: 'post',
  11 + data:param
  12 + })
  13 +}
  14 +/**
  15 + * 分页查询车主支出详情
  16 + * @param param
  17 + */
  18 +export function queryAcctPayOutForPage(param) {
  19 + return request({
  20 + url: '/personPc/acct/queryAcctPayOutForPage',
  21 + method: 'post',
  22 + data:param
  23 + })
  24 +}
  25 +/**
  26 + * 分页查询车主收费端充值的收入详情"
  27 + * @param param
  28 + */
  29 +export function queryCustRechargeFeeStaticMsg(param) {
  30 + return request({
  31 + url: '/personPc/acct/queryCustRechargeFeeStaticMsg',
  32 + method: 'post',
  33 + data:param
  34 + })
  35 +}
src/api/index.js 0 → 100644
  1 +import request from '@/utils/request'
  2 +
  3 +/**
  4 + * 获取车主首页卡片信息
  5 + * @param param
  6 + */
  7 +export function getCustIndexBaseInfo(param) {
  8 + return request({
  9 + url: '/personPc/index/getCustIndexBaseInfo',
  10 + method: 'post',
  11 + data:param
  12 + })
  13 +}
  14 +/**
  15 + * 获取车主月支出
  16 + * @param param
  17 + */
  18 +export function queryOwnerPayOutByMonth(param) {
  19 + return request({
  20 + url: '/personPc/index/queryOwnerPayOutByMonth',
  21 + method: 'post',
  22 + data:param
  23 + })
  24 +}
  25 +/**
  26 + * 获取车主停车记录
  27 + * @param param
  28 + */
  29 +export function queryOwnerParkRecord(param) {
  30 + return request({
  31 + url: '/personPc/index/queryOwnerParkRecord',
  32 + method: 'post',
  33 + data:param
  34 + })
  35 +}
src/filters/index.js
@@ -235,3 +235,110 @@ export function payOrderTypeFomatter(row,value){ @@ -235,3 +235,110 @@ export function payOrderTypeFomatter(row,value){
235 return '未知'; 235 return '未知';
236 } 236 }
237 }; 237 };
  238 +
  239 +/**
  240 + * 订单状态
  241 + * @param row
  242 + * @param value
  243 + * @returns {string}
  244 + */
  245 +export function inOutStateFormatter(row, value) {
  246 +
  247 + let orderState = row.orderState;
  248 + //停车状态 10:在场 ,20:离场,30:预订
  249 + let parkState = row.parkState;
  250 + if (null == parkState) {
  251 + if (null != row.parkOutTime) {
  252 + parkState = 20;
  253 + } else {
  254 + parkState = 10;
  255 + }
  256 + }
  257 +
  258 + if (parkState == 10) {
  259 + return "在场";
  260 + }
  261 +
  262 + if (parkState == 20) {
  263 +
  264 + if (orderState == 52) {
  265 + return "欠费";
  266 + } else {
  267 + return "离场";
  268 + }
  269 + }
  270 +};
  271 +
  272 +/**
  273 + * 停车时长
  274 + * @param row
  275 + * @param value
  276 + * @returns {*}
  277 + */
  278 +export function parkingDurationFormatter (row, value) {
  279 + //
  280 + let parkState = row.parkState;
  281 + if (null == parkState) {
  282 + if (null != row.parkOutTime) {
  283 + parkState = 20;
  284 + } else {
  285 + parkState = 10;
  286 + }
  287 + }
  288 +
  289 + let inTime = row.parkInTime;
  290 + if (parkState == 10) {
  291 + let thisTime = new Date().getTime();
  292 + let parkDuration = (thisTime - inTime) / 1000;
  293 + return formatSeconds(parkDuration);
  294 + }
  295 +
  296 +
  297 + if (value == null) {
  298 + return "";
  299 + } else {
  300 + return formatSeconds(value);
  301 + }
  302 +};
  303 +function formatSeconds(value) {
  304 + let theTime = parseInt(value);// 秒
  305 + let theTime1 = 0;// 分
  306 + let theTime2 = 0;// 小时
  307 + let theTime3 = 0;//天
  308 + if (theTime < 60) {
  309 + return theTime + '秒';
  310 + }
  311 + if (theTime > 60) {
  312 + theTime1 = parseInt(theTime / 60);
  313 + theTime = parseInt(theTime % 60);
  314 +
  315 +
  316 + }
  317 +
  318 + if (theTime1 > 60) {
  319 + theTime2 = parseInt(theTime1 / 60);
  320 + theTime1 = parseInt(theTime1 % 60);
  321 + }
  322 +
  323 + if (theTime2 > 24) {
  324 + theTime3 = parseInt(theTime2 / 24);
  325 + theTime2 = parseInt(theTime2 % 24);
  326 + }
  327 +
  328 + let result = '';
  329 + if (theTime1 == 0 && theTime2 == 0 && theTime3 == 0) {
  330 + result = parseInt(theTime) + "秒"
  331 + }
  332 +
  333 + if (theTime1 > 0) {
  334 + result = "" + parseInt(theTime1) + "分钟" + result;
  335 + }
  336 + if (theTime2 > 0) {
  337 + result = "" + parseInt(theTime2) + "小时" + result;
  338 + }
  339 +
  340 + if (theTime3 > 0) {
  341 + result = "" + parseInt(theTime3) + "天" + result;
  342 + }
  343 + return result;
  344 +};
src/views/account/index.vue
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 </el-col> 10 </el-col>
11 <el-col :span="12" :offset="4"> 11 <el-col :span="12" :offset="4">
12 <el-row :gutter="16"><el-col :span="24">充值账户(元)</el-col></el-row> 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> 13 + <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">{{rechargeBalance|fen2Yuan}}</el-col></el-row>
14 </el-col> 14 </el-col>
15 </el-row> 15 </el-row>
16 </el-card> 16 </el-card>
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 </el-col> 23 </el-col>
24 <el-col :span="12" :offset="4"> 24 <el-col :span="12" :offset="4">
25 <el-row :gutter="16"><el-col :span="24">赠送账户(元)</el-col></el-row> 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> 26 + <el-row :gutter="16" class="common-color font-size24" style="margin-top: 4px"><el-col :span="24">{{presentBalance|fen2Yuan}}</el-col></el-row>
27 </el-col> 27 </el-col>
28 </el-row> 28 </el-row>
29 </el-card> 29 </el-card>
@@ -34,70 +34,114 @@ @@ -34,70 +34,114 @@
34 <el-tabs :tab-position="tabPosition" > 34 <el-tabs :tab-position="tabPosition" >
35 <el-tab-pane label="充值记录"> 35 <el-tab-pane label="充值记录">
36 <el-table 36 <el-table
37 - :data="paytableData" 37 + :data="rechargeTableData"
38 style="width: 100%;" 38 style="width: 100%;"
39 :show-overflow-tooltip="true"> 39 :show-overflow-tooltip="true">
40 <el-table-column 40 <el-table-column
41 - prop="parkName" 41 + prop="acctType"
42 label="账户类型" 42 label="账户类型"
43 :show-overflow-tooltip="true"> 43 :show-overflow-tooltip="true">
  44 + <template slot-scope="scope">
  45 + <span v-if="scope.row.acctType == 1">账户余额</span>
  46 + <span v-if="scope.row.acctType == 7">充值赠送</span>
  47 + </template>
44 </el-table-column> 48 </el-table-column>
45 <el-table-column 49 <el-table-column
46 - prop="license" 50 + prop="rechargeFee"
47 label="充值金额" 51 label="充值金额"
48 :show-overflow-tooltip="true"> 52 :show-overflow-tooltip="true">
  53 + <template slot-scope="scope">
  54 + <span>{{(scope.row.rechargeFee) |fen2Yuan}} </span>
  55 + </template>
49 </el-table-column> 56 </el-table-column>
50 <el-table-column 57 <el-table-column
51 - prop="money" 58 + prop="rechargeBalance"
52 label="充值后余额"> 59 label="充值后余额">
  60 + <template slot-scope="scope">
  61 + <span>{{(scope.row.rechargeBalance) |fen2Yuan}} </span>
  62 + </template>
53 </el-table-column> 63 </el-table-column>
54 <el-table-column 64 <el-table-column
55 - prop="inTime" 65 + prop="rechargeTime"
56 label="充值时间" 66 label="充值时间"
57 :show-overflow-tooltip="true"> 67 :show-overflow-tooltip="true">
  68 + <template slot-scope="scope">
  69 + <span>{{(scope.row.rechargeTime) |string2Date(7)}} </span>
  70 + </template>
58 </el-table-column> 71 </el-table-column>
59 </el-table> 72 </el-table>
60 <el-pagination 73 <el-pagination
61 :page-size="10" 74 :page-size="10"
62 :pager-count="11" 75 :pager-count="11"
63 layout="prev, pager, next" 76 layout="prev, pager, next"
64 - :total="total"> 77 + :total="total"
  78 + @size-change="handleSizeChange"
  79 + @current-change="handleSizeChange"
  80 + @prev-click="handleSizeChange"
  81 + @next-click="handleSizeChange">
65 </el-pagination> 82 </el-pagination>
66 </el-tab-pane> 83 </el-tab-pane>
67 <el-tab-pane label="支出记录"> 84 <el-tab-pane label="支出记录">
68 <el-table 85 <el-table
69 - :data="outtableData" 86 + :data="payOutTableData"
70 style="width: 100%;" 87 style="width: 100%;"
71 :show-overflow-tooltip="true"> 88 :show-overflow-tooltip="true">
72 <el-table-column 89 <el-table-column
73 - prop="parkName" 90 + prop="acctType"
74 label="账户类型" 91 label="账户类型"
75 :show-overflow-tooltip="true"> 92 :show-overflow-tooltip="true">
  93 + <template slot-scope="scope">
  94 + <span v-if="scope.row.acctType == 1">账户余额</span>
  95 + <span v-if="scope.row.acctType == 7">充值赠送</span>
  96 + </template>
76 </el-table-column> 97 </el-table-column>
77 <el-table-column 98 <el-table-column
78 - prop="license" 99 + prop="tradeFee"
79 label="交易金额" 100 label="交易金额"
80 :show-overflow-tooltip="true"> 101 :show-overflow-tooltip="true">
  102 + <template slot-scope="scope">
  103 + <span>{{(scope.row.tradeFee) |fen2Yuan}} </span>
  104 + </template>
81 </el-table-column> 105 </el-table-column>
82 <el-table-column 106 <el-table-column
83 - prop="money" 107 + prop="tradeBalance"
84 label="交易后余额"> 108 label="交易后余额">
  109 + <template slot-scope="scope">
  110 + <span>{{(scope.row.tradeBalance) |fen2Yuan}} </span>
  111 + </template>
85 </el-table-column> 112 </el-table-column>
86 <el-table-column 113 <el-table-column
87 - prop="outtype" 114 + prop="tradeDetialType"
88 label="交易类型"> 115 label="交易类型">
  116 + <template slot-scope="scope">
  117 + <span v-if="scope.row.tradeDetialType == 101">停车支付</span>
  118 + <span v-if="scope.row.tradeDetialType == 102">停车预付</span>
  119 + <span v-if="scope.row.tradeDetialType == 103">停车补缴</span>
  120 + <span v-if="scope.row.tradeDetialType == 104">共享车位</span>
  121 + <span v-if="scope.row.tradeDetialType == 201">余额充值</span>
  122 + <span v-if="scope.row.tradeDetialType == 202">押金充值</span>
  123 + <span v-if="scope.row.tradeDetialType == 301">会员卡购买</span>
  124 + <span v-if="scope.row.tradeDetialType == 302">会员卡续费</span>
  125 + </template>
89 </el-table-column> 126 </el-table-column>
90 <el-table-column 127 <el-table-column
91 - prop="inTime" 128 + prop="tradeTime"
92 label="交易时间" 129 label="交易时间"
93 :show-overflow-tooltip="true"> 130 :show-overflow-tooltip="true">
  131 + <template slot-scope="scope">
  132 + <span>{{(scope.row.tradeTime) |string2Date(7)}} </span>
  133 + </template>
94 </el-table-column> 134 </el-table-column>
95 </el-table> 135 </el-table>
96 <el-pagination 136 <el-pagination
97 :page-size="10" 137 :page-size="10"
98 :pager-count="21" 138 :pager-count="21"
99 layout="prev, pager, next" 139 layout="prev, pager, next"
100 - :total="total"> 140 + :total="total2"
  141 + @size-change="handleSizeChange2"
  142 + @current-change="handleSizeChange2"
  143 + @prev-click="handleSizeChange2"
  144 + @next-click="handleSizeChange2">
101 </el-pagination> 145 </el-pagination>
102 </el-tab-pane> 146 </el-tab-pane>
103 </el-tabs> 147 </el-tabs>
@@ -111,7 +155,8 @@ @@ -111,7 +155,8 @@
111 import pagination from '@/components/Pagination/index.vue'; 155 import pagination from '@/components/Pagination/index.vue';
112 import LoadingBar from 'nprogress' // progress bar 156 import LoadingBar from 'nprogress' // progress bar
113 import 'nprogress/nprogress.css' // progress bar style 157 import 'nprogress/nprogress.css' // progress bar style
114 - 158 +import {getAcctPersonGroupByAcctType,queryCustRechargeFeeStaticMsg,queryAcctPayOutForPage} from '@/api/account';
  159 +import {fen2Yuan,string2Date} from '@/filters/index';
115 export default { 160 export default {
116 components:{ 161 components:{
117 'i-pagination': pagination 162 'i-pagination': pagination
@@ -121,101 +166,140 @@ export default { @@ -121,101 +166,140 @@ export default {
121 }, 166 },
122 data() { 167 data() {
123 return { 168 return {
  169 + rechargeBalance:0,
  170 + presentBalance:0,
124 list: null, 171 list: null,
125 tabPosition:'top', 172 tabPosition:'top',
126 listLoading: true, 173 listLoading: true,
127 btnLoading:false, 174 btnLoading:false,
128 loading:false, 175 loading:false,
129 - paytableData: [  
130 - {  
131 - parkName: '个人账户',  
132 - license: '21',  
133 - money: '31',  
134 - inTime: '2019-06-02 09:00:00',  
135 - },  
136 - {  
137 - parkName: '个人账户',  
138 - license: '10',  
139 - money: '31',  
140 - inTime: '2019-06-02 00:23:00',  
141 - },  
142 - {  
143 - parkName: '个人账户',  
144 - license: '21',  
145 - money: '31',  
146 - inTime: '2019-06-02 09:00:00',  
147 - },  
148 - {  
149 - parkName: '个人账户',  
150 - license: '10',  
151 - money: '31',  
152 - inTime: '2019-06-02 00:23:00',  
153 - },{  
154 - parkName: '个人账户',  
155 - license: '10',  
156 - money: '31',  
157 - inTime: '2019-06-02 00:23:00',  
158 - }, 176 + rechargeTableData: [
159 ], 177 ],
160 - outtableData: [  
161 - {  
162 - parkName: '个人账户',  
163 - license: '21',  
164 - money: '31',  
165 - outtype: '停车支付',  
166 - inTime: '2019-06-02 09:00:00',  
167 - },  
168 - {  
169 - parkName: '个人账户',  
170 - license: '10',  
171 - money: '31',  
172 - outtype: '停车支付',  
173 - inTime: '2019-06-02 00:23:00',  
174 - },  
175 - {  
176 - parkName: '个人账户',  
177 - license: '21',  
178 - money: '31',  
179 - outtype: '停车支付',  
180 - inTime: '2019-06-02 09:00:00',  
181 - },  
182 - {  
183 - parkName: '个人账户',  
184 - license: '10',  
185 - money: '31',  
186 - outtype: '停车支付',  
187 - inTime: '2019-06-02 00:23:00',  
188 - }, 178 + payOutTableData: [
189 ], 179 ],
190 /** 分页*/ 180 /** 分页*/
191 - total: 32, 181 + total: 0,
192 currentPage: 1, 182 currentPage: 1,
193 pageSize: 10, 183 pageSize: 10,
  184 + total2: 0,
  185 + currentPage2: 1,
  186 + pageSize2: 10,
194 } 187 }
195 }, 188 },
196 - computed: { 189 + mounted: function() {
  190 + this.getAcctPersonGroupByAcctType();
  191 + this.queryCustRechargeFeeStaticMsg();
  192 + this.queryAcctPayOutForPage();
197 }, 193 },
198 - created() {  
199 194
200 - },  
201 - mounted:function () {  
202 - },  
203 methods: { 195 methods: {
204 - queryBtn:function () {  
205 - LoadingBar.start();  
206 - this.btnLoading=true;  
207 - this.loading = true; 196 + /**
  197 + * 获取查询参数
  198 + */
  199 + getQueryParams: function() {
  200 + let userInfo = this.$store.state.user.userInfo;
  201 + let beginTime = new Date();
  202 + let endTime = new Date();
  203 + beginTime.setFullYear(2017);
  204 +
  205 + let req = {
  206 + beginTime:beginTime,
  207 + endTime:endTime,
  208 + sysCode:'10003',
  209 + custId:userInfo.custId,
  210 + // custId:'501519113641649119232',//账户支出
  211 + //custId:'501522943145292840960',//账户充值
  212 +
  213 + }
  214 + return req;
  215 + },
  216 + /**
  217 + * 查询车主账户信息
  218 + */
  219 + getAcctPersonGroupByAcctType: function() {
  220 + let req = this.getQueryParams();
  221 + getAcctPersonGroupByAcctType(req).then(response =>{
  222 + if(response.code=='8888'){
  223 + let data = response.data;
  224 + let rechargeBalance = 0;
  225 + let presentBalance = 0;
  226 + data.forEach(item=>{
  227 + if(item.acctType == 1){
  228 + rechargeBalance += item.acctBalance;
  229 + }
  230 + if(item.acctType == 7){
  231 + presentBalance += item.acctBalance;
  232 + }
  233 + });
  234 + this.rechargeBalance = rechargeBalance;
  235 + this.presentBalance = presentBalance;
  236 + }else{
  237 + console.log(response);
  238 + }
208 239
  240 + });
209 }, 241 },
210 - /**获取子组件页码方法*/  
211 - handleSizeChange: function(pages) {  
212 - this.currentPage = pages.page;  
213 - this.pageSize = pages.limit; 242 + /**
  243 + * 查询车主充值记录
  244 + */
  245 + queryCustRechargeFeeStaticMsg: function() {
  246 + let req = this.getQueryParams();
  247 + req.baseRequest={
  248 + pageNum:this.currentPage,
  249 + pageSize:this.pageSize,
  250 + },
  251 + queryCustRechargeFeeStaticMsg(req).then(response =>{
  252 + if(response.code=='8888'){
  253 + this.rechargeTableData = response.data.rows;
  254 + this.total = response.data.total;
  255 + }else{
  256 + console.log(response);
  257 + }
  258 +
  259 + });
  260 + },
  261 +
  262 + /**
  263 + * 查询车主支出记录
  264 + */
  265 + queryAcctPayOutForPage: function() {
  266 + let req = this.getQueryParams();
  267 +
  268 + req.baseRequest={
  269 + pageNum:this.currentPage2,
  270 + pageSize:this.pageSize2,
  271 + },
  272 + queryAcctPayOutForPage (req).then(response =>{
  273 + if(response.code=='8888'){
  274 + this.payOutTableData = response.data.rows;
  275 + this.total2 = response.data.total;
  276 + }else{
  277 + console.log(response);
  278 + }
  279 +
  280 + });
  281 + },
  282 + // 获取子组件页码方法
  283 + handleSizeChange: function(page) {
  284 + console.log(page)
  285 + this.currentPage = page;
214 /** 调用表格数据.*/ 286 /** 调用表格数据.*/
215 - this.queryBtn(); 287 + this.queryCustRechargeFeeStaticMsg();
  288 +
216 }, 289 },
  290 + // 获取子组件页码方法
  291 + handleSizeChange2: function(page) {
  292 + console.log(page)
  293 + this.currentPage2 = page;
  294 + /** 调用表格数据.*/
  295 + this.queryAcctPayOutForPage();
  296 +
  297 + },
  298 +
  299 + },
  300 +
  301 +
217 302
218 - }  
219 } 303 }
220 </script> 304 </script>
221 <style lang="scss" scoped > 305 <style lang="scss" scoped >
src/views/dashboard/index.vue
@@ -8,10 +8,10 @@ @@ -8,10 +8,10 @@
8 </div> 8 </div>
9 <div class="card-panel-description"> 9 <div class="card-panel-description">
10 <div class="card-panel-text"> 10 <div class="card-panel-text">
11 - 本月订单: 21 11 + 本月订单: {{cardData.monthOrderNum}}
12 </div> 12 </div>
13 <div class="card-panel-text"> 13 <div class="card-panel-text">
14 - 订单总量: 1231 14 + 订单总量: {{cardData.totalOrderNum}}
15 </div> 15 </div>
16 </div> 16 </div>
17 </div> 17 </div>
@@ -23,10 +23,10 @@ @@ -23,10 +23,10 @@
23 </div> 23 </div>
24 <div class="card-panel-description"> 24 <div class="card-panel-description">
25 <div class="card-panel-text"> 25 <div class="card-panel-text">
26 - 可用卡券: 101 26 + 可用卡券: {{cardData.validCouponNum}}
27 </div> 27 </div>
28 <div class="card-panel-text"> 28 <div class="card-panel-text">
29 - 卡券总量: 332 29 + 卡券总量: {{cardData.totalCouponNum}}
30 </div> 30 </div>
31 </div> 31 </div>
32 </div> 32 </div>
@@ -38,10 +38,10 @@ @@ -38,10 +38,10 @@
38 </div> 38 </div>
39 <div class="card-panel-description"> 39 <div class="card-panel-description">
40 <div class="card-panel-text"> 40 <div class="card-panel-text">
41 - 可用积分: 21 41 + 可用积分: {{cardData.validScore}}
42 </div> 42 </div>
43 <div class="card-panel-text"> 43 <div class="card-panel-text">
44 - 全部积分: 231 44 + 全部积分: {{cardData.totalScore}}
45 </div> 45 </div>
46 </div> 46 </div>
47 </div> 47 </div>
@@ -115,158 +115,230 @@ @@ -115,158 +115,230 @@
115 style="width: 100%;" 115 style="width: 100%;"
116 :show-overflow-tooltip="true"> 116 :show-overflow-tooltip="true">
117 <el-table-column 117 <el-table-column
118 - prop="parkName" 118 + prop="plName"
119 label="停车场" 119 label="停车场"
120 :show-overflow-tooltip="true"> 120 :show-overflow-tooltip="true">
121 </el-table-column> 121 </el-table-column>
122 <el-table-column 122 <el-table-column
123 - prop="license" 123 + prop="carNumber"
124 label="车牌" 124 label="车牌"
125 :show-overflow-tooltip="true"> 125 :show-overflow-tooltip="true">
126 </el-table-column> 126 </el-table-column>
127 <el-table-column 127 <el-table-column
128 - prop="money" 128 + prop="orderActFee"
129 label="停车费"> 129 label="停车费">
  130 + <template slot-scope="scope">
  131 + <span>{{(scope.row.orderActFee) |fen2Yuan}} </span>
  132 + </template>
130 </el-table-column> 133 </el-table-column>
131 <el-table-column 134 <el-table-column
132 - prop="inTime" 135 + prop="parkInTime"
133 label="入场时间" 136 label="入场时间"
134 :show-overflow-tooltip="true"> 137 :show-overflow-tooltip="true">
  138 + <template slot-scope="scope">
  139 + <span>{{(scope.row.parkInTime) |string2Date(7)}} </span>
  140 + </template>
135 </el-table-column> 141 </el-table-column>
136 <el-table-column 142 <el-table-column
137 - prop="outTime" 143 + prop="parkOutTime"
138 label="出场时间" 144 label="出场时间"
139 :show-overflow-tooltip="true"> 145 :show-overflow-tooltip="true">
  146 + <template slot-scope="scope">
  147 + <span>{{(scope.row.parkOutTime) |string2Date(7)}} </span>
  148 + </template>
140 </el-table-column> 149 </el-table-column>
141 <el-table-column 150 <el-table-column
142 - prop="duration" 151 + prop="parkingDuration"
143 label="停车时长" 152 label="停车时长"
144 :show-overflow-tooltip="true"> 153 :show-overflow-tooltip="true">
  154 + <template slot-scope="scope">
  155 + <span>{{(scope.row) |parkingDurationFormatter(scope.row.parkingDuration)}} </span>
  156 + </template>
145 </el-table-column> 157 </el-table-column>
146 <el-table-column 158 <el-table-column
147 - prop="berthNum" 159 + prop="berthNo"
148 label="泊位编号"> 160 label="泊位编号">
149 </el-table-column> 161 </el-table-column>
150 <el-table-column 162 <el-table-column
151 - prop="status" 163 + prop="orderState"
152 label="订单状态"> 164 label="订单状态">
  165 + <template slot-scope="scope">
  166 + <span>{{(scope.row) |inOutStateFormatter}} </span>
  167 + </template>
153 </el-table-column> 168 </el-table-column>
154 </el-table> 169 </el-table>
155 <el-pagination 170 <el-pagination
156 :page-size="10" 171 :page-size="10"
157 :pager-count="11" 172 :pager-count="11"
158 layout="prev, pager, next" 173 layout="prev, pager, next"
159 - :total="total"> 174 + :total="total"
  175 + @size-change="handleSizeChange"
  176 + @current-change="handleSizeChange"
  177 + @prev-click="handleSizeChange"
  178 + @next-click="handleSizeChange"
  179 + >
160 </el-pagination> 180 </el-pagination>
161 </div> 181 </div>
162 </div> 182 </div>
163 </template> 183 </template>
164 184
165 <script> 185 <script>
166 -import { mapGetters } from 'vuex'  
167 -  
168 -export default {  
169 - name: 'Dashboard',  
170 - computed: {  
171 - ...mapGetters([  
172 - 'name'  
173 - ])  
174 - },  
175 - data() {  
176 - return {  
177 - total: 15,  
178 - currentPage: 1,  
179 - pageSize: 10,  
180 - moneyData: [{  
181 - name: '消费金额',  
182 - january: '123411',  
183 - february: '9787162',  
184 - march: '123097',  
185 - april: '82713',  
186 - may: '1239789',  
187 - june: '81273',  
188 - july: '129387',  
189 - august: '1298778',  
190 - september: '1239878',  
191 - october: '76765',  
192 - november: '123124',  
193 - december: '12341'  
194 - }],  
195 - orderData: [  
196 - {  
197 - parkName: '承德老二中停车场',  
198 - license: '冀H7517732',  
199 - money: '31',  
200 - inTime: '2019-06-02 00:00:00',  
201 - outTime: '2019-06-01 08:00:00',  
202 - duration: '2小时28分钟43秒',  
203 - berthNum: 'A1212231',  
204 - status: '完成'  
205 - },  
206 - {  
207 - parkName: '承德老二中停车场',  
208 - license: '冀H7517732',  
209 - money: '31',  
210 - inTime: '2019-06-02 00:00:00',  
211 - outTime: '2019-06-01 08:00:00',  
212 - duration: '2小时28分钟43秒',  
213 - berthNum: 'A1212231',  
214 - status: '完成'  
215 - },  
216 - {  
217 - parkName: '承德老二中停车场',  
218 - license: '冀H7517732',  
219 - money: '31',  
220 - inTime: '2019-06-02 00:00:00',  
221 - outTime: '2019-06-01 08:00:00',  
222 - duration: '2小时28分钟43秒',  
223 - berthNum: 'A1212231',  
224 - status: '完成'  
225 - },  
226 - {  
227 - parkName: '承德老二中停车场',  
228 - license: '冀H7517732',  
229 - money: '31',  
230 - inTime: '2019-06-02 00:00:00',  
231 - outTime: '2019-06-01 08:00:00',  
232 - duration: '2小时28分钟43秒',  
233 - berthNum: 'A1212231',  
234 - status: '完成'  
235 - },  
236 - {  
237 - parkName: '承德老二中停车场',  
238 - license: '冀H7517732',  
239 - money: '31',  
240 - inTime: '2019-06-02 00:00:00',  
241 - outTime: '2019-06-01 08:00:00',  
242 - duration: '2小时28分钟43秒',  
243 - berthNum: 'A1212231',  
244 - status: '完成' 186 + import { mapGetters } from 'vuex'
  187 + import {getCustIndexBaseInfo,queryOwnerPayOutByMonth,queryOwnerParkRecord} from '@/api/index';
  188 + import {fen2Yuan,string2Date,inOutStateFormatter,parkingDurationFormatter} from '@/filters/index';
  189 + export default {
  190 + name: 'Dashboard',
  191 + computed: {
  192 + ...mapGetters([
  193 + 'name'
  194 + ])
  195 + },
  196 + data() {
  197 + return {
  198 + cardData: {
  199 + totalOrderNum: 0,
  200 + monthOrderNum: 0,
  201 + totalCouponNum: 0,
  202 + validCouponNum: 0,
  203 + totalScore: 0,
  204 + validScore: 0,
245 }, 205 },
246 - {  
247 - parkName: '承德老二中停车场',  
248 - license: '冀H7517732',  
249 - money: '31',  
250 - inTime: '2019-06-02 00:00:00',  
251 - outTime: '2019-06-01 08:00:00',  
252 - duration: '2小时28分钟43秒',  
253 - berthNum: 'A1212231',  
254 - status: '完成'  
255 - },  
256 - {  
257 - parkName: '承德老二中停车场',  
258 - license: '冀H7517732',  
259 - money: '31',  
260 - inTime: '2019-06-02 00:00:00',  
261 - outTime: '2019-06-01 08:00:00',  
262 - duration: '2小时28分钟43秒',  
263 - berthNum: 'A1212231',  
264 - status: '完成' 206 + total: 15,
  207 + currentPage: 1,
  208 + pageSize: 10,
  209 + moneyData: [{
  210 + name: '消费金额',
  211 + january: '0',
  212 + february: '0',
  213 + march: '0',
  214 + april: '0',
  215 + may: '0',
  216 + june: '0',
  217 + july: '0',
  218 + august: '0',
  219 + september: '0',
  220 + october: '0',
  221 + november: '0',
  222 + december: '0'
  223 + }],
  224 + orderData: [],
  225 + }
  226 + },
  227 +
  228 + mounted: function() {
  229 + this.getCustIndexBaseInfo();
  230 + this.queryOwnerPayOutByMonth();
  231 + this.queryOwnerParkRecord();
  232 + },
  233 +
  234 + methods: {
  235 + /**
  236 + * 获取查询参数
  237 + */
  238 + getQueryParams: function() {
  239 + let userInfo = this.$store.state.user.userInfo;
  240 + let beginTime = new Date();
  241 + let endTime = new Date();
  242 + beginTime.setMonth(0);
  243 + beginTime.setDate(1);
  244 + endTime.setMonth(11);
  245 + endTime.setDate(31);
  246 +
  247 + let req = {
  248 + custId:userInfo.custId,
  249 + //custId:'501519113641649119232',
  250 + beginTime:beginTime,
  251 + endTime:endTime,
  252 + }
  253 + return req;
  254 + },
  255 + /**
  256 + * 查询首页卡片信息
  257 + */
  258 + getCustIndexBaseInfo: function() {
  259 + let req = this.getQueryParams();
  260 + getCustIndexBaseInfo(req).then(response =>{
  261 + if(response.code=='8888'){
  262 + let data = response.data;
  263 + this.cardData.totalOrderNum = data.totalOrderNum == null ? 0: data.totalOrderNum;
  264 + this.cardData.monthOrderNum = data.monthOrderNum == null ? 0: data.monthOrderNum;
  265 + this.cardData.totalCouponNum = data.totalCouponNum == null ? 0: data.totalCouponNum;
  266 + this.cardData.validCouponNum = data.validCouponNum == null ? 0: data.validCouponNum;
  267 + this.cardData.totalScore = data.totalScore == null ? 0: data.totalScore;
  268 + this.cardData.validScore = data.validScore == null ? 0: data.validScore;
  269 + }else{
  270 + console.log(response);
  271 + }
  272 +
  273 + });
  274 + },
  275 + /**
  276 + * 查询首页月支出信息
  277 + */
  278 + queryOwnerPayOutByMonth: function() {
  279 + let req = this.getQueryParams();
  280 +
  281 + queryOwnerPayOutByMonth(req).then(response =>{
  282 + if(response.code=='8888'){
  283 + let data = response.data;
  284 + this.moneyData[0].january = fen2Yuan(data[0].fee);
  285 + this.moneyData[0]. february = fen2Yuan(data[1].fee);
  286 + this.moneyData[0]. march = fen2Yuan(data[2].fee);
  287 + this.moneyData[0]. april = fen2Yuan(data[3].fee);
  288 + this.moneyData[0]. may = fen2Yuan(data[4].fee);
  289 + this.moneyData[0]. june = fen2Yuan(data[5].fee);
  290 + this.moneyData[0]. july = fen2Yuan(data[6].fee);
  291 + this.moneyData[0]. august = fen2Yuan(data[7].fee);
  292 + this.moneyData[0]. september = fen2Yuan(data[8].fee);
  293 + this.moneyData[0]. october = fen2Yuan(data[9].fee);
  294 + this.moneyData[0]. november =fen2Yuan( data[10].fee);
  295 + this.moneyData[0]. december = fen2Yuan(data[11].fee);
  296 +
  297 + }else{
  298 + console.log(response);
  299 + }
  300 +
  301 + });
  302 + },
  303 +
  304 + /**
  305 + * 查询首页订单信息
  306 + */
  307 + queryOwnerParkRecord: function() {
  308 + let req = this.getQueryParams();
  309 + //查询最近三个月的
  310 + let beginTime = new Date();
  311 + let endTime = new Date();
  312 + beginTime.setMonth(beginTime.getMonth() - 3);
  313 + req.beginTime = beginTime;
  314 + req.endTime = endTime;
  315 + req.baseRequest={
  316 + pageNum:this.currentPage,
  317 + pageSize:this.pageSize,
265 }, 318 },
266 - ]  
267 - } 319 + queryOwnerParkRecord (req).then(response =>{
  320 + if(response.code=='8888'){
  321 + this.orderData = response.data.dataList;
  322 + this.total = response.data.pageTotals;
  323 + }else{
  324 + console.log(response);
  325 + }
  326 +
  327 + });
  328 + },
  329 + // 获取子组件页码方法
  330 + handleSizeChange: function(page) {
  331 + console.log(page)
  332 + this.currentPage = page;
  333 + /** 调用表格数据.*/
  334 + this.queryOwnerParkRecord();
  335 +
  336 + },
  337 +
  338 +
  339 + },
  340 +
268 } 341 }
269 -}  
270 </script> 342 </script>
271 343
272 <style lang="scss" scoped> 344 <style lang="scss" scoped>
src/views/order/index.vue
@@ -3,30 +3,30 @@ @@ -3,30 +3,30 @@
3 <div class="serch-wrap"> 3 <div class="serch-wrap">
4 <el-row :gutter="20"> 4 <el-row :gutter="20">
5 <el-form ref="form" :model="form" label-width="60px" label-position="left"> 5 <el-form ref="form" :model="form" label-width="60px" label-position="left">
6 - <el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1"> 6 + <!--<el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1">-->
7 7
8 - <el-form-item label="停车场">  
9 - <el-select v-model="form.region" placeholder="请选择停车场">  
10 - <el-option label="停车场BA" value="shanghai"/>  
11 - <el-option label="停车场" value="beijing"/>  
12 - </el-select>  
13 - </el-form-item> 8 + <!--<el-form-item label="停车场">-->
  9 + <!--<el-select v-model="form.plNos" placeholder="请选择停车场">-->
  10 + <!--<el-option label="停车场BA" value="shanghai"/>-->
  11 + <!--<el-option label="停车场" value="beijing"/>-->
  12 + <!--</el-select>-->
  13 + <!--</el-form-item>-->
14 14
15 - </el-col> 15 + <!--</el-col>-->
16 <el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1"> 16 <el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1">
17 <el-form-item label="车牌"> 17 <el-form-item label="车牌">
18 - <el-input v-model="form.name" maxlength="10" /> 18 + <el-input v-model="form.carNum" maxlength="10" />
19 </el-form-item> 19 </el-form-item>
20 </el-col> 20 </el-col>
21 - <el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1">  
22 - <el-form-item label="类型">  
23 - <el-select v-model="form.region" placeholder="请选择类型">  
24 - <el-option label="室内停车场" value="shanghai"/>  
25 - <el-option label="路侧停车场" value="beijing"/>  
26 - </el-select>  
27 - </el-form-item>  
28 - </el-col>  
29 - <el-col :xs="8" :sm="6" :md="3" :lg="3" :xl="1"> 21 + <!--<el-col :xs="8" :sm="6" :md="7" :lg="7" :xl="1">-->
  22 + <!--<el-form-item label="类型">-->
  23 + <!--<el-select v-model="form.region" placeholder="请选择类型">-->
  24 + <!--<el-option label="室内停车场" value="shanghai"/>-->
  25 + <!--<el-option label="路侧停车场" value="beijing"/>-->
  26 + <!--</el-select>-->
  27 + <!--</el-form-item>-->
  28 + <!--</el-col>-->
  29 + <el-col :xs="8" :sm="6" :md="3" :lg="3" :xl="1" >
30 <el-button type="primary" @click="onSubmit">查询</el-button> 30 <el-button type="primary" @click="onSubmit">查询</el-button>
31 </el-col> 31 </el-col>
32 </el-form> 32 </el-form>
@@ -40,147 +40,144 @@ @@ -40,147 +40,144 @@
40 style="width: 100%;" 40 style="width: 100%;"
41 :show-overflow-tooltip="true"> 41 :show-overflow-tooltip="true">
42 <el-table-column 42 <el-table-column
43 - prop="parkName" 43 + prop="plName"
44 label="停车场" 44 label="停车场"
45 :show-overflow-tooltip="true"> 45 :show-overflow-tooltip="true">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="license" 48 + prop="carNumber"
49 label="车牌" 49 label="车牌"
50 :show-overflow-tooltip="true"> 50 :show-overflow-tooltip="true">
51 </el-table-column> 51 </el-table-column>
52 <el-table-column 52 <el-table-column
53 - prop="money" 53 + prop="orderActFee"
54 label="停车费"> 54 label="停车费">
  55 + <template slot-scope="scope">
  56 + <span>{{(scope.row.orderActFee) |fen2Yuan}} </span>
  57 + </template>
55 </el-table-column> 58 </el-table-column>
56 <el-table-column 59 <el-table-column
57 - prop="inTime"  
58 - label="进场时间" 60 + prop="parkInTime"
  61 + label="入场时间"
59 :show-overflow-tooltip="true"> 62 :show-overflow-tooltip="true">
  63 + <template slot-scope="scope">
  64 + <span>{{(scope.row.parkInTime) |string2Date(7)}} </span>
  65 + </template>
60 </el-table-column> 66 </el-table-column>
61 <el-table-column 67 <el-table-column
62 - prop="outTime" 68 + prop="parkOutTime"
63 label="出场时间" 69 label="出场时间"
64 :show-overflow-tooltip="true"> 70 :show-overflow-tooltip="true">
  71 + <template slot-scope="scope">
  72 + <span>{{(scope.row.parkOutTime) |string2Date(7)}} </span>
  73 + </template>
65 </el-table-column> 74 </el-table-column>
66 <el-table-column 75 <el-table-column
67 - prop="duration" 76 + prop="parkingDuration"
68 label="停车时长" 77 label="停车时长"
69 :show-overflow-tooltip="true"> 78 :show-overflow-tooltip="true">
  79 + <template slot-scope="scope">
  80 + <span>{{(scope.row) |parkingDurationFormatter(scope.row.parkingDuration)}} </span>
  81 + </template>
70 </el-table-column> 82 </el-table-column>
71 <el-table-column 83 <el-table-column
72 - prop="berthNum" 84 + prop="berthNo"
73 label="泊位编号"> 85 label="泊位编号">
74 </el-table-column> 86 </el-table-column>
75 <el-table-column 87 <el-table-column
76 - prop="status" 88 + prop="orderState"
77 label="订单状态"> 89 label="订单状态">
  90 + <template slot-scope="scope">
  91 + <span>{{(scope.row) |inOutStateFormatter}} </span>
  92 + </template>
78 </el-table-column> 93 </el-table-column>
79 </el-table> 94 </el-table>
80 <el-pagination 95 <el-pagination
81 :page-size="10" 96 :page-size="10"
82 :pager-count="11" 97 :pager-count="11"
83 layout="prev, pager, next" 98 layout="prev, pager, next"
84 - :total="total"> 99 + :total="total"
  100 + @size-change="handleSizeChange"
  101 + @current-change="handleSizeChange"
  102 + @prev-click="handleSizeChange"
  103 + @next-click="handleSizeChange"
  104 + >
85 </el-pagination> 105 </el-pagination>
86 </div> 106 </div>
87 </div> 107 </div>
88 </template> 108 </template>
89 109
90 <script> 110 <script>
  111 + import {queryOwnerParkRecord} from '@/api/index';
  112 + import {fen2Yuan,string2Date,inOutStateFormatter,parkingDurationFormatter} from '@/filters/index';
91 export default { 113 export default {
92 data() { 114 data() {
93 return { 115 return {
94 form: { 116 form: {
95 - name: '',  
96 - region: '',  
97 - date1: '',  
98 - date2: '',  
99 - delivery: false,  
100 - type: [],  
101 - resource: '',  
102 - desc: '' 117 + plNos: null,
  118 + carNum: null,
  119 +
103 }, 120 },
104 - total: 55, 121 + total: 0,
105 currentPage: 1, 122 currentPage: 1,
106 pageSize: 10, 123 pageSize: 10,
107 orderData: [ 124 orderData: [
108 - {  
109 - parkName: '承德老二中停车场',  
110 - license: '冀H7517732',  
111 - money: '31',  
112 - inTime: '2019-06-02 00:00:00',  
113 - outTime: '2019-06-01 08:00:00',  
114 - duration: '2小时28分钟43秒',  
115 - berthNum: 'A1212231',  
116 - status: '完成'  
117 - },  
118 - {  
119 - parkName: '承德老二中停车场',  
120 - license: '冀H7517732',  
121 - money: '31',  
122 - inTime: '2019-06-02 00:00:00',  
123 - outTime: '2019-06-01 08:00:00',  
124 - duration: '2小时28分钟43秒',  
125 - berthNum: 'A1212231',  
126 - status: '完成'  
127 - },  
128 - {  
129 - parkName: '承德老二中停车场',  
130 - license: '冀H7517732',  
131 - money: '31',  
132 - inTime: '2019-06-02 00:00:00',  
133 - outTime: '2019-06-01 08:00:00',  
134 - duration: '2小时28分钟43秒',  
135 - berthNum: 'A1212231',  
136 - status: '完成'  
137 - },  
138 - {  
139 - parkName: '承德老二中停车场',  
140 - license: '冀H7517732',  
141 - money: '31',  
142 - inTime: '2019-06-02 00:00:00',  
143 - outTime: '2019-06-01 08:00:00',  
144 - duration: '2小时28分钟43秒',  
145 - berthNum: 'A1212231',  
146 - status: '完成'  
147 - },  
148 - {  
149 - parkName: '承德老二中停车场',  
150 - license: '冀H7517732',  
151 - money: '31',  
152 - inTime: '2019-06-02 00:00:00',  
153 - outTime: '2019-06-01 08:00:00',  
154 - duration: '2小时28分钟43秒',  
155 - berthNum: 'A1212231',  
156 - status: '完成'  
157 - },  
158 - {  
159 - parkName: '承德老二中停车场',  
160 - license: '冀H7517732',  
161 - money: '31',  
162 - inTime: '2019-06-02 00:00:00',  
163 - outTime: '2019-06-01 08:00:00',  
164 - duration: '2小时28分钟43秒',  
165 - berthNum: 'A1212231',  
166 - status: '完成'  
167 - },  
168 - {  
169 - parkName: '承德老二中停车场',  
170 - license: '冀H7517732',  
171 - money: '31',  
172 - inTime: '2019-06-02 00:00:00',  
173 - outTime: '2019-06-01 08:00:00',  
174 - duration: '2小时28分钟43秒',  
175 - berthNum: 'A1212231',  
176 - status: '完成'  
177 - },  
178 ] 125 ]
179 } 126 }
180 }, 127 },
  128 + mounted: function() {
  129 +
  130 + this.queryOwnerParkRecord();
  131 + },
181 methods: { 132 methods: {
  133 + /**
  134 + * 获取查询参数
  135 + */
  136 + getQueryParams: function() {
  137 + let userInfo = this.$store.state.user.userInfo;
  138 + let plNos = [];
  139 + if(this.form.plNos != null && this.form.plNos != ''){
  140 + plNos.push(this.form.plNos);
  141 + }
  142 + let req = {
  143 + custId:userInfo.custId,
  144 + // custId:'501519113641649119232',
  145 + plNos:plNos,
  146 + carNum:this.form.carNum,
  147 + }
  148 + return req;
  149 + },
  150 + /**
  151 + * 查询订单信息
  152 + */
  153 + queryOwnerParkRecord: function() {
  154 + let req = this.getQueryParams();
  155 +
  156 + req.baseRequest={
  157 + pageNum:this.currentPage,
  158 + pageSize:this.pageSize,
  159 + },
  160 + queryOwnerParkRecord (req).then(response =>{
  161 + if(response.code=='8888'){
  162 + this.orderData = response.data.dataList;
  163 + this.total = response.data.pageTotals;
  164 + }else{
  165 + console.log(response);
  166 + }
  167 +
  168 + });
  169 + },
  170 + // 获取子组件页码方法
  171 + handleSizeChange: function(page) {
  172 + console.log(page)
  173 + this.currentPage = page;
  174 + /** 调用表格数据.*/
  175 + this.queryOwnerParkRecord();
  176 +
  177 + },
  178 +
182 onSubmit() { 179 onSubmit() {
183 - this.$message('submit!') 180 + this.queryOwnerParkRecord();
184 }, 181 },
185 onCancel() { 182 onCancel() {
186 this.$message({ 183 this.$message({