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 | 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 | 2 | export default { |
| 3 | - myCommonSalt: function (val) { // 获取盐值 | |
| 3 | + myCommonSalt: function(val) { // 获取盐值 | |
| 4 | 4 | let len = parseInt(val); |
| 5 | - let $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; | |
| 5 | + let $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"; | |
| 6 | 6 | let maxPos = $chars.length; |
| 7 | - var pwd = ''; | |
| 7 | + var pwd = ""; | |
| 8 | 8 | for (var i = 0; i < len; i++) { |
| 9 | 9 | pwd += $chars.charAt(Math.floor(Math.random() * maxPos)); |
| 10 | 10 | } |
| 11 | 11 | console.log(pwd); |
| 12 | 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 | 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 | 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 | 78 | if (null != time && "" != time) { |
| 54 | - | |
| 55 | 79 | if (time > 60 && time < 60 * 60) { |
| 56 | - | |
| 57 | 80 | time = parseInt(time / 60.0) + "分钟" + parseInt((parseFloat(time / 60.0) - |
| 58 | - | |
| 59 | 81 | parseInt(time / 60.0)) * 60) + "秒"; |
| 60 | - | |
| 61 | 82 | } |
| 62 | - | |
| 63 | 83 | else if (time >= 60 * 60 && time < 60 * 60 * 24) { |
| 64 | - | |
| 65 | 84 | time = parseInt(time / 3600.0) + "小时" + parseInt((parseFloat(time / 3600.0) - |
| 66 | - | |
| 67 | 85 | parseInt(time / 3600.0)) * 60) + "分钟" + |
| 68 | - | |
| 69 | 86 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - |
| 70 | - | |
| 71 | 87 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; |
| 72 | - | |
| 73 | 88 | } else if (time >= 60 * 60 * 24) { |
| 74 | - | |
| 75 | 89 | time = parseInt(time / 3600.0 / 24) + "天" + parseInt((parseFloat(time / 3600.0 / 24) - |
| 76 | - | |
| 77 | 90 | parseInt(time / 3600.0 / 24)) * 24) + "小时" + parseInt((parseFloat(time / 3600.0) - |
| 78 | - | |
| 79 | 91 | parseInt(time / 3600.0)) * 60) + "分钟" + |
| 80 | - | |
| 81 | 92 | parseInt((parseFloat((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60) - |
| 82 | - | |
| 83 | 93 | parseInt((parseFloat(time / 3600.0) - parseInt(time / 3600.0)) * 60)) * 60) + "秒"; |
| 84 | - | |
| 85 | 94 | } |
| 86 | - | |
| 87 | 95 | else { |
| 88 | - | |
| 89 | 96 | time = parseInt(time) + "秒"; |
| 90 | - | |
| 91 | 97 | } |
| 92 | - | |
| 93 | 98 | } |
| 94 | - | |
| 95 | 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 | 104 | sort.push({ |
| 102 | 105 | keyname: k, |
| 103 | 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 | 112 | if (/MicroMessenger/.test(window.navigator.userAgent)) { |
| 111 | 113 | console.log("微信客户端"); |
| 112 | - return '微信' | |
| 114 | + return "微信"; | |
| 113 | 115 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { |
| 114 | 116 | console.log("支付宝客户端"); |
| 115 | - return '支付宝' | |
| 117 | + return "支付宝"; | |
| 116 | 118 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { |
| 117 | 119 | console.log("农行客户端"); |
| 118 | - return '立即' | |
| 119 | - }else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | |
| 120 | + return "立即"; | |
| 121 | + } else if (/BankabcAndroid/.test(window.navigator.userAgent)) { | |
| 120 | 122 | console.log("农行客户端"); |
| 121 | - return '立即' | |
| 122 | - }else { | |
| 123 | + return "立即"; | |
| 124 | + } else { | |
| 123 | 125 | console.log("其他浏览器"); |
| 124 | - return '支付宝' | |
| 126 | + return "支付宝"; | |
| 125 | 127 | } |
| 126 | 128 | }, |
| 127 | - | |
| 128 | 129 | // 1:支付宝 2:微信 3:银联 10:H5 4微信公众号 34 农行 |
| 129 | - clientBrowsePayType: function () { // 判断客户端 | |
| 130 | + clientBrowsePayType: function() { // 判断客户端 | |
| 130 | 131 | if (/MicroMessenger/.test(window.navigator.userAgent)) { |
| 131 | 132 | console.log("微信客户端"); |
| 132 | - return '4' | |
| 133 | + return "4"; | |
| 133 | 134 | } else if (/AlipayClient/.test(window.navigator.userAgent)) { |
| 134 | 135 | console.log("支付宝客户端"); |
| 135 | - return '1' | |
| 136 | + return "1"; | |
| 136 | 137 | } else if (/BankabciPhone/.test(window.navigator.userAgent)) { |
| 137 | 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 | 141 | console.log("农行客户端"); |
| 141 | - return '34' | |
| 142 | - }else { | |
| 142 | + return "34"; | |
| 143 | + } else { | |
| 143 | 144 | console.log("其他浏览器"); |
| 144 | - return '1' | |
| 145 | + return "1"; | |
| 145 | 146 | } |
| 146 | 147 | }, |
| 147 | 148 | // 0eca8f5373ca4866aec2f8e9d9367104 老的id |
| 148 | 149 | // 14318527b13840c2a4af63fef52c2d6e 老的签名 |
| 149 | - | |
| 150 | 150 | // ud8yq5tv0inxupc05xfeau39jywlqoj2 新的id |
| 151 | 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 | 155 | // 测试环境 微信赤峰 appid wxff4cebaedbf4f886 |
| 159 | 156 | // 微信赤峰 appid wx2af2bab90d433c86 |
| 160 | 157 | // 黄石 appid wxa1a66cc7d263afe6 |
| 161 | 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 | 162 | var val1 = obj1.keyname; |
| 168 | 163 | var val2 = obj2.keyname; |
| 169 | 164 | if (val1 < val2) { |
| ... | ... | @@ -173,35 +168,34 @@ export default { |
| 173 | 168 | } else { |
| 174 | 169 | return 0; |
| 175 | 170 | } |
| 176 | - } | |
| 171 | + }; | |
| 177 | 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 | 180 | // console.log('strmd5-------->'+strmd5); |
| 186 | 181 | strmd5 = md5(strmd5); |
| 187 | - strmd5=strmd5.toUpperCase(); | |
| 182 | + strmd5 = strmd5.toUpperCase(); | |
| 188 | 183 | return strmd5; |
| 189 | 184 | }, |
| 190 | - parseParams: function (data) { | |
| 185 | + parseParams: function(data) { | |
| 191 | 186 | try { |
| 192 | 187 | var tempArr = []; |
| 193 | 188 | for (var i in data) { |
| 194 | 189 | var key = (i); |
| 195 | 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 | 194 | return urlParamsStr; |
| 200 | 195 | } catch (err) { |
| 201 | - return ''; | |
| 196 | + return ""; | |
| 202 | 197 | } |
| 203 | 198 | }, |
| 204 | - | |
| 205 | 199 | commonParams: function() { |
| 206 | 200 | let salt = this.myCommonSalt(32); |
| 207 | 201 | let reqData = { |
| ... | ... | @@ -209,10 +203,9 @@ export default { |
| 209 | 203 | deviceInfo: this.myDeviceInfo, |
| 210 | 204 | salt: salt, |
| 211 | 205 | sign_type: "md5", |
| 212 | - token:'b4bbab7dd63140b5b66cc962496b34f7', | |
| 206 | + token: sessionStorage.getItem('urlToken'), | |
| 213 | 207 | orgId: this.myOrgId |
| 214 | 208 | }; |
| 215 | - return reqData | |
| 209 | + return reqData; | |
| 216 | 210 | } |
| 217 | - | |
| 218 | -} | |
| 211 | +}; | ... | ... |
src/views/eInvoice/eInvoiceWrap.vue
src/views/eInvoice/invoiceRecord/exchange.vue
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | 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 | 5 | <div slot="title"> |
| 6 | - <span>苏A1231</span> | |
| 6 | + <span>{{i.carNumber}}</span> | |
| 7 | 7 | </div> |
| 8 | 8 | <div slot="title"> |
| 9 | - <span>杭州路段</span> | |
| 9 | + <span>{{i.plName}}</span> | |
| 10 | 10 | </div> |
| 11 | 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 | 13 | </div> |
| 25 | 14 | </cell> |
| 15 | + | |
| 26 | 16 | </group> |
| 27 | 17 | </div> |
| 28 | 18 | </template> |
| 29 | 19 | |
| 30 | 20 | <script> |
| 31 | 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 | 33 | </script> |
| 35 | 34 | ... | ... |
src/views/eInvoice/invoiceRecord/invoiceDetail.vue
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | 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 | 7 | </group> |
| 8 | 8 | |
| 9 | 9 | <group title=""> |
| 10 | 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 | 14 | <div style="text-align: center;padding-top: 20px;">客服电话: 0714-6212345</div> |
| 15 | 15 | </div> |
| 16 | 16 | </group> |
| ... | ... | @@ -20,10 +20,11 @@ |
| 20 | 20 | |
| 21 | 21 | <script> |
| 22 | 22 | import { |
| 23 | - queryCustInvoiceHistoryList | |
| 23 | + resendInvoiceMail | |
| 24 | 24 | } from "@/api/invoice/invoice.js"; |
| 25 | 25 | export default { |
| 26 | 26 | name: "invoiceDetail", |
| 27 | + | |
| 27 | 28 | data() { |
| 28 | 29 | return { |
| 29 | 30 | list: [] |
| ... | ... | @@ -31,7 +32,21 @@ export default { |
| 31 | 32 | }, |
| 32 | 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 | 51 | </script> |
| 37 | 52 | ... | ... |
src/views/eInvoice/invoiceRecord/invoiceRecord.vue
| 1 | 1 | <template> |
| 2 | 2 | <div v-if="list.length>0"> |
| 3 | 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 | 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 | 10 | </div> |
| 16 | 11 | </cell> |
| 17 | 12 | </group> |
| ... | ... | @@ -47,6 +42,44 @@ export default { |
| 47 | 42 | console.log(response); |
| 48 | 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 | 178 | console.log(JSON.stringify(jsondata)); |
| 179 | 179 | openTicketForCustInvoiceHisInfo(jsondata).then(response => { |
| 180 | 180 | console.log(response); |
| 181 | - this.queryCustInvoiceInfoList() | |
| 181 | + this.queryRntPayOrderForInvoice() | |
| 182 | 182 | }); |
| 183 | 183 | }, |
| 184 | 184 | // 获取可开票列表 | ... | ... |