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 | // 获取可开票列表 |