Showing
11 changed files
with
900 additions
and
0 deletions
@@ -5,6 +5,7 @@ import franchisePayment from './franchise-payment'; | @@ -5,6 +5,7 @@ import franchisePayment from './franchise-payment'; | ||
5 | import print from './print'; | 5 | import print from './print'; |
6 | import stock from './stock'; | 6 | import stock from './stock'; |
7 | import invoice from './invoice'; | 7 | import invoice from './invoice'; |
8 | +import withdraw from './withdraw'; | ||
8 | export default { | 9 | export default { |
9 | clearing, | 10 | clearing, |
10 | payment, | 11 | payment, |
@@ -13,4 +14,5 @@ export default { | @@ -13,4 +14,5 @@ export default { | ||
13 | print, | 14 | print, |
14 | stock, | 15 | stock, |
15 | invoice, | 16 | invoice, |
17 | + withdraw, | ||
16 | }; | 18 | }; |
app/pages/finance/withdraw/detail.vue
0 → 100644
1 | +<template> | ||
2 | + <layout-body> | ||
3 | + <layout-filter> | ||
4 | + <filter-item> | ||
5 | + <p><span class="bold-title">状态:提现成功</span><br /><span class="no">交易成功时间:2020-03-31 23:43:21</span></p> | ||
6 | + </filter-item> | ||
7 | + <filter-item> | ||
8 | + <p><span class="no">创建时间:2020-3-30 21:34:23</span><span class="no">店铺:一件代发店铺</span><span class="no">供应商:一件代发供应商</span></p> | ||
9 | + </filter-item> | ||
10 | + </layout-filter> | ||
11 | + <layout-list> | ||
12 | +<!-- <Table border :columns="columns" :row-class-name="rowClassName" :data="dataList"></Table>--> | ||
13 | + <table border class="table-body"> | ||
14 | + <tr class="tr-body" v-for="(row, outerIndex) in dataArray" :key="outerIndex"> | ||
15 | + <!-- flex: 0 0 x% 自适应布局,每一大列的宽度按百分比显示 --> | ||
16 | + <div class="td-box" :style="{flex: '0 0 ' + 100 / row.length + '%'}" v-for="(col, innerIndex) in row" :key="innerIndex"> | ||
17 | + <td class="td-key">{{ col.key }}</td> | ||
18 | + <td class="td-value">{{ col.value }}</td> | ||
19 | + </div> | ||
20 | + </tr> | ||
21 | + </table> | ||
22 | + </layout-list> | ||
23 | + <layout-filter> | ||
24 | + <filter-item> | ||
25 | + <i-button type="primary" @click="backList">返回列表</i-button> | ||
26 | + <i-button type="ghost" @click="handleTeacherData">测试数据展示</i-button> | ||
27 | + </filter-item> | ||
28 | + </layout-filter> | ||
29 | + </layout-body> | ||
30 | +</template> | ||
31 | +<script> | ||
32 | + import _ from 'lodash'; | ||
33 | + import detail from './store/detail'; | ||
34 | + | ||
35 | + export default { | ||
36 | + data() { | ||
37 | + return detail.call(this); | ||
38 | + }, | ||
39 | + props: { | ||
40 | + dataArray: { | ||
41 | + type: Array, | ||
42 | + require: true | ||
43 | + } | ||
44 | + }, | ||
45 | + methods: { | ||
46 | + backList() { | ||
47 | + this.$router.push({ name: 'finance.withdraw.withdrawlist' }); | ||
48 | + }, | ||
49 | + handleTeacherData () { | ||
50 | + // if (!teacher) { | ||
51 | + // return | ||
52 | + // } | ||
53 | + let table = [] // 大表格 | ||
54 | + let tmpRow = [] // 临时数组,表示 row,一行数据 | ||
55 | + | ||
56 | + tmpRow.push({key: '业务单据号', value: "20200330200040011100100086516385"}) | ||
57 | + tmpRow.push({key: '类型', value: "提现"}) | ||
58 | + table.push(tmpRow) | ||
59 | + tmpRow = [] | ||
60 | + | ||
61 | + tmpRow.push({key: '收款账户', value: "张三商贸有限公司(caomei@yoho.cn)"}) | ||
62 | + tmpRow.push({key: '付款账户', value: "有货商贸有限公司(yh@yoho.cn)"}) | ||
63 | + table.push(tmpRow) | ||
64 | + tmpRow = [] | ||
65 | + | ||
66 | + tmpRow.push({key: '申请金额(元)', value: "10000.00"}) | ||
67 | + tmpRow.push({key: '服务费', value: '100.00'}) | ||
68 | + table.push(tmpRow) | ||
69 | + tmpRow = [] | ||
70 | + | ||
71 | + tmpRow.push({key: '成功金额(元)', value: "9900.00"}) | ||
72 | + tmpRow.push({key: '操作人', value: "商家/平台"}) | ||
73 | + table.push(tmpRow) | ||
74 | + tmpRow = [] | ||
75 | + | ||
76 | + tmpRow.push({key: '说明', value: "提现转账扣款(2020-03-23至2020-03-28)"}) | ||
77 | + tmpRow.push({key: '失败原因', value: "付款账户余额不足"}) | ||
78 | + table.push(tmpRow) | ||
79 | + tmpRow = [] | ||
80 | + | ||
81 | + tmpRow.push({key: '备注', value: "++++++------++++++"}) | ||
82 | + table.push(tmpRow) | ||
83 | + tmpRow = [] | ||
84 | + this.dataArray = table; | ||
85 | + } | ||
86 | + }, | ||
87 | + | ||
88 | + } | ||
89 | +</script> | ||
90 | + | ||
91 | +<style lang="scss" scoped> | ||
92 | + .bold-title{ | ||
93 | + font-size: 20px; | ||
94 | + font-weight: bold; | ||
95 | + } | ||
96 | + | ||
97 | + .table-body { | ||
98 | + width: 100%; | ||
99 | + border: 1px solid #333333; | ||
100 | + | ||
101 | + .tr-body { | ||
102 | + display: flex; | ||
103 | + border-bottom: 1px solid #333333; | ||
104 | + | ||
105 | + &:last-child { | ||
106 | + border-bottom: 0; | ||
107 | + } | ||
108 | + | ||
109 | + .td-box { | ||
110 | + display: flex; | ||
111 | + border-left: 1px solid #333333; | ||
112 | + | ||
113 | + &:first-child { | ||
114 | + border-left: 0; | ||
115 | + } | ||
116 | + | ||
117 | + .td-key { | ||
118 | + width: 120px; | ||
119 | + padding: 10px; | ||
120 | + line-height: 20px; | ||
121 | + text-align: center; | ||
122 | + background-color: #999999; | ||
123 | + border-right: 1px solid #444444; | ||
124 | + } | ||
125 | + | ||
126 | + .td-value { | ||
127 | + flex: 1 0; | ||
128 | + line-height: 20px; | ||
129 | + padding: 10px 20px; | ||
130 | + } | ||
131 | + } | ||
132 | + } | ||
133 | + } | ||
134 | +</style> |
app/pages/finance/withdraw/index.js
0 → 100644
1 | +export default [{ | ||
2 | + path: '/withdrawlist.html', | ||
3 | + name: 'withdrawlist', | ||
4 | + component: () => import(/* webpackChunkName: "finance.withdraw" */'./withdraw'), | ||
5 | + meta: { | ||
6 | + pageName: '资金操作明细' | ||
7 | + } | ||
8 | +},{ | ||
9 | + path: '/detail/:id.html', | ||
10 | + name: 'detail', | ||
11 | + component: () => import(/* webpackChunkName: "finance.withdraw" */'./detail'), | ||
12 | + meta: { | ||
13 | + pageName: '提现明细' | ||
14 | + } | ||
15 | +},{ | ||
16 | + path: '/servicelist.html', | ||
17 | + name: 'servicelist', | ||
18 | + component: () => import(/* webpackChunkName: "finance.withdraw" */'./service-list'), | ||
19 | + meta: { | ||
20 | + pageName: '服务费账单' | ||
21 | + } | ||
22 | +}]; |
app/pages/finance/withdraw/service-list.vue
0 → 100644
1 | +<template> | ||
2 | + <div class="stat-shop"> | ||
3 | + <p slot="title">服务费账单</p> | ||
4 | + <layout-filter class="box-filter" :inline="true" :col="1"> | ||
5 | + <filter-item :label="filters.dateRange.label" > | ||
6 | + <Date-picker type="datetimerange" | ||
7 | + :placeholder="filters.dateRange.label" | ||
8 | + @on-change="dateRange" | ||
9 | + v-model="filters.dateRange.model" | ||
10 | + format="yyyy-MM-dd"> | ||
11 | + </Date-picker> | ||
12 | + <div class="quick"> | ||
13 | + <a href="javascript:;" @click="() => {changeLimit(0)}">今日</a> | ||
14 | + <a href="javascript:;" @click="() => {changeLimit(1)}">昨天</a> | ||
15 | + <a href="javascript:;" @click="() => {changeLimit(7)}">近7天</a> | ||
16 | + <a href="javascript:;" @click="() => {changeLimit(30)}">近30天</a> | ||
17 | + </div> | ||
18 | + </filter-item> | ||
19 | + </layout-filter> | ||
20 | + </div> | ||
21 | +</template> | ||
22 | + | ||
23 | +<script> | ||
24 | + export default { | ||
25 | + name: "service-list" | ||
26 | + } | ||
27 | +</script> | ||
28 | + | ||
29 | +<style scoped> | ||
30 | + | ||
31 | +</style> |
app/pages/finance/withdraw/store/detail.js
0 → 100644
app/pages/finance/withdraw/store/index.js
0 → 100644
1 | +import moment from 'moment'; | ||
2 | +let curDay = moment().format('YYYY-MM-DD'); | ||
3 | + | ||
4 | +const withdrawStatus = { | ||
5 | + 0: '提现中', | ||
6 | + 1: '提现成功', | ||
7 | + 2: '提现失败' | ||
8 | +}; | ||
9 | + | ||
10 | +export default function() { | ||
11 | + return { | ||
12 | + day: curDay, | ||
13 | + date: curDay, | ||
14 | + dateRange: [curDay, curDay], | ||
15 | + beginTime: curDay, | ||
16 | + endTime: curDay, | ||
17 | + today: moment().format('YYYY-MM-DD'), | ||
18 | + yesterday: moment().add(-1, 'days').format('YYYY-MM-DD'), | ||
19 | + day7: moment().add(-6, 'days').format('YYYY-MM-DD'), | ||
20 | + day30: moment().add(-29, 'days').format('YYYY-MM-DD'), | ||
21 | + timeLimit: true, | ||
22 | + tableCols: [ | ||
23 | + { | ||
24 | + title: 'ID', | ||
25 | + key: 'id', | ||
26 | + width: 60, | ||
27 | + align: 'center' | ||
28 | + }, | ||
29 | + { | ||
30 | + title: '申请时间', | ||
31 | + key: 'createTime', | ||
32 | + width: 90, | ||
33 | + align: 'center' | ||
34 | + }, { | ||
35 | + title: '结算类型', | ||
36 | + key: 'clearingType', | ||
37 | + width: 90, | ||
38 | + align: 'center' | ||
39 | + }, { | ||
40 | + title: '商家收款账户', | ||
41 | + key: 'targetAccount', | ||
42 | + width: 90, | ||
43 | + align: 'center' | ||
44 | + }, { | ||
45 | + title: '申请金额(元)', | ||
46 | + key: 'applyAmount', | ||
47 | + width: 90, | ||
48 | + align: 'center' | ||
49 | + }, { | ||
50 | + title: '服务费(元)', | ||
51 | + key: 'serviceAmount', | ||
52 | + width: 90, | ||
53 | + align: 'center' | ||
54 | + }, { | ||
55 | + title: '成功金额(元)', | ||
56 | + }, { | ||
57 | + title: '提现状态', | ||
58 | + key: 'status', | ||
59 | + align: 'center', | ||
60 | + render: (h, params) => { | ||
61 | + const row = params.row; | ||
62 | + const as = row.status; | ||
63 | + const asText = as === 2 ? `${withdrawStatus[row.status]}(${row.rejectReason})` : withdrawStatus[as]; | ||
64 | + ow.lineIndex = params.index; | ||
65 | + return ( | ||
66 | + <p class={{'high-light': as === 2}}>{asText}</p> | ||
67 | + ); | ||
68 | + }, | ||
69 | + className: 'status-column' | ||
70 | + }, { | ||
71 | + title: '业务单据号', | ||
72 | + key: 'statementSn', | ||
73 | + width: 90, | ||
74 | + align: 'center' | ||
75 | + }, { | ||
76 | + title: '说明', | ||
77 | + }, { | ||
78 | + title: '操作人', | ||
79 | + key: 'applyPid', | ||
80 | + width: 90, | ||
81 | + align: 'center' | ||
82 | + }, { | ||
83 | + title: '操作', | ||
84 | + key: 'action', | ||
85 | + width: 180, | ||
86 | + align: 'center', | ||
87 | + render: (h, params) => { | ||
88 | + const row = params.row; | ||
89 | + return ( | ||
90 | + <div><div class="cell-action-row"> | ||
91 | + <i-button type="primary" size="small" onClick={() => this.getDetailById(row.id)}>提现明细</i-button> | ||
92 | + </div> | ||
93 | + <div class="cell-action-row"> | ||
94 | + <i-button type="primary" size="small" onClick={() => this.getInfoById(row.id)}>结算明细</i-button> | ||
95 | + </div></div> | ||
96 | + ); | ||
97 | + }, | ||
98 | + className: 'action-column' | ||
99 | + } | ||
100 | + ], | ||
101 | + tableData: [], | ||
102 | + pageData: { | ||
103 | + total: 0, | ||
104 | + current: 1, | ||
105 | + pageSize: 20 | ||
106 | + }, | ||
107 | + filters: { | ||
108 | + dateRange: { | ||
109 | + label: '起止日期', | ||
110 | + model: '', | ||
111 | + labelSpan: 8 | ||
112 | + }, | ||
113 | + beginTime: '', | ||
114 | + endTime: '', | ||
115 | + timeFlag: { | ||
116 | + label: '时间标志', | ||
117 | + model: '', | ||
118 | + options: [ | ||
119 | + { | ||
120 | + value: 1, | ||
121 | + label: '今天', | ||
122 | + },{ | ||
123 | + value: 2, | ||
124 | + label: '昨天', | ||
125 | + },{ | ||
126 | + value: 3, | ||
127 | + label: '近7天', | ||
128 | + },{ | ||
129 | + value: 4, | ||
130 | + label: '近30天', | ||
131 | + } | ||
132 | + ] | ||
133 | + }, | ||
134 | + withdrawStatus: { | ||
135 | + label: '提现状态', | ||
136 | + model: '', | ||
137 | + labelSpan: 6, | ||
138 | + fieldSpan: 18, | ||
139 | + options: [ | ||
140 | + { | ||
141 | + value: 0, | ||
142 | + label: '提现中', | ||
143 | + }, | ||
144 | + { | ||
145 | + value: 1, | ||
146 | + label: '提现成功', | ||
147 | + }, | ||
148 | + { | ||
149 | + value: 2, | ||
150 | + label: '提现失败', | ||
151 | + } | ||
152 | + ] | ||
153 | + }, | ||
154 | + statementSn: { | ||
155 | + label: '业务单据号', | ||
156 | + model: '', | ||
157 | + labelSpan: 6, | ||
158 | + fieldSpan: 18 | ||
159 | + }, | ||
160 | + targetAccount: { | ||
161 | + label: '提现账户', | ||
162 | + model: '', | ||
163 | + options: [ | ||
164 | + { | ||
165 | + value: 0, | ||
166 | + label: 'abcxxx@ert.com', | ||
167 | + }, | ||
168 | + { | ||
169 | + value: 1, | ||
170 | + label: 'hjkxxx@ihi.com', | ||
171 | + } | ||
172 | + ] | ||
173 | + } | ||
174 | + } | ||
175 | + } | ||
176 | +}; |
app/pages/finance/withdraw/store/withdraw.js
0 → 100644
1 | +import moment from 'moment'; | ||
2 | +let curDay = moment().format('YYYY-MM-DD'); | ||
3 | + | ||
4 | +const withdrawStatus = { | ||
5 | + 0: '提现中', | ||
6 | + 1: '提现成功', | ||
7 | + 2: '提现失败' | ||
8 | +}; | ||
9 | + | ||
10 | +export default function() { | ||
11 | + return { | ||
12 | + day: curDay, | ||
13 | + date: curDay, | ||
14 | + dateRange: [curDay, curDay], | ||
15 | + beginTime: curDay, | ||
16 | + endTime: curDay, | ||
17 | + today: moment().format('YYYY-MM-DD'), | ||
18 | + yesterday: moment().add(-1, 'days').format('YYYY-MM-DD'), | ||
19 | + day7: moment().add(-6, 'days').format('YYYY-MM-DD'), | ||
20 | + day30: moment().add(-29, 'days').format('YYYY-MM-DD'), | ||
21 | + timeLimit: true, | ||
22 | + tableCols: [ | ||
23 | + { | ||
24 | + title: 'ID', | ||
25 | + key: 'id', | ||
26 | + width: 60, | ||
27 | + align: 'center' | ||
28 | + }, | ||
29 | + { | ||
30 | + title: '申请时间', | ||
31 | + key: 'createTime', | ||
32 | + width: 90, | ||
33 | + align: 'center' | ||
34 | + }, { | ||
35 | + title: '结算类型', | ||
36 | + key: 'clearingType', | ||
37 | + width: 90, | ||
38 | + align: 'center' | ||
39 | + }, { | ||
40 | + title: '商家收款账户', | ||
41 | + key: 'targetAccount', | ||
42 | + width: 90, | ||
43 | + align: 'center' | ||
44 | + }, { | ||
45 | + title: '申请金额(元)', | ||
46 | + key: 'applyAmount', | ||
47 | + width: 90, | ||
48 | + align: 'center' | ||
49 | + }, { | ||
50 | + title: '服务费(元)', | ||
51 | + key: 'serviceAmount', | ||
52 | + width: 90, | ||
53 | + align: 'center' | ||
54 | + }, { | ||
55 | + title: '成功金额(元)', | ||
56 | + }, { | ||
57 | + title: '提现状态', | ||
58 | + key: 'status', | ||
59 | + align: 'center', | ||
60 | + render: (h, params) => { | ||
61 | + const row = params.row; | ||
62 | + const as = row.status; | ||
63 | + const asText = as === 2 ? `${withdrawStatus[row.status]}(${row.rejectReason})` : withdrawStatus[as]; | ||
64 | + ow.lineIndex = params.index; | ||
65 | + return ( | ||
66 | + <p class={{'high-light': as === 2}}>{asText}</p> | ||
67 | + ); | ||
68 | + }, | ||
69 | + className: 'status-column' | ||
70 | + }, { | ||
71 | + title: '业务单据号', | ||
72 | + key: 'statementSn', | ||
73 | + width: 90, | ||
74 | + align: 'center' | ||
75 | + }, { | ||
76 | + title: '说明', | ||
77 | + }, { | ||
78 | + title: '操作人', | ||
79 | + key: 'applyPid', | ||
80 | + width: 90, | ||
81 | + align: 'center' | ||
82 | + }, { | ||
83 | + title: '操作', | ||
84 | + key: 'action', | ||
85 | + width: 180, | ||
86 | + align: 'center', | ||
87 | + render: (h, params) => { | ||
88 | + const row = params.row; | ||
89 | + return ( | ||
90 | + <div> | ||
91 | + <div class="cell-action-row"> | ||
92 | + <i-button type="primary" size="small" | ||
93 | + onClick={() => this.getDetailById(row.id)}>提现明细</i-button> | ||
94 | + </div> | ||
95 | + | ||
96 | + <div class="cell-action-row"> | ||
97 | + <i-button type="primary" size="small" | ||
98 | + onClick={() => this.getInfoById(row.id)}>结算明细</i-button> | ||
99 | + </div> | ||
100 | + </div> | ||
101 | + ); | ||
102 | + }, | ||
103 | + className: 'action-column' | ||
104 | + } | ||
105 | + ], | ||
106 | + tableData: [], | ||
107 | + pageData: { | ||
108 | + total: 0, | ||
109 | + current: 1, | ||
110 | + pageSize: 20 | ||
111 | + }, | ||
112 | + filters: { | ||
113 | + dateRange: { | ||
114 | + label: '起止日期', | ||
115 | + model: '', | ||
116 | + labelSpan: 8 | ||
117 | + }, | ||
118 | + beginTime: '', | ||
119 | + endTime: '', | ||
120 | + timeFlag: { | ||
121 | + label: '时间标志', | ||
122 | + model: '', | ||
123 | + options: [ | ||
124 | + { | ||
125 | + value: 1, | ||
126 | + label: '今天', | ||
127 | + },{ | ||
128 | + value: 2, | ||
129 | + label: '昨天', | ||
130 | + },{ | ||
131 | + value: 3, | ||
132 | + label: '近7天', | ||
133 | + },{ | ||
134 | + value: 4, | ||
135 | + label: '近30天', | ||
136 | + } | ||
137 | + ] | ||
138 | + }, | ||
139 | + withdrawStatus: { | ||
140 | + label: '提现状态', | ||
141 | + model: '', | ||
142 | + labelSpan: 6, | ||
143 | + fieldSpan: 18, | ||
144 | + options: [ | ||
145 | + { | ||
146 | + value: 0, | ||
147 | + label: '提现中', | ||
148 | + }, | ||
149 | + { | ||
150 | + value: 1, | ||
151 | + label: '提现成功', | ||
152 | + }, | ||
153 | + { | ||
154 | + value: 2, | ||
155 | + label: '提现失败', | ||
156 | + } | ||
157 | + ] | ||
158 | + }, | ||
159 | + statementSn: { | ||
160 | + label: '业务单据号', | ||
161 | + model: '', | ||
162 | + labelSpan: 6, | ||
163 | + fieldSpan: 18 | ||
164 | + }, | ||
165 | + targetAccount: { | ||
166 | + label: '提现账户', | ||
167 | + model: '', | ||
168 | + options: [ | ||
169 | + { | ||
170 | + value: 0, | ||
171 | + label: 'abcxxx@ert.com', | ||
172 | + }, | ||
173 | + { | ||
174 | + value: 1, | ||
175 | + label: 'hjkxxx@ihi.com', | ||
176 | + } | ||
177 | + ] | ||
178 | + } | ||
179 | + } | ||
180 | + } | ||
181 | +}; |
app/pages/finance/withdraw/withdraw.vue
0 → 100644
1 | +<template> | ||
2 | + <div class="stat-shop"> | ||
3 | + <layout-body> | ||
4 | + <p slot="title">资金操作明细</p> | ||
5 | + <layout-filter class="box-filter" :inline="true" :col="1"> | ||
6 | + <filter-item :label="filters.dateRange.label" > | ||
7 | + <Date-picker type="datetimerange" | ||
8 | + :placeholder="filters.dateRange.label" | ||
9 | + @on-change="dateRange" | ||
10 | + v-model="filters.dateRange.model" | ||
11 | + format="yyyy-MM-dd"> | ||
12 | + </Date-picker> | ||
13 | + <div class="quick"> | ||
14 | + <a href="javascript:;" @click="() => {changeLimit(0)}">今日</a> | ||
15 | + <a href="javascript:;" @click="() => {changeLimit(1)}">昨天</a> | ||
16 | + <a href="javascript:;" @click="() => {changeLimit(7)}">近7天</a> | ||
17 | + <a href="javascript:;" @click="() => {changeLimit(30)}">近30天</a> | ||
18 | + </div> | ||
19 | + </filter-item> | ||
20 | + <filter-item> | ||
21 | + <div class="select-container"> | ||
22 | + <Select v-model.trim="filters.withdrawStatus.model" :placeholder="filters.withdrawStatus.label" style="width: 200px;"> | ||
23 | + <Option v-for="option in filters.withdrawStatus.options" | ||
24 | + :value="option.value" :key="option.value">{{option.label}}</Option> | ||
25 | + </Select> | ||
26 | + </div> | ||
27 | + <div class="select-container"> | ||
28 | + <Input v-model.trim="filters.statementSn.model" :placeholder="filters.statementSn.label" :maxlength="20"></Input> | ||
29 | + </div> | ||
30 | +<!-- <div class="select-container">--> | ||
31 | +<!-- <Select v-model.trim="filters.targetAccount.model" :placeholder="filters.targetAccount.label" style="width: 200px;">--> | ||
32 | +<!-- <Option v-for="option in filters.targetAccount.options"--> | ||
33 | +<!-- :value="option.value" :key="option.value">{{option.label}}</Option>--> | ||
34 | +<!-- </Select>--> | ||
35 | +<!-- </div>--> | ||
36 | + <Poptip trigger="hover" placement="bottom-end"> | ||
37 | + <Button type="primary" @click="list">查询</Button> | ||
38 | + <Button type="primary" @click="reset">全部</Button> | ||
39 | + <Button type="warning" @click="exportFile">导出</Button> | ||
40 | + </Poptip> | ||
41 | + </filter-item> | ||
42 | + </layout-filter> | ||
43 | + <layout-list> | ||
44 | + <Table border :columns="tableCols" :data="tableData"></Table> | ||
45 | + <Page :total="pageData.total" :current="pageData.current" | ||
46 | + @on-change="pageChange" :page-size="pageData.pageSize" show-total></Page> | ||
47 | + </layout-list> | ||
48 | + </layout-body> | ||
49 | + </div> | ||
50 | +</template> | ||
51 | + | ||
52 | +<script> | ||
53 | + import moment from "moment"; | ||
54 | + import withdraw from './store/withdraw'; | ||
55 | + import FinanceService from 'services/finance/finance-service'; | ||
56 | + import _ from "lodash"; | ||
57 | + | ||
58 | + export default { | ||
59 | + data() { | ||
60 | + return withdraw.call(this); | ||
61 | + }, | ||
62 | + created() { | ||
63 | + this.financeService = new FinanceService(); | ||
64 | + }, | ||
65 | + mounted() { | ||
66 | + this.loadData(); | ||
67 | + }, | ||
68 | + watch: { | ||
69 | + date() { | ||
70 | + this.loadData(); | ||
71 | + }, | ||
72 | + day(newDay) { | ||
73 | + let curDay = moment().format('YYYY-MM-DD'); | ||
74 | + if (newDay === this.beginTime || !newDay) { | ||
75 | + return; | ||
76 | + } | ||
77 | + this.dateRange = newDay !== this.curDay ? [newDay, curDay] : [newDay, newDay]; | ||
78 | + }, | ||
79 | + dateRange(newDate) { | ||
80 | + this.beginTime = moment(Array.isArray(newDate) ? newDate[0] : newDate).format('YYYY-MM-DD'); | ||
81 | + this.endTime = moment(Array.isArray(newDate) ? newDate[1] : newDate).format('YYYY-MM-DD'); | ||
82 | + this.day = this.beginTime === this.endTime === this.today ? '' : this.beginTime; | ||
83 | + this.pageData.current = 1; | ||
84 | + this.list(); | ||
85 | + }, | ||
86 | + }, | ||
87 | + methods: { | ||
88 | + loadData() { | ||
89 | + this.list(); | ||
90 | + }, | ||
91 | + changeLimit(limit) { | ||
92 | + if(limit > 1) { | ||
93 | + this.dateRange = [this[`day${limit}`], this.today]; | ||
94 | + }else if(limit===1){ | ||
95 | + this.dateRange = [this.yesterday, this.today]; | ||
96 | + }else{ | ||
97 | + this.dateRange = [this.today, this.today]; | ||
98 | + } | ||
99 | + this.pageData.current = 1; | ||
100 | + }, | ||
101 | + pageChange() { | ||
102 | + this.pageData.current = page; | ||
103 | + this.list(); | ||
104 | + }, | ||
105 | + filtersParams() { | ||
106 | + let params = {}; | ||
107 | + let fts = this.filters; | ||
108 | + let withdrawStatus = fts.withdrawStatus.model, | ||
109 | + statementSn = fts.statementSn.model === '' || fts.brand.model === null ? | ||
110 | + null : fts.statementSn.model; | ||
111 | + let pageNo = this.pageData.current; | ||
112 | + let pageSize = this.pageData.pageSize; | ||
113 | + | ||
114 | + if(this.filters.withdrawStatus.model){ | ||
115 | + if (this.isNumber(this.filters.withdrawStatus.mode)) { | ||
116 | + params.withdrawStatus = this.filters.withdrawStatus.model; | ||
117 | + } | ||
118 | + } | ||
119 | + if(this.filters.statementSn.model){ | ||
120 | + if (this.isString(this.filters.statementSn.mode)) { | ||
121 | + params.statementSn = this.filters.statementSn.model; | ||
122 | + } | ||
123 | + } | ||
124 | + params.pageSize = this.pageData.pageSize; | ||
125 | + params.pageNo = this.pageData.current; | ||
126 | + | ||
127 | + return Promise.resolve({ | ||
128 | + params, | ||
129 | + withdrawStatus, | ||
130 | + statementSn, | ||
131 | + pageNo, | ||
132 | + pageSize | ||
133 | + }); | ||
134 | + }, | ||
135 | + list() { | ||
136 | + this.$Loading.start(); | ||
137 | + return this.filtersParams().then((params) => { | ||
138 | + let filter = { | ||
139 | + beginTime: this.beginDate, | ||
140 | + endTime: this.endDate, | ||
141 | + pageNo: params.pageNo, | ||
142 | + }; | ||
143 | + if (this.withdrawStatus && this.withdrawStatus !== '-1') { | ||
144 | + filter = Object.assign({}, filter, {withdrawStatus: this.withdrawStatus}); | ||
145 | + } | ||
146 | + return this.FinanceService.shopWithdrawList(filter); | ||
147 | + }).then(result => { | ||
148 | + if (!result.data) { | ||
149 | + result.data = { | ||
150 | + pageNo: 1, | ||
151 | + pageSize: 1, | ||
152 | + totalCount: 1, | ||
153 | + totalPage: 1, | ||
154 | + records: [] | ||
155 | + } | ||
156 | + } | ||
157 | + this.pageData.total = result.data.totalCount; | ||
158 | + this.pageData.current = result.data.pageNo; | ||
159 | + this.tableData = result.data.records; | ||
160 | + this.$Loading.finish(); | ||
161 | + }).catch(() => { | ||
162 | + this.$Loading.finish(); | ||
163 | + }); | ||
164 | + }, | ||
165 | + reset() { | ||
166 | + this.filters.withdrawStatus.model = null; | ||
167 | + this.filters.statementSn.model = null; | ||
168 | + this.filters.timeFlag.model = null; | ||
169 | + this.filters.beginTime.model = null; | ||
170 | + this.filters.endTime.model = null; | ||
171 | + this.pageData.pageNo = 1; | ||
172 | + this.pageData.total = 0; | ||
173 | + this.list(); | ||
174 | + }, | ||
175 | + exportFile() { | ||
176 | + let param = {}; | ||
177 | + | ||
178 | + param.beginTime = this.beginTime; | ||
179 | + param.endTime = this.endTime; | ||
180 | + // param.timeFlag = '1,2,3,4'; | ||
181 | + if (this.withdrawStatus && this.withdrawStatus !== '0') { | ||
182 | + param.withdrawStatus = this.withdrawStatus; | ||
183 | + } | ||
184 | + | ||
185 | + const href = '/Api/erp/exportShopWithdrawList?queryConf=' + | ||
186 | + JSON.stringify(param); | ||
187 | + | ||
188 | + window.open(href, '_blank'); | ||
189 | + }, | ||
190 | + getDetailById() { | ||
191 | + | ||
192 | + } | ||
193 | + } | ||
194 | + }; | ||
195 | +</script> | ||
196 | + | ||
197 | +<style lang="scss"> | ||
198 | + .stat-shop { | ||
199 | + .ivu-tabs-tabpane { | ||
200 | + height: 400px; | ||
201 | + position: relative; | ||
202 | + } | ||
203 | + } | ||
204 | + | ||
205 | + .layout-container { | ||
206 | + min-height: 200px; | ||
207 | + margin: 15px; | ||
208 | + overflow: hidden; | ||
209 | + background: #fff; | ||
210 | + border-radius: 4px; | ||
211 | + | ||
212 | + .layout-filter .line { | ||
213 | + border-top: none; | ||
214 | + margin-bottom: 0; | ||
215 | + } | ||
216 | + } | ||
217 | + | ||
218 | + .shop-card { | ||
219 | + margin-top: 10px; | ||
220 | + margin-bottom: 10px; | ||
221 | + } | ||
222 | + | ||
223 | + .box-title { | ||
224 | + font-weight: 700; | ||
225 | + color: #495060; | ||
226 | + font-size: 16px; | ||
227 | + line-height: 22px; | ||
228 | + margin: 5px; | ||
229 | + | ||
230 | + &:before { | ||
231 | + content: " "; | ||
232 | + display: inline-block; | ||
233 | + width: 5px; | ||
234 | + margin-right: 2px; | ||
235 | + height: 22px; | ||
236 | + vertical-align: top; | ||
237 | + background-color: #999; | ||
238 | + } | ||
239 | + } | ||
240 | + | ||
241 | + .box-item { | ||
242 | + width: 90%; | ||
243 | + height: 50px; | ||
244 | + padding: 0 0 0 15px; | ||
245 | + line-height: 50px; | ||
246 | + font-size: 14px; | ||
247 | + overflow: hidden; | ||
248 | + border-radius: 5px; | ||
249 | + color: #fff; | ||
250 | + margin-bottom: 10px; | ||
251 | + | ||
252 | + .box-item-label { | ||
253 | + display: inline-block; | ||
254 | + min-width: 75px; | ||
255 | + vertical-align: top; | ||
256 | + font-weight: normal; | ||
257 | + } | ||
258 | + | ||
259 | + .box-item-value { | ||
260 | + font-size: 20px; | ||
261 | + font-weight: 600; | ||
262 | + } | ||
263 | + | ||
264 | + i { | ||
265 | + display: inline-block; | ||
266 | + width: 20px; | ||
267 | + height: 20px; | ||
268 | + font-size: 22px; | ||
269 | + text-align: center; | ||
270 | + margin-top: -7px; | ||
271 | + vertical-align: middle; | ||
272 | + margin-right: 3px; | ||
273 | + } | ||
274 | + } | ||
275 | + | ||
276 | + .box-filter { | ||
277 | + .ivu-date-picker { | ||
278 | + margin-left: 0; | ||
279 | + width: 220px !important; | ||
280 | + } | ||
281 | + | ||
282 | + .quick { | ||
283 | + display: inline-block; | ||
284 | + margin-left: 20px; | ||
285 | + margin-right: 50px; | ||
286 | + | ||
287 | + a { | ||
288 | + margin-right: 5px; | ||
289 | + } | ||
290 | + } | ||
291 | + | ||
292 | + .select-container { | ||
293 | + display: inline-block; | ||
294 | + width: 220px; | ||
295 | + } | ||
296 | + } | ||
297 | + | ||
298 | + .ivu-table-cell { | ||
299 | + padding-left: 6px; | ||
300 | + padding-right: 6px; | ||
301 | + } | ||
302 | +</style> |
@@ -8,6 +8,9 @@ const apiUrl = { | @@ -8,6 +8,9 @@ const apiUrl = { | ||
8 | exportBalanceList: '/erp/exportBalanceList', | 8 | exportBalanceList: '/erp/exportBalanceList', |
9 | balanceDetailSum: '/erp/balanceDetailSum', | 9 | balanceDetailSum: '/erp/balanceDetailSum', |
10 | settlementListSum: '/erp/settlementListSum', | 10 | settlementListSum: '/erp/settlementListSum', |
11 | + shopWithdrawList: '/erp/shopWithdrawList', | ||
12 | + shopWithdrawApply: '/erp/shopWithdrawApply', | ||
13 | + shopWithdrawAccountList: '/erp/shopWithdrawAccountList', | ||
11 | }; | 14 | }; |
12 | 15 | ||
13 | class FinanceService extends Service { | 16 | class FinanceService extends Service { |
@@ -65,10 +68,48 @@ class FinanceService extends Service { | @@ -65,10 +68,48 @@ class FinanceService extends Service { | ||
65 | settlementListSum(params) { | 68 | settlementListSum(params) { |
66 | return this.post(apiUrl.settlementListSum, params); | 69 | return this.post(apiUrl.settlementListSum, params); |
67 | } | 70 | } |
71 | + | ||
72 | + /** | ||
73 | + * 提现申请管理-资金操作明细列表 | ||
74 | + * @param params | ||
75 | + * @returns {Promise<unknown>} | ||
76 | + */ | ||
77 | + shopWithdrawList(params) { | ||
78 | + return this.get(apiUrl.shopWithdrawList, params); | ||
79 | + } | ||
80 | + | ||
81 | + /** | ||
82 | + * 提现申请管理-资金操作明细-提现明细ß | ||
83 | + * @param params | ||
84 | + * @returns {Promise<unknown>} | ||
85 | + */ | ||
86 | + shopWithdrawApplyGet(params) { | ||
87 | + return this.get(apiUrl.shopWithdrawApply, params); | ||
88 | + } | ||
89 | + | ||
90 | + /** | ||
91 | + * 提现申请管理-申请提现 | ||
92 | + * @param params | ||
93 | + * @returns {Promise<unknown>} | ||
94 | + */ | ||
95 | + shopWithdrawApplyPost(params) { | ||
96 | + return this.post(apiUrl.shopWithdrawApply, params); | ||
97 | + } | ||
98 | + | ||
99 | + /** | ||
100 | + * 账户资金-账务明细 | ||
101 | + * @param params | ||
102 | + * @returns {Promise<unknown>} | ||
103 | + */ | ||
104 | + shopWithdrawAccountList(params){ | ||
105 | + return this.post(apiUrl.shopWithdrawAccountList, params); | ||
106 | + } | ||
68 | } | 107 | } |
69 | 108 | ||
70 | FinanceService.exportBalanceList = '/Api/erp/exportBalanceList'; // 导出对账单列表, 结算单列表 | 109 | FinanceService.exportBalanceList = '/Api/erp/exportBalanceList'; // 导出对账单列表, 结算单列表 |
71 | FinanceService.exportBalanceDetail = '/Api/erp/exportBalanceDetail'; // 导出对账单详情 | 110 | FinanceService.exportBalanceDetail = '/Api/erp/exportBalanceDetail'; // 导出对账单详情 |
72 | FinanceService.exportSettlementDetail = '/Api/erp/exportSettlementDetail'; // 导出结算单详情 | 111 | FinanceService.exportSettlementDetail = '/Api/erp/exportSettlementDetail'; // 导出结算单详情 |
73 | FinanceService.exportInventory = '/Api/erp/exportInventoryLedgerList'; // 导出结算单库存 | 112 | FinanceService.exportInventory = '/Api/erp/exportInventoryLedgerList'; // 导出结算单库存 |
113 | + | ||
114 | +FinanceService.exportShopWithdrawList = '/Api/erp/exportShopWithdrawList'; // 导出结算单库存 | ||
74 | export default FinanceService; | 115 | export default FinanceService; |
@@ -91,6 +91,13 @@ const domainApis = { | @@ -91,6 +91,13 @@ const domainApis = { | ||
91 | exportFavoriteClearingList: '/erp-gateway-web/export/favoriteClearingList', | 91 | exportFavoriteClearingList: '/erp-gateway-web/export/favoriteClearingList', |
92 | exportFavoriteClearingDetail: '/erp-gateway-web/export/favoriteClearingDetail', | 92 | exportFavoriteClearingDetail: '/erp-gateway-web/export/favoriteClearingDetail', |
93 | exportFavoriteBalanceDetail: '/erp-gateway-web/export/exportFavoriteBalanceDetail', | 93 | exportFavoriteBalanceDetail: '/erp-gateway-web/export/exportFavoriteBalanceDetail', |
94 | + | ||
95 | + //提现申请管理 | ||
96 | + shopWithdrawList: '/erp-gateway-web/withdraw/list', //资金操作明细列表 | ||
97 | + shopWithdrawApply: '/erp-gateway-web/withdraw/apply', //资金操作明细-提现明细ß | ||
98 | + //账户资金 | ||
99 | + shopWithdrawAccountList: '/erp-gateway-web/shop/account/list', //账务明细 | ||
100 | + | ||
94 | }, | 101 | }, |
95 | platform: { | 102 | platform: { |
96 | queryShopsByAdminPid: '/SellerShopController/queryShopsByAdminPid', | 103 | queryShopsByAdminPid: '/SellerShopController/queryShopsByAdminPid', |
-
Please register or login to post a comment