Commit fe11c22eec6dcc86a43bb55d60fdc8beeee7493a
1 parent
dcf54a32
开票
Showing
8 changed files
with
203 additions
and
148 deletions
src/api/invoice/invoice.js
@@ -65,6 +65,16 @@ export function queryCustInvoiceHistoryList(params) { | @@ -65,6 +65,16 @@ export function queryCustInvoiceHistoryList(params) { | ||
65 | }) | 65 | }) |
66 | } | 66 | } |
67 | 67 | ||
68 | +// 重发电子邮箱 | ||
69 | +export function resendInvoiceMail(params) { | ||
70 | + return request({ | ||
71 | + url: 'invoice/resendInvoiceMail', | ||
72 | + method: 'post', | ||
73 | + data: params | ||
74 | + }) | ||
75 | +} | ||
76 | + | ||
77 | + | ||
68 | 78 | ||
69 | 79 | ||
70 | 80 |
src/main.js
src/utils/utils.js
1 | -import md5 from './md5.min.js'; | 1 | +import md5 from "./md5.min.js"; |
2 | export default { | 2 | export default { |
3 | - myCommonSalt: function (val) { // 获取盐值 | 3 | + myCommonSalt: function(val) { // 获取盐值 |
4 | let len = parseInt(val); | 4 | let len = parseInt(val); |
5 | - let $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; | 5 | + let $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"; |
6 | let maxPos = $chars.length; | 6 | let maxPos = $chars.length; |
7 | - var pwd = ''; | 7 | + var pwd = ""; |
8 | for (var i = 0; i < len; i++) { | 8 | for (var i = 0; i < len; i++) { |
9 | pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); | 9 | pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); |
10 | } | 10 | } |
11 | console.log(pwd); | 11 | console.log(pwd); |
12 | return pwd; | 12 | return pwd; |
13 | }, | 13 | }, |
14 | - | ||
15 | - formatDate: function(secs, type=0){ //type是可选参数,因为json中时间的格式是year-month-date,不能识别XX年XX月XX日 | ||
16 | - var t = new Date(secs) | ||
17 | - var year = t.getFullYear() | ||
18 | - var month = t.getMonth() + 1 | ||
19 | - if(month < 10){ month = '0' + month } | ||
20 | - var date = t.getDate() | ||
21 | - if(date < 10){ date = '0' + date } | ||
22 | - var hour = t.getHours() | ||
23 | - if(hour < 10){ hour = '0' + hour } | ||
24 | - var minute = t.getMinutes() | ||
25 | - if(minute < 10){ minute = '0' + minute } | ||
26 | - var second = t.getSeconds() | ||
27 | - if(second < 10){ second = '0' + second } | ||
28 | - if(type==0){ | ||
29 | - return year + '年' + month + '月' + date + '日' | ||
30 | - }else{ | ||
31 | - return year + '-'+month+'-'+date | ||
32 | - }}, | ||
33 | - | ||
34 | - timestampToTime: function (timestamp) { | 14 | + formatDate: function(secs, type = 0) { //type是可选参数,因为json中时间的格式是year-month-date,不能识别XX年XX月XX日 |
15 | + var t = new Date(secs); | ||
16 | + var year = t.getFullYear(); | ||
17 | + var month = t.getMonth() + 1; | ||
18 | + if (month < 10) { | ||
19 | + month = "0" + month; | ||
20 | + } | ||
21 | + var date = t.getDate(); | ||
22 | + if (date < 10) { | ||
23 | + date = "0" + date; | ||
24 | + } | ||
25 | + var hour = t.getHours(); | ||
26 | + if (hour < 10) { | ||
27 | + hour = "0" + hour; | ||
28 | + } | ||
29 | + var minute = t.getMinutes(); | ||
30 | + if (minute < 10) { | ||
31 | + minute = "0" + minute; | ||
32 | + } | ||
33 | + var second = t.getSeconds(); | ||
34 | + if (second < 10) { | ||
35 | + second = "0" + second; | ||
36 | + } | ||
37 | + if (type == 0) { | ||
38 | + return year + "年" + month + "月" + date + "日"; | ||
39 | + } else { | ||
40 | + return year + "-" + month + "-" + date; | ||
41 | + } | ||
42 | + }, | ||
43 | + timestampToTime: function(timestamp) { | ||
35 | var d = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 | 44 | var d = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 |
36 | - var youWant=d.getFullYear() + '-' + this.completedString(d.getMonth() + 1) + '-' + this.completedString(d.getDate()) ; | ||
37 | - return youWant | 45 | + var youWant = d.getFullYear() + "-" + this.completedString(d.getMonth() + 1) + "-" + this.completedString(d.getDate()); |
46 | + return youWant; | ||
38 | }, | 47 | }, |
39 | - timestampTransformTime: function (timestamp) { | 48 | + timestampTransformTime: function(timestamp) { |
40 | var d = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 | 49 | var d = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 |
41 | - var youWant=d.getFullYear() + '/' + this.completedString(d.getMonth() + 1) + '/' + this.completedString(d.getDate()) ; | ||
42 | - return youWant | 50 | + var youWant = d.getFullYear() + "/" + this.completedString(d.getMonth() + 1) + "/" + this.completedString(d.getDate()); |
51 | + return youWant; | ||
43 | }, | 52 | }, |
44 | - completedString:function(s) { | ||
45 | - return s < 10 ? '0' + s : s | 53 | + getLocalTime: function(value) { |
54 | + if (value == null) { | ||
55 | + return ''; | ||
56 | + } else { | ||
57 | + let date = new Date(value); | ||
58 | + let y = date.getFullYear();// 年 | ||
59 | + let MM = date.getMonth() + 1;// 月 | ||
60 | + MM = MM < 10 ? ('0' + MM) : MM; | ||
61 | + let d = date.getDate();// 日 | ||
62 | + d = d < 10 ? ('0' + d) : d; | ||
63 | + let h = date.getHours();// 时 | ||
64 | + h = h < 10 ? ('0' + h) : h; | ||
65 | + let m = date.getMinutes();// 分 | ||
66 | + m = m < 10 ? ('0' + m) : m; | ||
67 | + let s = date.getSeconds();// 秒 | ||
68 | + s = s < 10 ? ('0' + s) : s; | ||
69 | + let timer = y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s; | ||
70 | + return timer | ||
71 | + } | ||
72 | + }, | ||
73 | + completedString: function(s) { | ||
74 | + return s < 10 ? "0" + s : s; | ||
46 | }, | 75 | }, |
47 | - | ||
48 | - | ||
49 | - | ||
50 | - dateFormat: function (msd) { // 时间转换 | ||
51 | - var time = msd | ||
52 | - | 76 | + dateFormat: function(msd) { // 时间转换 |
77 | + var time = msd; | ||
53 | if (null != time && "" != time) { | 78 | if (null != time && "" != time) { |
54 | - | ||
55 | if (time > 60 && time < 60 * 60) { | 79 | if (time > 60 && time < 60 * 60) { |
56 | - | ||
57 | time = parseInt(time / 60.0) + "分钟" + parseInt((parseFloat(time / 60.0) - | 80 | time = parseInt(time / 60.0) + "分钟" + parseInt((parseFloat(time / 60.0) - |
58 | - | ||
59 | parseInt(time / 60.0)) * 60) + "秒"; | 81 | parseInt(time / 60.0)) * 60) + "秒"; |
60 | - | ||
61 | } | 82 | } |
62 | - | ||
63 | else if (time >= 60 * 60 && time < 60 * 60 * 24) { | 83 | else if (time >= 60 * 60 && time < 60 * 60 * 24) { |
64 | - | ||
65 | time = parseInt(time / 3600.0) + "小时" + parseInt((parseFloat(time / 3600.0) - | 84 | time = parseInt(time / 3600.0) + "小时" + parseInt((parseFloat(time / 3600.0) - |
66 | - | ||
67 | parseInt(time / 3600.0)) * 60) + "分钟" + | 85 | parseInt(time / 3600.0)) * 60) + "分钟" + |
68 | - | ||
69 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - | 86 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - |
70 | - | ||
71 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; | 87 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; |
72 | - | ||
73 | } else if (time >= 60 * 60 * 24) { | 88 | } else if (time >= 60 * 60 * 24) { |
74 | - | ||
75 | time = parseInt(time / 3600.0 / 24) + "天" + parseInt((parseFloat(time / 3600.0 / 24) - | 89 | time = parseInt(time / 3600.0 / 24) + "天" + parseInt((parseFloat(time / 3600.0 / 24) - |
76 | - | ||
77 | parseInt(time / 3600.0 / 24)) * 24) + "小时" + parseInt((parseFloat(time / 3600.0) - | 90 | parseInt(time / 3600.0 / 24)) * 24) + "小时" + parseInt((parseFloat(time / 3600.0) - |
78 | - | ||
79 | parseInt(time / 3600.0)) * 60) + "分钟" + | 91 | parseInt(time / 3600.0)) * 60) + "分钟" + |
80 | - | ||
81 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - | 92 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - |
82 | - | ||
83 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; | 93 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; |
84 | - | ||
85 | } | 94 | } |
86 | - | ||
87 | else { | 95 | else { |
88 | - | ||
89 | time = parseInt(time) + "秒"; | 96 | time = parseInt(time) + "秒"; |
90 | - | ||
91 | } | 97 | } |
92 | - | ||
93 | } | 98 | } |
94 | - | ||
95 | return time; | 99 | return time; |
96 | }, | 100 | }, |
97 | - | ||
98 | - signObject: function (jsonObj){ //签名字段 | ||
99 | - let sort = [] | ||
100 | - for(let k in jsonObj){ | 101 | + signObject: function(jsonObj) { //签名字段 |
102 | + let sort = []; | ||
103 | + for (let k in jsonObj) { | ||
101 | sort.push({ | 104 | sort.push({ |
102 | keyname: k, | 105 | keyname: k, |
103 | value: jsonObj[k] | 106 | value: jsonObj[k] |
104 | - }) | 107 | + }); |
105 | } | 108 | } |
106 | - return this.myGetSign(sort) | 109 | + return this.myGetSign(sort); |
107 | }, | 110 | }, |
108 | - | ||
109 | - clientBrowser: function () { // 判断客户端 | 111 | + clientBrowser: function() { // 判断客户端 |
110 | if (/MicroMessenger/.test(window.navigator.userAgent)) { | 112 | if (/MicroMessenger/.test(window.navigator.userAgent)) { |
111 | console.log("微信客户端"); | 113 | console.log("微信客户端"); |
112 | - return '微信' | 114 | + return "微信"; |
113 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { | 115 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { |
114 | console.log("支付宝客户端"); | 116 | console.log("支付宝客户端"); |
115 | - return '支付宝' | 117 | + return "支付宝"; |
116 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { | 118 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { |
117 | console.log("农行客户端"); | 119 | console.log("农行客户端"); |
118 | - return '立即' | ||
119 | - }else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | 120 | + return "立即"; |
121 | + } else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | ||
120 | console.log("农行客户端"); | 122 | console.log("农行客户端"); |
121 | - return '立即' | ||
122 | - }else { | 123 | + return "立即"; |
124 | + } else { | ||
123 | console.log("其他浏览器"); | 125 | console.log("其他浏览器"); |
124 | - return '支付宝' | 126 | + return "支付宝"; |
125 | } | 127 | } |
126 | }, | 128 | }, |
127 | - | ||
128 | // 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 34 农行 | 129 | // 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 34 农行 |
129 | - clientBrowsePayType: function () { // 判断客户端 | 130 | + clientBrowsePayType: function() { // 判断客户端 |
130 | if (/MicroMessenger/.test(window.navigator.userAgent)) { | 131 | if (/MicroMessenger/.test(window.navigator.userAgent)) { |
131 | console.log("微信客户端"); | 132 | console.log("微信客户端"); |
132 | - return '4' | 133 | + return "4"; |
133 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { | 134 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { |
134 | console.log("支付宝客户端"); | 135 | console.log("支付宝客户端"); |
135 | - return '1' | 136 | + return "1"; |
136 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { | 137 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { |
137 | console.log("农行客户端"); | 138 | console.log("农行客户端"); |
138 | - return '34' | ||
139 | - }else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | 139 | + return "34"; |
140 | + } else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | ||
140 | console.log("农行客户端"); | 141 | console.log("农行客户端"); |
141 | - return '34' | ||
142 | - }else { | 142 | + return "34"; |
143 | + } else { | ||
143 | console.log("其他浏览器"); | 144 | console.log("其他浏览器"); |
144 | - return '1' | 145 | + return "1"; |
145 | } | 146 | } |
146 | }, | 147 | }, |
147 | // 0eca8f5373ca4866aec2f8e9d9367104 老的id | 148 | // 0eca8f5373ca4866aec2f8e9d9367104 老的id |
148 | // 14318527b13840c2a4af63fef52c2d6e 老的签名 | 149 | // 14318527b13840c2a4af63fef52c2d6e 老的签名 |
149 | - | ||
150 | // ud8yq5tv0inxupc05xfeau39jywlqoj2 新的id | 150 | // ud8yq5tv0inxupc05xfeau39jywlqoj2 新的id |
151 | // ny1u72b6k374sg379z0kqjgfxe2ycnpw 新的签名 | 151 | // ny1u72b6k374sg379z0kqjgfxe2ycnpw 新的签名 |
152 | - | ||
153 | - myVarAppid:'65grtq5tv0wewec05xfeau39jyghhjm',// 公共请求Appid | ||
154 | - | ||
155 | - myDeviceInfo: 'BC0703A4-AFB0-4B51-9089-9B7487C0CC6E', // 公共请求设备信息 | ||
156 | - | ||
157 | - myVxAppId: 'wxdfb0276f85514ea3', | 152 | + myVarAppid: "65grtq5tv0wewec05xfeau39jyghhjm",// 公共请求Appid |
153 | + myDeviceInfo: "BC0703A4-AFB0-4B51-9089-9B7487C0CC6E", // 公共请求设备信息 | ||
154 | + myVxAppId: "wxdfb0276f85514ea3", | ||
158 | // 测试环境 微信赤峰 appid wxff4cebaedbf4f886 | 155 | // 测试环境 微信赤峰 appid wxff4cebaedbf4f886 |
159 | // 微信赤峰 appid wx2af2bab90d433c86 | 156 | // 微信赤峰 appid wx2af2bab90d433c86 |
160 | // 黄石 appid wxa1a66cc7d263afe6 | 157 | // 黄石 appid wxa1a66cc7d263afe6 |
161 | // 阳明 wxdfb0276f85514ea3 | 158 | // 阳明 wxdfb0276f85514ea3 |
162 | - | ||
163 | - myOrgId: '10193', // 归属地 赤峰id 10003 黄石 10079 无锡10005 | ||
164 | - | ||
165 | - myGetSign: function (objb) { // 获取签名 | ||
166 | - var compare = function (obj1, obj2) { | 159 | + myOrgId: "10193", // 归属地 赤峰id 10003 黄石 10079 无锡10005 |
160 | + myGetSign: function(objb) { // 获取签名 | ||
161 | + var compare = function(obj1, obj2) { | ||
167 | var val1 = obj1.keyname; | 162 | var val1 = obj1.keyname; |
168 | var val2 = obj2.keyname; | 163 | var val2 = obj2.keyname; |
169 | if (val1 < val2) { | 164 | if (val1 < val2) { |
@@ -173,35 +168,34 @@ export default { | @@ -173,35 +168,34 @@ export default { | ||
173 | } else { | 168 | } else { |
174 | return 0; | 169 | return 0; |
175 | } | 170 | } |
176 | - } | 171 | + }; |
177 | objb.sort(compare); | 172 | objb.sort(compare); |
178 | - var strmd5 = 'dfdf2b6k37r5y79z0kqjgfxe2wet3434'; | ||
179 | - for(var i=0;i<objb.length;i++){ | ||
180 | - if(objb[i].value != null&&objb[i].value != ''){ | ||
181 | - strmd5 += objb[i].keyname+objb[i].value; | 173 | + var strmd5 = "dfdf2b6k37r5y79z0kqjgfxe2wet3434"; |
174 | + for (var i = 0; i < objb.length; i++) { | ||
175 | + if (objb[i].value != null && objb[i].value != "") { | ||
176 | + strmd5 += objb[i].keyname + objb[i].value; | ||
182 | } | 177 | } |
183 | } | 178 | } |
184 | - strmd5 += 'dfdf2b6k37r5y79z0kqjgfxe2wet3434'; | 179 | + strmd5 += "dfdf2b6k37r5y79z0kqjgfxe2wet3434"; |
185 | // console.log('strmd5-------->'+strmd5); | 180 | // console.log('strmd5-------->'+strmd5); |
186 | strmd5 = md5(strmd5); | 181 | strmd5 = md5(strmd5); |
187 | - strmd5=strmd5.toUpperCase(); | 182 | + strmd5 = strmd5.toUpperCase(); |
188 | return strmd5; | 183 | return strmd5; |
189 | }, | 184 | }, |
190 | - parseParams: function (data) { | 185 | + parseParams: function(data) { |
191 | try { | 186 | try { |
192 | var tempArr = []; | 187 | var tempArr = []; |
193 | for (var i in data) { | 188 | for (var i in data) { |
194 | var key = (i); | 189 | var key = (i); |
195 | var value = encodeURIComponent(data[i]);//decodeURIComponent | 190 | var value = encodeURIComponent(data[i]);//decodeURIComponent |
196 | - tempArr.push(key + '=' + value); | 191 | + tempArr.push(key + "=" + value); |
197 | } | 192 | } |
198 | - var urlParamsStr = tempArr.join('&'); | 193 | + var urlParamsStr = tempArr.join("&"); |
199 | return urlParamsStr; | 194 | return urlParamsStr; |
200 | } catch (err) { | 195 | } catch (err) { |
201 | - return ''; | 196 | + return ""; |
202 | } | 197 | } |
203 | }, | 198 | }, |
204 | - | ||
205 | commonParams: function() { | 199 | commonParams: function() { |
206 | let salt = this.myCommonSalt(32); | 200 | let salt = this.myCommonSalt(32); |
207 | let reqData = { | 201 | let reqData = { |
@@ -209,10 +203,9 @@ export default { | @@ -209,10 +203,9 @@ export default { | ||
209 | deviceInfo: this.myDeviceInfo, | 203 | deviceInfo: this.myDeviceInfo, |
210 | salt: salt, | 204 | salt: salt, |
211 | sign_type: "md5", | 205 | sign_type: "md5", |
212 | - token:'b4bbab7dd63140b5b66cc962496b34f7', | 206 | + token: sessionStorage.getItem('urlToken'), |
213 | orgId: this.myOrgId | 207 | orgId: this.myOrgId |
214 | }; | 208 | }; |
215 | - return reqData | 209 | + return reqData; |
216 | } | 210 | } |
217 | - | ||
218 | -} | 211 | +}; |
src/views/eInvoice/eInvoiceWrap.vue
@@ -33,7 +33,11 @@ | @@ -33,7 +33,11 @@ | ||
33 | 33 | ||
34 | <script> | 34 | <script> |
35 | export default { | 35 | export default { |
36 | - name: "eInvoiceWrap" | 36 | + name: "eInvoiceWrap", |
37 | + mounted(){ | ||
38 | + let _token = this.$route.query.token; | ||
39 | + sessionStorage.setItem('urlToken',_token) | ||
40 | + } | ||
37 | }; | 41 | }; |
38 | </script> | 42 | </script> |
39 | 43 |
src/views/eInvoice/invoiceRecord/exchange.vue
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | <group> | 3 | <group> |
4 | - <cell align-items="left" class="inovice-list" value="¥0.10"> | 4 | + <cell v-for="(i, index) in list" align-items="left" class="inovice-list" :value="'¥'+ (i.orderTotalFee/100).toFixed(2)"> |
5 | <div slot="title"> | 5 | <div slot="title"> |
6 | - <span>苏A1231</span> | 6 | + <span>{{i.carNumber}}</span> |
7 | </div> | 7 | </div> |
8 | <div slot="title"> | 8 | <div slot="title"> |
9 | - <span>杭州路段</span> | 9 | + <span>{{i.plName}}</span> |
10 | </div> | 10 | </div> |
11 | <div slot="title"> | 11 | <div slot="title"> |
12 | - <span>2021/06/01 13:13:13</span> | ||
13 | - </div> | ||
14 | - </cell> | ||
15 | - <cell align-items="left" class="inovice-list" value="¥0.10"> | ||
16 | - <div slot="title"> | ||
17 | - <span>苏A1231</span> | ||
18 | - </div> | ||
19 | - <div slot="title"> | ||
20 | - <span>杭州路段</span> | ||
21 | - </div> | ||
22 | - <div slot="title"> | ||
23 | - <span>2021/06/01 13:13:13</span> | 12 | + <span>{{$utils.getLocalTime(i.createDate)}}</span> |
24 | </div> | 13 | </div> |
25 | </cell> | 14 | </cell> |
15 | + | ||
26 | </group> | 16 | </group> |
27 | </div> | 17 | </div> |
28 | </template> | 18 | </template> |
29 | 19 | ||
30 | <script> | 20 | <script> |
31 | export default { | 21 | export default { |
32 | - name: "exchange" | 22 | + name: "exchange", |
23 | + data(){ | ||
24 | + return{ | ||
25 | + list:[] | ||
26 | + } | ||
27 | + }, | ||
28 | + mounted(){ | ||
29 | + this.list = JSON.parse(sessionStorage.getItem('recordData')) | ||
30 | + console.log(this.list) | ||
31 | + } | ||
33 | }; | 32 | }; |
34 | </script> | 33 | </script> |
35 | 34 |
src/views/eInvoice/invoiceRecord/invoiceDetail.vue
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | <group title="开票历史"> | 3 | <group title="开票历史"> |
4 | - <cell title="发票预览" link="https://vux.li"></cell> | ||
5 | - <cell title="收件信息" inline-desc='电子邮箱: 34124@163.com'></cell> | ||
6 | - <cell title="发票包含内容" inline-desc='该发票包含2笔交易' link="https://vux.li"></cell> | 4 | + <cell title="发票预览" :link="$route.query.invoiceUrl"></cell> |
5 | + <cell title="收件信息" :inline-desc="'电子邮箱:'+ $route.query.custEmail"></cell> | ||
6 | + <cell title="发票包含内容" :inline-desc="'该发票包含'+$route.query.len+'笔交易'" :link="{path:'exchange'}"></cell> | ||
7 | </group> | 7 | </group> |
8 | 8 | ||
9 | <group title=""> | 9 | <group title=""> |
10 | <div style="padding: 40px 20px;"> | 10 | <div style="padding: 40px 20px;"> |
11 | - <box gap="10px 10px"> | ||
12 | - <x-button :gradients="['#1D62F0', '#19D5FD']">重发电子邮箱</x-button> | ||
13 | - </box> | 11 | + <div > |
12 | + <x-button :gradients="['#1D62F0', '#19D5FD']" @click.native="sentEmail">重发电子邮箱</x-button> | ||
13 | + </div> | ||
14 | <div style="text-align: center;padding-top: 20px;">客服电话: 0714-6212345</div> | 14 | <div style="text-align: center;padding-top: 20px;">客服电话: 0714-6212345</div> |
15 | </div> | 15 | </div> |
16 | </group> | 16 | </group> |
@@ -20,10 +20,11 @@ | @@ -20,10 +20,11 @@ | ||
20 | 20 | ||
21 | <script> | 21 | <script> |
22 | import { | 22 | import { |
23 | - queryCustInvoiceHistoryList | 23 | + resendInvoiceMail |
24 | } from "@/api/invoice/invoice.js"; | 24 | } from "@/api/invoice/invoice.js"; |
25 | export default { | 25 | export default { |
26 | name: "invoiceDetail", | 26 | name: "invoiceDetail", |
27 | + | ||
27 | data() { | 28 | data() { |
28 | return { | 29 | return { |
29 | list: [] | 30 | list: [] |
@@ -31,7 +32,21 @@ export default { | @@ -31,7 +32,21 @@ export default { | ||
31 | }, | 32 | }, |
32 | mounted() { | 33 | mounted() { |
33 | }, | 34 | }, |
34 | - methods: {} | 35 | + methods: { |
36 | + sentEmail: function() { | ||
37 | + let obj = { | ||
38 | + invoiceId:this.$route.query.invoiceId, | ||
39 | + orgId:this.$utils.myOrgId | ||
40 | + } | ||
41 | + let jsondata = Object.assign(obj, this.$utils.commonParams()); | ||
42 | + jsondata.sign = this.$utils.signObject(jsondata); | ||
43 | + console.log(JSON.stringify(jsondata)); | ||
44 | + resendInvoiceMail(jsondata).then(response => { | ||
45 | + console.log(response); | ||
46 | + | ||
47 | + }); | ||
48 | + } | ||
49 | + } | ||
35 | }; | 50 | }; |
36 | </script> | 51 | </script> |
37 | 52 |
src/views/eInvoice/invoiceRecord/invoiceRecord.vue
1 | <template> | 1 | <template> |
2 | <div v-if="list.length>0"> | 2 | <div v-if="list.length>0"> |
3 | <group title="开票历史"> | 3 | <group title="开票历史"> |
4 | - <cell title="停车" link="https://vux.li" inline-desc='2020/05/29 22:22:22'> | 4 | + <cell :title="i.invoiceBigType | invoiceBigTypeFilter" @click.native="toInvoiceDetail(i)" |
5 | + :inline-desc="$utils.getLocalTime(i.invoiceDate)" | ||
6 | + v-for="(i, index) in list"> | ||
5 | <div> | 7 | <div> |
6 | - <p>已发送电子邮箱</p> | ||
7 | - <p>¥ 0.20</p> | ||
8 | - </div> | ||
9 | - </cell> | ||
10 | - | ||
11 | - <cell title="停车" link="https://vux.li" inline-desc='2020/05/29 22:22:22'> | ||
12 | - <div> | ||
13 | - <p>已开票</p> | ||
14 | - <p>¥ 0.20</p> | 8 | + <p>{{i.invoiceState | invoiceStateFilter}}</p> |
9 | + <p>¥ {{(i.invoiceTotalFee/100).toFixed(2)}}</p> | ||
15 | </div> | 10 | </div> |
16 | </cell> | 11 | </cell> |
17 | </group> | 12 | </group> |
@@ -47,6 +42,44 @@ export default { | @@ -47,6 +42,44 @@ export default { | ||
47 | console.log(response); | 42 | console.log(response); |
48 | this.list = response.data; | 43 | this.list = response.data; |
49 | }); | 44 | }); |
45 | + }, | ||
46 | + toInvoiceDetail: function(i) { | ||
47 | + sessionStorage.setItem('recordData',JSON.stringify(i.custInvoiceHisDetailDTOList)) | ||
48 | + this.$router.push({ | ||
49 | + path:'invoiceDetail', | ||
50 | + query:{ | ||
51 | + custEmail:i.custEmail, | ||
52 | + len:i.custInvoiceHisDetailDTOList.length, | ||
53 | + invoiceId:i.invoiceId, | ||
54 | + invoiceUrl:i.invoiceUrl | ||
55 | + } | ||
56 | + }) | ||
57 | + } | ||
58 | + }, | ||
59 | + filters: { | ||
60 | + invoiceBigTypeFilter(val) { | ||
61 | + switch (val) { | ||
62 | + case 100: | ||
63 | + return "停车"; | ||
64 | + break; | ||
65 | + case 200: | ||
66 | + return "充值"; | ||
67 | + break; | ||
68 | + case 300: | ||
69 | + return "会员卡"; | ||
70 | + break; | ||
71 | + default: | ||
72 | + break; | ||
73 | + } | ||
74 | + }, | ||
75 | + invoiceStateFilter(val) { | ||
76 | + if (val == 2) { | ||
77 | + return "已发送电子邮箱"; | ||
78 | + } else if (val == 3 || val == 4) { | ||
79 | + return "已开票"; | ||
80 | + } else { | ||
81 | + return "待开票"; | ||
82 | + } | ||
50 | } | 83 | } |
51 | } | 84 | } |
52 | }; | 85 | }; |
src/views/eInvoice/parkInvoice/parkInvoice.vue
@@ -178,7 +178,7 @@ export default { | @@ -178,7 +178,7 @@ export default { | ||
178 | console.log(JSON.stringify(jsondata)); | 178 | console.log(JSON.stringify(jsondata)); |
179 | openTicketForCustInvoiceHisInfo(jsondata).then(response => { | 179 | openTicketForCustInvoiceHisInfo(jsondata).then(response => { |
180 | console.log(response); | 180 | console.log(response); |
181 | - this.queryCustInvoiceInfoList() | 181 | + this.queryRntPayOrderForInvoice() |
182 | }); | 182 | }); |
183 | }, | 183 | }, |
184 | // 获取可开票列表 | 184 | // 获取可开票列表 |