feat:项目初始化,基于标品8.0.3-std

main
zhaoxingchang.sd 10 months ago
commit 10e592fe24
  1. 3
      README.md
  2. 217
      css/base.css
  3. 266
      css/iosSelect.css
  4. 351
      css/wxscaninvoice/merge.css
  5. 630
      css/wxscaninvoice/writing.css
  6. 108
      html/wxscaninvoice/Followorder.html
  7. 56
      html/wxscaninvoice/exception.html
  8. 24
      html/wxscaninvoice/expiryEWM.html
  9. 66
      html/wxscaninvoice/invoicePreview.html
  10. 92
      html/wxscaninvoice/merge.html
  11. 61
      html/wxscaninvoice/moreMsgFillIn.html
  12. 31
      html/wxscaninvoice/successTip.html
  13. 17
      html/wxscaninvoice/transferPage.html
  14. 281
      html/wxscaninvoice/writing.html
  15. BIN
      image/common/timg.gif
  16. BIN
      image/wxscaninvoice/Group.png
  17. BIN
      image/wxscaninvoice/Oval5.png
  18. BIN
      image/wxscaninvoice/close.png
  19. BIN
      image/wxscaninvoice/down.png
  20. BIN
      image/wxscaninvoice/error_icon.png
  21. BIN
      image/wxscaninvoice/faliure.png
  22. BIN
      image/wxscaninvoice/footer-bg.png
  23. BIN
      image/wxscaninvoice/fptt_close.png
  24. BIN
      image/wxscaninvoice/list_icon_right.png
  25. BIN
      image/wxscaninvoice/logo.jpg
  26. BIN
      image/wxscaninvoice/myInvoice.png
  27. BIN
      image/wxscaninvoice/myfp_16.png
  28. BIN
      image/wxscaninvoice/right.png
  29. BIN
      image/wxscaninvoice/sl_home.jpg
  30. BIN
      image/wxscaninvoice/sl_subscribe.jpg
  31. BIN
      image/wxscaninvoice/success.png
  32. BIN
      image/wxscaninvoice/up.png
  33. BIN
      image/wxscaninvoice/viewExample.png
  34. 470
      js/common/base.js
  35. 1752
      js/iosSelect.js
  36. 35
      js/lib/aes.js
  37. 39
      js/lib/auto-height-textarea.js
  38. 4
      js/lib/jquery-1.11.3.min.js
  39. 2
      js/lib/jquery-qrcode.min.js
  40. 1
      js/lib/jweixin-1.1.0.js
  41. 26
      js/lib/mode-ecb.js
  42. 16
      js/lib/pad-nopadding.js
  43. 390
      js/wxscaninvoice/merge.js
  44. 265
      js/wxscaninvoice/moreMsgFillIn.js
  45. 178
      js/wxscaninvoice/transferPage.js
  46. 1321
      js/wxscaninvoice/writing.js

@ -0,0 +1,3 @@
# SIMS-scaninvoice
销项扫码开票前端

@ -0,0 +1,217 @@
/*
* @名称base.css
* @功能1重设浏览器默认样式
* 2设置通用原子类
*/
html {
font-size: 20px;
}
body {
font-size: 16px;
font-family: "微软雅黑", serif;
}
@media only screen and (max-width: 320px) { html {
font-size: 42.7px !important;
}}
@media only screen and (min-width: 321px) and (max-width: 360px) { html {
font-size: 48px !important;
}}
@media only screen and (min-width: 361px) and (max-width: 375px) { html {
font-size: 50px !important;
}}
@media only screen and (min-width: 376px) and (max-width: 384px) { html {
font-size: 52.1px !important;
}}
@media only screen and (min-width: 385px) and (max-width: 414px) { html {
font-size: 55.2px !important;
}}
@media only screen and (min-width: 415px) and (max-width: 480px) { html {
font-size: 64px !important;
}}
@media only screen and (min-width: 481px) and (max-width: 540px) { html {
font-size: 72px !important;
}}
@media only screen and (min-width: 750px) { html {
font-size: 100px !important;
}}
/*ios安卓通用1px线*/
.border {
box-shadow: inset 0px -1px 0px 0px #EDEDED;
}
.border1{
position:relative;
}
.border1:after{
content:"";
position: absolute;
bottom:0px;
left:0px;
right:0px;
border-bottom:1px solid #DEDEDE;
-webkit-transform:scaleY(.5);
-webkit-transform-origin:0 0;
}
.border-03rem{
position:relative;
}
.border-03rem:after{
content:"";
position: absolute;
bottom:0px;
left:0px;
right:0px;
border-bottom:1px solid #DEDEDE;
-webkit-transform:scaleY(.5);
-webkit-transform-origin:0 0;
margin-left: 0.3rem;
margin-right: 0.3rem;
}
/* 内外边距通常让各个浏览器样式的表现位置不同 */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
margin:0;
padding:0;
-webkit-tap-highlight-color: rgba(0,0,0,0);/*ios去除默认点击阴影效果*/
}
/* 去掉 table cell 的边距并让其边重合 */
table {
border-collapse:collapse;
border-spacing:0;
}
/* ie bug:th不继承 text-align */
th {
text-align:inherit;
}
/* 去除默认边框 */
fieldset,img {
border:none;
}
/* ie678 bug 显示为行内表现 */
iframe {
display:block;
}
/* 一致的 del 样式 */
del {
text-decoration:line-through;
}
address,caption,cite,code,dfn,em,th,var {
font-style:normal;
font-weight:500;
}
/* 去掉列表前的标识,li会继承 */
ol,ul {
list-style:none;
}
/* 对齐是排版最重要的因素,别让什么都居中 */
caption,th {
text-align:left;
}
h1,h2,h3,h4,h5,h6 {
font-weight:500;
}
/* 统一上标和下标 */
sub,sup {
font-size:75%;
line-height:0;
position:relative;
vertical-align:baseline;
}
sup {
top:-0.5em;
}
sub {
bottom:-0.25em;
}
/* 让链接在 hover状态下显示下划线 +去除 ie6ie7焦点点状线 */
a:hover {
text-decoration:underline;
}
a:link {
text-decoration: none;
}
ins,a {
text-decoration:none;
}
a:focus,*:focus {
outline:none;
}
/* 清除浮动 */
.clearfix:after {
content: '';
display: block;
clear: both;
height: 0;
line-height: 0;
visibility: hidden;
overflow: hidden;
}
.clearfix {
zoom: 1;
}
/* 设置显示和隐藏、浮动、定位 */
.hide {
display:none;
}
.block {
display:block;
}
.fl,.fr {
display:inline;
}
.fl {
float:left;
}
.fr {
float:right;
}
.pr {
position: relative;
}
.pa {
position: absolute;
}
/* 背景遮罩 */
.shade{
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 100;
background: rgba(0,0,0,0.70);
}
/* 背景底色 */
.box:before {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -100;
content: " ";
background-color: #F7F7F7;
}
/*背景模糊*/
/*.blur { */
/* filter: url(blur.svg#blur); !* FireFox, Chrome, Opera *!*/
/* -webkit-filter: blur(10px); !* Chrome, Opera *!*/
/* -moz-filter: blur(10px);*/
/* -ms-filter: blur(10px); */
/* filter: blur(10px);*/
/* filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=10, MakeShadow=false); !* IE6~IE9 *!*/
/*}*/
/*解决浮动 定位的父容器无法被撑开问题*/
.automatic-Height:after {
content:".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

@ -0,0 +1,266 @@
/* layer begin */
.ios-select-widget-box.olay {
position: fixed;
z-index: 500;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 1;
background: rgba(0, 0, 0, 0.7);
}
.ios-select-widget-box.olay .layer {
position: fixed;
z-index: 1000;
width: 100%;
height: 100%;
background-color: #fff;
bottom: -194px;
left: 0;
visibility: visible;
}
.ios-select-widget-box header.iosselect-header {
height: 0.8rem;
line-height: 0.8rem;
background-color: #fff;
width: 92%;
z-index: 9999;
margin-left: 4%;
text-align: center;
border-bottom: 1px solid #DEDEDE;
}
.ios-select-widget-box header.iosselect-header a {
font-size: 0.28rem;
color: #FFAA00;
text-decoration: none;
}
.ios-select-widget-box header.iosselect-header a.close {
float: left;
}
.ios-select-widget-box header.iosselect-header a.sure {
float: right;
}
.ios-select-widget-box {
padding-top: 44px;
}
.ios-select-widget-box .one-level-contain,
.ios-select-widget-box .two-level-contain,
.ios-select-widget-box .three-level-contain,
.ios-select-widget-box .four-level-contain,
.ios-select-widget-box .five-level-contain {
height: 100%;
overflow: hidden;
}
.ios-select-widget-box .iosselect-box {
overflow: hidden;
}
.ios-select-widget-box .iosselect-box > div {
display: block;
float: left;
}
.ios-select-widget-box ul {
background-color: #fff;
}
.ios-select-widget-box ul li {
font-size: 0.24rem;
text-align: center;
color: #A5A5A5;
}
.ios-select-widget-box ul li.at {
font-size: 0.28rem;
color: #666;
opacity: 1;
}
.ios-select-widget-box ul li.side1 {
font-size: 15px;
opacity: .7;
}
.ios-select-widget-box ul li.side2 {
font-size: 14px;
opacity: .5;
}
.ios-select-widget-box.one-level-box .one-level-contain {
width: 100%;
}
.ios-select-widget-box.one-level-box .two-level-contain,
.ios-select-widget-box.one-level-box .three-level-contain,
.ios-select-widget-box.one-level-box .four-level-contain,
.ios-select-widget-box.one-level-box .five-level-contain,
.ios-select-widget-box.one-level-box .six-level-contain {
width: 0;
}
.ios-select-widget-box.two-level-box .one-level-contain,
.ios-select-widget-box.two-level-box .two-level-contain {
width: 50%;
}
.ios-select-widget-box.two-level-box .three-level-contain,
.ios-select-widget-box.two-level-box .four-level-contain,
.ios-select-widget-box.two-level-box .five-level-contain,
.ios-select-widget-box.two-level-box .six-level-contain {
width: 0;
}
.ios-select-widget-box.three-level-box .one-level-contain,
.ios-select-widget-box.three-level-box .two-level-contain {
width: 30%;
}
.ios-select-widget-box.three-level-box .three-level-contain {
width: 40%;
}
.ios-select-widget-box.three-level-box .four-level-contain,
.ios-select-widget-box.three-level-box .five-level-contain,
.ios-select-widget-box.three-level-box .six-level-contain {
width: 0%;
}
.ios-select-widget-box.four-level-box .one-level-contain,
.ios-select-widget-box.four-level-box .two-level-contain,
.ios-select-widget-box.four-level-box .three-level-contain,
.ios-select-widget-box.four-level-box .four-level-contain {
width: 25%;
}
.ios-select-widget-box.four-level-box .five-level-contain,
.ios-select-widget-box.four-level-box .six-level-contain {
width: 0%;
}
.ios-select-widget-box.five-level-box .one-level-contain,
.ios-select-widget-box.five-level-box .two-level-contain,
.ios-select-widget-box.five-level-box .three-level-contain,
.ios-select-widget-box.five-level-box .four-level-contain,
.ios-select-widget-box.five-level-box .five-level-contain {
width: 20%;
}
.ios-select-widget-box.five-level-box .six-level-contain {
width: 0%;
}
.ios-select-widget-box.six-level-box .one-level-contain,
.ios-select-widget-box.six-level-box .two-level-contain,
.ios-select-widget-box.six-level-box .three-level-contain,
.ios-select-widget-box.six-level-box .four-level-contain,
.ios-select-widget-box.six-level-box .five-level-contain {
width: 16%;
}
.ios-select-widget-box.six-level-box .six-level-contain {
width: 20%;
}
.ios-select-widget-box .cover-area1 {
width: 100%;
border: none;
border-top: 1px solid #d9d9d9;
position: absolute;
top: 149px;
margin: 0;
height: 0;
}
.ios-select-widget-box .cover-area2 {
width: 100%;
border: none;
border-top: 1px solid #d9d9d9;
position: absolute;
top: 183px;
margin: 0;
height: 0;
}
.ios-select-widget-box #iosSelectTitle {
margin: 0;
padding: 0;
display: inline-block;
font-size: 0.28rem;
color: #666;
}
.ios-select-body-class {
overflow: hidden;
}
.ios-select-body-class body {
touch-action: none;
}
.ios-select-widget-box.olay > div > .ios-select-loading-box {
width: 100%;
height: 100%;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0,0,0,.5);
display: none;
}
.ios-select-widget-box.olay > div > .ios-select-loading-box > .ios-select-loading {
width: 50px;
height: 50px;
position: absolute;
left: 50%;
top: 50%;
margin-top: -25px;
margin-left: -25px;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OEMxMEI3NDI3MEIxMUU2ODVGMzhFNjYyMDIyOUFCMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OEMxMEI3NTI3MEIxMUU2ODVGMzhFNjYyMDIyOUFCMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU4QzEwQjcyMjcwQjExRTY4NUYzOEU2NjIwMjI5QUIwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU4QzEwQjczMjcwQjExRTY4NUYzOEU2NjIwMjI5QUIwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+GeWqMwAAA+BJREFUeNrMmVlsTGEUx+9cXZQiLZWKklhbQSSlSMUWSxAiJGJ5aSQehOiDF7yI4EFILW99I3iRSJGUPkiILSKp2OuJVtHWkrRVapn2jv+R/ycnn5l27rQz10l+mWlyl/+c833nO+c0FIlEnATMBbPAIn5OBuPAENAKToC74BtoB59AG/D9spBPgaPBdrAFjJH7Fa66TkRuNe8gP8Bb8Ap8j/eFaXFelwv286WZfKG2WL9SX5cFCuntBvAc/OoPD64HJ8EI5Q3tmW7whl4pAl/AUfAEDKZnQ1HuFXGPQGOiAsW7x8A26wUhirgMLnGtfe3hGcO5NApARpRnSchrY0UhlkAJxxmw0npYBzgOKinSj6WDCfRyphWFJnAPdMUjUH71WbDKElcDykGL0zcbCEroVf389+CW7Uk3ygNk/azghYIHDoCN/SDO4W6+A55aAiUrzImWz7StA2WWuF2gIpEc1ovVgQeWyELm06gCc8ARJU44DM45yTPZII8tkXO5DP4RuI8iPYqr4YmQbJN8+E4JlA1abAuUBbtZeU526O4khDWW3QdhK9TZWmAZd6/x3inw0UmdSZJ/pgSKlilGoMvTwoiTw/20k3p7yTyovRgScTNAvgrvFSbkVJuE+LU6GiXEefJHqfKefF5zgrMGVRnJZ4HEerryXjdzU1DWbB2BI10mRuPBej+1WhKsi8vLeDDXZRllwtvoBG8davNmS4gHUZyTQIWSrM1iQpyZptafo4QGabp9+JNmOijMY9MTtGWpEHe5PDHMGsz/DwQOUwI7XVYUZheP1ZVEAJbOFsGswTYR+EKF2NWVRABWwHPYeLDFZWKOKJFLAhRYpMQJjS7rsWYlcjlTT6pNOr5pahfL5m12KaparUPpZTcEILCEjjGniCy9iMk3F9hImzCXcZqQKhOnLFShjbBX/psQP4Aq5UUpdfZEGXEkKzGvZf4zu/exOdV0T1LJCZTx4gK2msm2Uq494z1pS29Ea5ra2RPrrm4HpwvJsplgtTW/kXq0M1ZffF2F2uMNe+nJUD+HVWaLm8AAtXNrOXTqcfQh2fwQmKdST4TTgAp6ui+WTWFTrUpedu15Fs29Do/kuDsIZlsiW7njryZQ2MrAaD5Yqko88+w6zoPCfsdv5VwjnnXayA67zYmUdGM/e0i+E7nWivnDPUWEz6iyPedngLkY7ARDrQeb72GOz5roVY/eylMHvxflXjkpLoKHfZ2wmhJIkvcylUi9BAnTa9U9DD59CzQm/csaZv0cn0JbOeK4ye/xbfcE/w0hYZvElnU8GEXBGRQjeewzi5B6rtP6RGY9vwUYACMHTam1T1ebAAAAAElFTkSuQmCC) no-repeat 0 0;
background-size: contain;
-webkit-animation: loading-keyframe 1s infinite linear;
animation: loading-keyframe 1s infinite linear;
}
.fadeInUp .layer{
-webkit-animation: fadeInUp .5s;
animation: fadeInUp .5s;
}
.fadeOutDown .layer{
-webkit-animation: fadeOutDown .5s!important;
animation: fadeOutDown .5s!important;
}
@-webkit-keyframes loading-keyframe {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
@keyframes loading-keyframe {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@-webkit-keyframes fadeInUp {
from {
opacity: 0;
-webkit-transform: translate3d(0,100%,0);
}
to {
opacity: 1;
-webkit-transform: none;
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0,100%,0);
}
to {
opacity: 1;
transform: none;
}
}
@-webkit-keyframes fadeOutDown {
from {
opacity: 1;
}
to {
opacity: 0;
-webkit-transform: translate3d(0, 100%, 0);
}
}
@keyframes fadeOutDown {
from {
opacity: 1;
}
to {
opacity: 0;
transform: translate3d(0, 100%, 0);
}
}

@ -0,0 +1,351 @@
[v-cloak] {
display: none;
}
span {
white-space: nowrap;
}
.merge_content {
width: 100%;
height: 100%;
position: relative;
margin-bottom: 1.45rem;
/* height: */
}
.merge_header {
position: absolute;
width: 100%;
height: 1.3rem;
line-height: 1.3rem;
/* height: 9.6%; */
background-color: rgb(14, 14, 14);
}
.merge_header h3 {
font-size: .325rem;
color: #fff;
text-align: center;
}
.merge_content .merge_handle {
height: 0.8rem;
background-color: #F7F7F7;
box-sizing: border-box;
padding: 0 .425rem;
line-height: 0.8rem;
display: flex;
flex-wrap: nowrap;
white-space: nowrap;
justify-content: space-between;
}
.merge_content .merge_handle span {
font-size: .24rem;
display: flex;
}
.merge_content .merge_handle span.handle_left {
color: #A5A5A5;
font-size: .24rem;
}
.merge_content .merge_handle span.handle_right {
font-size: .24rem;
color: #D60000;
/* float: right; */
}
.merge_content .merge_main {
width: 100%;
background-color: #fff;
}
.merge_main ul li {
height: 2.6rem;
width: 100%;
box-sizing: border-box;
padding: 0 .3rem;
}
.list-content {
width: 100%;
height: 100%;
padding: .3rem 0;
box-sizing: border-box;
display: flex;
border-bottom: 1px solid #E2E2E2;
}
.merge_main ul li .select-box {
float: left;
width: .7rem;
height: 100%;
text-align: center;
display: flex;
align-items: center;
}
.merge_main ul li .select-box i.icon-on {
display: inline-block;
width: .4rem;
height: .4rem;
background: url(../../image/wxscaninvoice/right.png) no-repeat;
background-size: 100% 100%;
}
.merge_main ul li .select-box i.icon-off {
display: inline-block;
width: .4rem;
height: .4rem;
background: url(../../image/wxscaninvoice/Oval5.png) no-repeat;
background-size: 100% 100%;
}
.title-box {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.title-box span {
color: #A5A5A5;
font-size: .28rem;
}
.val-box {
margin-left: .8rem;
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.val-box span {
color: #666666;
width: 4.1rem;
display: inline-block;
font-size: .28rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.val-box .money {
font-size: .28rem;
color: #FFAA00;
}
.merge_footer {
position: fixed;
width: 100%;
bottom: 0;
left: 0;
background-color: #fff;
}
.merge_footer .footer-show {
height: .48rem;
width: 100%;
box-sizing: border-box;
padding: 0 .3rem;
border-bottom: 1px solid#FEFEFE;
}
.merge_footer .footer-show span {
color: #444;
font-size: .24rem;
}
.footer-control {
height: .96rem;
display: flex;
}
.control-select {
display: flex;
width: 53.3%;
box-sizing: border-box;
padding: 0 15px;
align-items: center;
}
.control-select i.icon-off {
display: inline-block;
width: .4rem;
height: .4rem;
background: url(../../image/wxscaninvoice/Oval5.png) no-repeat;
background-size: cover;
}
.control-select i.icon-on {
display: inline-block;
width: .4rem;
height: .4rem;
background: url(../../image/wxscaninvoice/right.png) no-repeat;
background-size: cover;
}
.control-select span {
color: #444444;
font-size: .28rem;
margin-left: .2rem;
}
.control-select .homepage {
display: flex;
align-items: center;
}
.control-select .selectAll {
display: flex;
align-items: center;
/* margin-left: .3rem; */
}
.control-btns {
display: flex;
width: 3.5rem;
flex: 1;
}
.scan,
.next {
display: flex;
flex: 1;
align-items: center;
justify-content: center;
font-size: .34rem;
color: #fff;
}
.scan {
background: #FFDF9F;
}
.next {
background: #FFAA00;
}
/* 遮罩 */
.shade {
/* display: none; */
position: fixed;
z-index: 500;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 1;
background: rgba(0, 0, 0, 0.7);
overflow: hidden;
}
.merge-block {
position: fixed;
/* display: none; */
top: 30%;
left: 5%;
margin: 0 auto;
width: 90%;
height: 4rem;
background-color: #fff;
z-index: 999;
text-align: center;
box-sizing: border-box;
padding-top: 1rem;
}
.merge-block span {
font-size: .3rem;
}
.operation {
position: absolute;
bottom: .4rem;
left: 0;
width: 100%;
display: flex;
justify-content: space-around;
}
.operation span {
width: 1.9rem;
height: .7rem;
text-align: center;
line-height: .7rem;
border-radius: .08rem;
border: 1px solid #FFAA00;
}
.operation .cancel {
color: #FFAA00;
}
.operation .confirm {
color: #fff;
background-color: #ffaa00;
}
/* loading */
.loading {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-color: #fff;
z-index: 9999;
display: flex;
justify-content: center;
align-items: center;
}
.loading img {
width: 1rem;
height: 1rem;
}
.operation .nextBlock {
width: 70%;
}
.loadingBlock {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 100%;
height: 100%;
overflow: hidden;
/* background-color: #fff; */
z-index: 1000;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.loadingBlock img {
width: 0.8rem;
height: .8rem;
}
.loadingBlock span {
margin-top: .8rem;
font-size: .26rem;
text-align: center;
}

@ -0,0 +1,630 @@
.banner img {
width: 100%;
height: 1.4rem;
display: block;
}
.writing_content {
padding-bottom: 1.14rem;
}
input::-webkit-input-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
input:-moz-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
input::-moz-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
input:-ms-input-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
/*发票开具列表*/
.name_li {
background: #FFF;
}
.name_li_mTop {
margin-top: 0.2rem;
}
.name_li_mTop p {
font-size: 0.24rem;
color: #A5A5A5;
letter-spacing: -0.58px;
margin-left: 4%;
padding-top: 0.2rem;
}
.list_li {
width: 96%;
height: 0.8rem;
line-height: 0.8rem;
font-size: 0.28rem;
clear: both;
margin-left: 4%;
position: relative;
}
.list_li:after,
.moreMsg_ul:after {
content: "";
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
border-bottom: 1px solid #E9E9E9;
-webkit-transform: scaleY(.5);
-webkit-transform-origin: 0 0;
}
.list_li:nth-last-child(1):after {
border-bottom: none;
}
.name_li_rBottom li:nth-last-child(1) {
border-bottom: none;
}
.list_li .list_name,
.markBox span {
width: 34%;
color: #666;
float: left;
display: inline;
letter-spacing: -0.68px;
}
.list_li .list_name .stars {
color: #D0021B;
letter-spacing: -0.68px;
line-height: 0.29rem;
}
.list_li .list_val {
width: 66%;
float: right;
text-align: left;
color: #666;
}
.list_li .list_val i {
position: absolute;
font-size: 0.28rem;
font-family: '宋体', serif;
color: #A5A5A5;
font-style: normal;
top: 0;
left: 0;
}
.list_li .list_val_pr {
position: relative;
}
.list_li .fptt_close {
position: absolute;
width: 0.3rem;
height: 0.3rem;
top: 0.24rem;
right: 0.3rem;
display: none;
z-index: 100;
}
.el-icon-more{
position: absolute;
z-index: 110;
}
.list_li .list_select {
width: 60%;
float: left;
text-align: right;
}
.list_li .modelIcon {
width: 0.13rem;
height: 0.22rem;
position: absolute;
top: 0.29rem;
right: 0.3rem;
}
.list_li .list_val input,
.list_li .list_select input {
width: 85%;
font-size: 0.28rem;
color: #666;
text-align: left;
border: none;
display: inline-block;
}
.list_li .kpxms {
width: 60%;
float: left;
text-align: right;
}
.list_li .kpxms input {
width: 85%;
font-size: 0.28rem;
color: #666;
text-align: left;
border: none;
display: inline-block;
}
.list_li .list_select input {
width: 100%;
}
.list_li .search {
width: 4.6rem;
height: auto;
position: absolute;
top: 0.81rem;
right: 0rem;
z-index: 10000;
border-radius: 0.08rem;
background: rgba(141, 139, 139, 0.93);
}
.list_li .search_ul {
padding: 0 0.3rem;
}
.list_li .search_ul .search_li {
line-height: 0.8rem;
text-align: left;
color: #FFF;
font-size: 0.28rem;
border-bottom: 1px solid #DEDEDE;
}
.list_li .search_ul .search_li:nth-last-child(1) {
border-bottom: none;
}
.start {
color: #C81026;
}
.tip {
width: 30%;
font-size: 0.28rem;
color: #FFAA00;
float: right;
}
.bottom_tips {
line-height: 0.73rem;
color: #A5A5A5;
font-size: 0.24rem;
letter-spacing: -0.58px;
padding-right: 4%;
text-align: right;
}
.bottom_tips span:nth-child(1) {
margin-right: 0.6rem;
}
/*提交按钮*/
.bottom_submit {
width: 100%;
display: flex;
box-sizing: border-box;
padding: 0 .3rem;
justify-content: space-between;
height: 1.14rem;
text-align: center;
background: url(../../image/wxscaninvoice/footer-bg.png) repeat-x;
;
background-size: cover;
position: fixed;
bottom: 0;
left: 0;
}
.submit_click {
width: 70.7%;
height: 0.74rem;
line-height: 0.74rem;
text-align: center;
color: #FFF;
background-color: #FFAA00;
font-size: 0.29rem;
margin: 0.2rem auto;
border-radius: 4px;
}
.Fristxmmc {
width: 34%;
color: #666;
display: inline-block;
line-height: 0.8rem;
letter-spacing: -0.68px;
overflow: hidden;
padding-right: 0.2rem;
text-overflow: ellipsis;
white-space: nowrap;
box-sizing: border-box;
}
.Fristxmje {
width: 66%;
float: right;
text-align: left;
color: #666;
}
/*开票项目更多*/
.kpxm_li {
width: 92.4%;
font-size: 0.28rem;
clear: both;
line-height: 0.9rem;
margin: 0 auto;
position: relative;
}
.kpxm_li:after {
content: "";
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
border-bottom: 1px solid #E9E9E9;
-webkit-transform: scaleY(.5);
-webkit-transform-origin: 0 0;
}
.kpxm_li .xmmc {
width: 35%;
color: #333;
display: inline-block;
line-height: 0.7rem;
letter-spacing: -0.68px;
}
.kpxm_li .xmje {
width: 65%;
float: right;
text-align: right;
}
/*纳税人识别号为空弹框*/
.nsrsh_model,
.search_shade {
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.7);
display: none;
}
.search_shade {
background: transparent;
}
.nsrsh_border {
width: 5.9rem;
height: 3.9rem;
font-size: 0.28rem;
color: #666;
line-height: 0.41rem;
background: #FFF;
border-radius: 0.08rem;
margin: 2.8rem auto;
padding: 0.6rem 0.3rem 0;
letter-spacing: -0.68px;
box-sizing: border-box;
position: relative;
}
.nsrsh_border div.nsrsh_sure {
width: 92%;
height: 1.08rem;
line-height: 1.08rem;
text-align: center;
position: absolute;
bottom: 0;
left: 0;
border-top: 1px solid #E9E9E9;
margin-left: 4%;
font-size: 0.34rem;
color: #FFAA00;
}
/*发票类型模态框*/
.freQuestion_shade,
.invoiceDescript_shade,
.viewExample_shade {
width: 100%;
height: 100%;
position: fixed;
top: 100%;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.7);
}
/*开票说明弹框 + 常见问题弹框*/
.freQuestion_shade {
overflow: auto;
}
.freQuestion_content,
.invoiceDescript_content {
width: 92%;
margin: 2.8rem auto;
color: #fff;
font-size: 0.28rem;
}
.freQuestion_content {
margin: 0.8rem auto 0;
height: 85%;
overflow: auto;
}
.freQuestion_content ul {
margin-bottom: 0.3rem;
}
.freQuestion_content p,
.invoiceDescript_content p {
text-indent: 2em;
margin-bottom: 0.3rem;
line-height: 0.4rem;
}
.freQuestion_content img,
.invoiceDescript_content img,
.viewExample_shade .viewExample_close {
width: 0.37rem;
height: 0.37rem;
position: absolute;
bottom: 0.4rem;
left: 50%;
margin-left: -0.185rem;
}
/*点击提交弹框*/
.seeCardMsg_shade {
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.7);
display: none;
overflow: auto;
}
.seeCard_content {
width: 5.9rem;
height: auto;
background: #FFFFFF;
border-radius: 0.08rem;
margin: 2rem auto 0;
font-size: 0.28rem;
padding: 0.4rem 0.2rem 0 0.2rem;
box-sizing: border-box;
color: #666;
z-index: 10000;
}
.seeCard_content p {
color: #333333;
text-align: center;
padding-bottom: 0.4rem;
}
.seeCard_ul {
padding-bottom: 0.3rem;
}
.seeCard_ul li {
line-height: 0.6rem;
clear: both;
letter-spacing: -0.68px;
}
.seeCard_ul li .name {
display: inline-block;
width: 42%;
text-align: left;
color: #A5A5A5;
float: left;
}
.seeCard_ul li .name_val {
width: 58%;
display: inline-block;
text-align: left;
color: #666;
line-height: 0.4rem;
word-break: break-word;
}
.Mes_ul {
display: flex;
border-top: 1px solid #E9E9E9;
height: 1.08rem;
line-height: 1.08rem;
position: relative;
}
.Mes_ul .seeCard_line {
width: 1px;
height: 0.48rem;
background: #E9E9E9;
position: absolute;
bottom: 0.3rem;
left: 50%;
}
.Mes_ul .seeCard_noSure,
.Mes_ul .seeCard_sure {
flex: 1;
text-align: center;
font-size: 0.34rem;
}
.Mes_ul .seeCard_noSure {
color: #A5A5A5;
}
.Mes_ul .seeCard_sure {
color: #FFAA00;
}
/*更多信息*/
.moreMsg_ul {
background-color: #fff;
height: 3.2rem;
position: relative;
}
.viewExample {
font-size: 0.24rem;
color: #FFAA00;
letter-spacing: -0.58px;
position: absolute;
top: 0.2rem;
right: 0.3rem;
}
.moreMsg_bottom {
position: relative;
height: calc(100vh - 3.2rem);
padding-top: 1.6rem;
}
.moreMsg_click {
margin: 0 auto;
}
.viewExample_pic {
width: 100%;
margin: 2.8rem auto 0;
}
.markBox {
border-bottom: 0.14rem solid #F7F7F7;
font-size: 0.28rem;
padding-left: 4%;
line-height: 0.8rem;
}
.markBox textarea {
width: 62%;
border: none;
resize: none;
font-size: 0.28rem;
letter-spacing: -0.68px;
color: #666;
overflow: hidden;
padding-top: 0.2rem;
min-height: 0.35rem;
}
.markBox textarea::-webkit-input-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
.markBox textarea::-ms-input-placeholder {
font-size: 0.28rem;
color: #A5A5A5;
}
/*异常页样式expiryEWM.html+exception.html*/
.busy_info {
color: #666;
font-size: 0.28rem;
text-align: center;
}
.error_icon {
width: 1.65rem;
height: 2.15rem;
margin-top: 1.4rem;
}
.error_tip {
width: 92%;
padding-bottom: 0.5rem;
margin-top: 0.3rem;
margin-left: 4%;
}
.myInvoice_con {
width: 3.38rem;
height: auto;
position: absolute;
top: 45.9%;
left: 50%;
margin-left: -1.69rem;
}
.myInvoice_pic {
width: 100%;
height: 3.38rem;
}
.myInvoice_tip {
margin-top: 0.3rem;
width: 3.68rem;
margin-left: -0.1rem;
}
.bottom_con {
position: absolute;
bottom: 0.2rem;
left: 50%;
margin-left: -2.4rem;
text-align: center;
color: #A5A5A5;
font-size: 0.24rem;
}
.merge_click {
display: none;
width: 41.5%;
height: 0.7rem;
/* background: url(../../image/wxscaninvoice/Group.png) no-repeat; */
background-size: 100% 100%;
line-height: 0.74rem;
text-align: center;
color: rgb(252, 203, 106);
border: 1px solid rgb(252, 203, 106);
margin: 0.2rem auto;
}
.mergeShow {
width: 47.7%;
}

@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<title>发票开具</title>
<style>
body {
background: #F7F7F7;
}
.border_main {
width: 94.7%;
height: 11rem;
font-size: 0.29rem;
text-align: center;
background: #FFFFFF;
border: 1px solid #D4D4D4;
margin: 2.2% auto 0;
}
.top_img {
width: 1.4rem;
height: 1.4rem;
margin-top: 1.63rem;
}
.tip_name {
line-height: 0.41rem;
color: #4A4A4A;
letter-spacing: -1px;
margin-top: 0.39rem;
}
.tip_name span {
color: #000000;
}
.sl {
display: none;
}
.slTipe {
margin-top: 2.5rem;
}
.Tip {
font-size: 0.25rem;
color: #4A4A4A;
}
.EWMpng {
width: 2.58rem;
height: 2.58rem;
margin: 0.8rem auto 0.3rem;
}
.name {
margin-top: 0.5rem;
color: #4A4A4A;
}
.gzh {
display: none;
font-size: 0.25rem;
}
</style>
</head>
<body>
<div class="border_main">
<div class="sl">
<img alt="" src="../../image/wxscaninvoice/success.png" class="top_img" />
<p class="tip_name">发票开具申请已提交,请关注<span><br>
公众号或联系商家</span>,了解更多发票状态</p>
<img alt="" src="" class="EWMpng" />
<p class="name">温馨提示:长按识别二维码后关注公众号</p>
</div>
<div class="gzh">
<img alt="" src="../../image/wxscaninvoice/success.png" class="top_img" />
<p class="tip_name">发票开具申请已提交,请关注<span>【我的发票】<br>
公众号或联系商家</span>,了解更多发票状态</p>
<img alt="" src="" class="EWMpng" />
<p class="name">温馨提示:长按识别二维码后关注"我的发票"</p>
</div>
</div>
</body>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jweixin-1.1.0.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
const subscribe = window.localStorage.getItem("subscribe");
const ewm = window.localStorage.getItem("ewm");
const prePath = '../../image/wxscaninvoice/';
const defaultLogoPath = prePath + 'myfp_16.png';
if (ewm === "" || ewm == null || ewm === undefined) {
$(".EWMpng").attr("src", defaultLogoPath);
$('.gzh').css("display", "block");
} else {
$('.sl').css("display", "block");
$(".EWMpng").attr("src", prePath + ewm);
}
</script>
</html>

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<link rel="stylesheet" type="text/css" href="../../css/wxscaninvoice/writing.css?v=1.0.7" />
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jweixin-1.1.0.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<title></title>
</head>
<body>
<div class="busy_info">
<img class="error_icon" src="../../image/wxscaninvoice/error_icon.png" alt=""/>
<p class="error_tip"></p>
<div class="myInvoice_con">
<img alt="" class="myInvoice_pic" src="" />
<p class="myInvoice_tip">长按识别二维码后关注公众号</p>
</div>
<div class="bottom_con">
<p>如问题无法解决,请联系商家或拨打客服电话</p>
<p>400-8198018</p>
</div>
</div>
</body>
<script>
$(function () {
const errorNum = getUrlArgumentValue('num');
if (errorNum === 1) {
$('.error_tip').html('二维码已失效');
} else if (errorNum === 2) {
$('.error_tip').html('二维码异常,请联系商家');
} else if (errorNum === 3) {
$('.error_tip').html('此张发票超限额,请联系管理员开票。');
} else if (errorNum === 4) {
$('.error_tip').html('二维码不存在,请联系商家');
} else {
$('.error_tip').html('系统繁忙,请稍后重试');
}
const subscribe = window.localStorage.getItem("subscribe");
const ewm = window.localStorage.getItem("ewm");
const prePath = '../../image/wxscaninvoice/';
const defaultLogoPath = prePath + 'myfp_16.png';
if (ewm === "" || ewm == null || ewm === undefined) {
$(".myInvoice_pic").attr("src", defaultLogoPath);
} else {
$(".myInvoice_pic").attr("src", prePath + ewm);
}
})
</script>
</html>

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7"/>
<link rel="stylesheet" type="text/css" href="../../css/wxscaninvoice/writing.css?v=1.0.7"/>
<title></title>
</head>
<body>
<div class="busy_info" >
<img alt="" class="error_icon" src="../../image/wxscaninvoice/error_icon.png"/>
<p class="error_tip">二维码已失效</p>
<div class="myInvoice_con">
<img alt="" class="myInvoice_pic" src="../../image/wxscaninvoice/myfp_16.png"/>
<p class="myInvoice_tip">长按关注【我的发票】</p>
</div>
<div class="bottom_con">
<p>如问题无法解决,请联系商家或拨打客服电话</p>
<p>400-XXXXXX</p>
</div>
</div>
</body>
</html>

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<title>发票预览</title>
</head>
<body>
<div class="" id="imgBox">
</div>
</body>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script>
const tqm = getUrlArgumentValue('tqm');
$(function () {
$.ajax({
url: config.projectUrl + '/invoiceDetails/queryInvoiceDateilInfoPdfByTqm',
type: "post",
contentType:'application/json',
data: JSON.stringify({
'tqm': tqm
}),
async: false,
success: function (data) {
if (data.code === '0000') {
$.ajax({
url: config.projectUrl + '/invoiceDetails/previewInvoicePngMore',
type: "post",
data:JSON.stringify([{
"invoiceCode": data.data.orderInvoiceInfo.fpdm,
"invoiceNo": data.data.orderInvoiceInfo.fphm,
"sdInvoiceNo": data.data.orderInvoiceInfo.sdfphm,
"invoiceType": data.data.orderInvoiceInfo.fpzlDm,
"xhfNsrsbh": data.data.orderInvoiceInfo.xhfNsrsbh,
}]),
async: false,
contentType:'application/json',
success: function (data) {
if(data.code==="0000"){
let imgs = "";
for(let i=0; i<data.data.length; i++){
const imgSrc = 'data:image/png;base64,' + data.data[i];
const img = '<img src=' + imgSrc + ' style="width:100%"/>';
imgs += img;
}
$("#imgBox").html(imgs);
}else{
alert_prompt_open("提示", '发票预览失败', 1);
}
}
})
} else {
alert_prompt_open("提示", '发票预览失败', 1);
}
},
error: function () {
alert_prompt_open("提示", "当前网络正忙,请稍后重试", 1);
}
});
})
</script>
</html>

@ -0,0 +1,92 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>合并开票</title>
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<link rel="stylesheet" href="../../css/wxscaninvoice/merge.css">
</head>
<body style="background: #F7F7F7;">
<div id="loading" class="loading">
<img src="../../image/common/timg.gif" alt="">
</div>
<div id="merge" class="merge_content">
<div v-show='shadeShow||nextShow||loadingShow' class="shade"></div>
<div v-show='loadingShow' class="loadingBlock">
<img src="../../image/common/timg.gif" alt="">
<span>加载中...</span>
</div>
<div v-show='shadeShow' class="merge-block">
<span>删除订单后将不能恢复,确定删除吗?</span>
<div class="operation">
<span @click='shadeShow=false' class="cancel">取消</span>
<span @click='onDelete' class="confirm">确定</span>
</div>
</div>
<div v-show='nextShow' class="merge-block">
<span>所选订单为{{ orderQuantity }}个纳税人主体,将开具{{ orderQuantity }}张发票</span>
<div class="operation">
<span @click='onNext' class="nextBlock confirm">确定</span>
</div>
</div>
<div class="merge_handle">
<span @click='billingHistory' class="handle_left">查看开票历史</span>
<span @click='onDel' class="handle_right">删除</span>
</div>
<div class="merge_main">
<ul>
<li v-for='v in myData'>
<div class="list-content">
<div class="select-box">
<i @click='onSwitch(v.id)' :class="{'icon-off':!v.switch,'icon-on':v.switch}"></i>
</div>
<div class="title-box">
<span>添加时间</span>
<span>销方名称</span>
<span>开票项目</span>
<span>开票金额</span>
</div>
<div class="val-box">
<span>{{ v.addTime }}</span>
<span>{{ v.name }}</span>
<span>{{ v.billingItem }}</span>
<span class="money">{{ v.money }}</span>
</div>
</div>
</li>
</ul>
</div>
<div class="merge_footer">
<div class="footer-show">
<span>{{ orderQuantity }} 个订单,共{{ orderPrice.toFixed(2) }}元</span>
</div>
<div class="footer-control">
<div class="control-select">
<div class="selectAll">
<i @click='onCheckAll' :class="{'icon-off':!checkAllShow,'icon-on':checkAllShow}"></i>
<span>选全部</span>
</div>
</div>
<div class="control-btns">
<div @click='onScan' :class="{scan:scanShow,next:!scanShow}">
<span>扫码</span>
</div>
<div class="next">
<span @click='onNextBtn'>下一步</span>
</div>
</div>
</div>
</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
<script src="../../js/lib/jquery-1.11.3.min.js"></script>
<script src="https://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<script src="../../js/common/base.js"></script>
<script src="../../js/wxscaninvoice/merge.js"></script>
</html>

@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7"/>
<link rel="stylesheet" type="text/css" href="../../css/wxscaninvoice/writing.css?v=1.0.7"/>
<title>更多</title>
</head>
<body style="background-color: white;">
<div class="markBox">
<span>备注说明</span>
<textarea id="markNotes" oninput="changerow(this)" maxlength="50" class="markNotes" placeholder="填写备注说明" name="" rows="1" cols="16"></textarea>
</div>
<!--更多信息详情-->
<ul class="list_ul moreMsg_ul">
<li class="list_li">
<span class="list_name">注册地址<span class="stars">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="registerAddr" name="registerAddr" value="" type="text" placeholder="请输入企业注册地址" maxlength="79" oninput="otherTitleChange(this)" onfocus="otherTitleChange(this)"/>
<img alt="" class="fptt_close" onclick="fptt_close_click(this)" src="../../image/wxscaninvoice/fptt_close.png"/>
</span>
</li>
<li class="list_li">
<span class="list_name">注册电话<span class="stars">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="registerPhone" name="registerPhone" value="" type="text" placeholder="请输入企业注册电话" oninput="otherTitleChange(this)" onfocus="otherTitleChange(this)"/>
<img alt="" class="fptt_close" onclick="fptt_close_click(this)" src="../../image/wxscaninvoice/fptt_close.png"/>
</span>
</li>
<li class="list_li">
<span class="list_name">开户银行<span class="stars">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="bankName" name="bankName" value="" type="text" placeholder="请输入企业开户银行名称" maxlength="74" oninput="otherTitleChange(this)" onfocus="otherTitleChange(this)"/>
<img alt="" class="fptt_close" onclick="fptt_close_click(this)" src="../../image/wxscaninvoice/fptt_close.png"/>
</span>
</li>
<li class="list_li">
<span class="list_name">开户账号<span class="stars">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="bankAccount" name="bankAccount" value="" type="text" placeholder="请输入企业开户账号" maxlength="25" oninput="otherTitleChange(this)" onfocus="otherTitleChange(this)"/>
<img alt="" class="fptt_close" onclick="fptt_close_click(this)" src="../../image/wxscaninvoice/fptt_close.png"/>
</span>
</li>
</ul>
<div class="moreMsg_bottom" onclick="fpttClose()">
<p class="viewExample" onclick="viewExample_click()">查看示例</p>
<div class="submit_click moreMsg_click" onclick="moreMsg_click()">确认</div>
</div>
<!--更多信息查看示例-->
<div class="viewExample_shade">
<img alt="" class="viewExample_pic" src="../../image/wxscaninvoice/viewExample.png"/>
<img alt="" class="viewExample_close" onclick="viewExample_close()" src="../../image/wxscaninvoice/close.png"/>
</div>
</body>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/wxscaninvoice/moreMsgFillIn.js?v=1.0.7" type="text/javascript" charset="utf-8"></script><br />
<script src="../../js/lib/auto-height-textarea.js" type="text/javascript" charset="utf-8"></script>
</html>

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<title>发票开具</title>
</head>
<style>
.border_main {
color: #666;
font-size: 0.28rem;
text-align: center;
}
.top_img {
width: 1.4rem;
height: 1.4rem;
margin-top: 1.63rem;
}
.tip_name{
margin-top: 0.3rem;
}
</style>
<body>
<div class="border_main">
<img alt="" src="../../image/wxscaninvoice/success.png" class="top_img" />
<p class="tip_name">发票开具申请已提交,商家审核中…</p><br>
</div>
</body>
</html>

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7"/>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jweixin-1.1.0.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/wxscaninvoice/transferPage.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<title></title>
</head>
<body>
</body>
</html>

@ -0,0 +1,281 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" type="text/css" href="../../css/base.css?v=1.0.7" />
<link rel="stylesheet" type="text/css" href="../../css/wxscaninvoice/writing.css?v=1.0.7" />
<link rel="stylesheet" type="text/css" href="../../css/iosSelect.css?v=1.0.7">
<title>发票开具</title>
</head>
<body style="background: #F7F7F7;">
<div class="writing_content clearfix">
<div class="banner">
<img alt="" id="logo" src="" />
</div>
<ul class="name_li">
<li class="list_li">
<span class="list_name">发票类型</span>
<span class="list_select">
<input type="text" id="fp_type" placeholder="请选择发票类型" onclick="fpType(this)" onfocus="cancelFocus('fp_type')"
maxlength="10" readonly="readonly" />
</span>
<img alt="" src='../../image/wxscaninvoice/list_icon_right.png' class="modelIcon modelIcon_fplx">
</li>
<li class="list_li">
<span class="list_name">抬头类型</span>
<span class="list_select">
<input type="text" id="tt_type" placeholder="请选择抬头类型" onfocus="cancelFocus('tt_type')" value=""
onclick="ttType(this)" maxlength="10" readonly="readonly" />
</span>
<img alt="" src='../../image/wxscaninvoice/list_icon_right.png' class="modelIcon modelIcon_ttlx">
</li>
</ul>
<!--抬头信息-->
<ul class="name_li name_li_mTop">
<p>抬头信息</p>
<li class="list_li">
<span class="list_name">发票抬头<span class="stars starsNo">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="titleName" name="titleName" value="" type="text" placeholder="请输入发票抬头" maxlength="100"
oninput="titleOnChange(this)" onfocus="titleEmptyChange()" />
<i class="el-icon-more" style="left: auto;top: 0.14rem;right: 0.7rem;cursor: pointer;font-size: large;background-color: white;width: 0.6rem;text-align: center;line-height: 0.3rem;height: 0.5rem;" onclick="getJSSDK()">...</i>
<img alt="" class="fptt_close fptt_close_fptt" onclick="fptt_close_click(this,1)"
src="../../image/wxscaninvoice/fptt_close.png" />
</span>
<div class="search_shade">
</div>
<span class="search">
<ul class="search_ul"></ul>
</span>
</li>
<li class="list_li">
<span id="title_nsrsbh" class="list_name">纳税人识别号<span id="title_nsrsbh_star" class="stars starsNo">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="taxpayerId" name="taxpayerId" value="" type="text" placeholder="请输入纳税人识别号" maxlength="20"
oninput="otherTitleChange(this)" onfocus="otherTitleChange(this)" />
<img alt="" class="fptt_close fptt_close_nsrssh" onclick="fptt_close_click(this)"
src="../../image/wxscaninvoice/fptt_close.png" />
</span>
</li>
<li class="list_li">
<span class="list_name">更多信息</span>
<span class="list_val" onclick="moreMsg()">
<input name="moreMsg" type="text" placeholder="填注册地址等" readonly="readonly" />
</span>
<img alt="" src='../../image/wxscaninvoice/list_icon_right.png' class="modelIcon modelIcon_moreMsg">
</li>
</ul>
<!--收票人信息-->
<ul class="name_li name_li_mTop name_spxx_hide">
<p>收票人信息</p>
<!-- <li class="list_li">-->
<!-- <span class="list_name">手机号<span class="stars">*</span></span>-->
<!-- <span class="list_val list_val_pr" onblur="resetCloseIcon(this)">-->
<!-- <input id="telephone" name="telephone" value="" type="text" maxlength="11" placeholder="请输入手机号"-->
<!-- onfocus="otherTitleChange(this)" oninput="otherTitleChange(this)" />-->
<!-- <img alt="" class="fptt_close fptt_close_phone" onclick="fptt_close_click(this,event)"-->
<!-- src="../../image/wxscaninvoice/fptt_close.png" />-->
<!-- </span>-->
<!-- </li>-->
<li class="list_li">
<!-- <span class="list_name">邮箱<span class="stars">*</span></span>-->
<span class="list_name">邮箱<span class="stars"></span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="email" name="email" value="" type="text" placeholder="用来接收电子发票邮件" maxlength="50"
onfocus="otherTitleChange(this)" oninput="otherTitleChange(this)" />
<img alt="" class="fptt_close fptt_close_email" onclick="fptt_close_click(this)"
src="../../image/wxscaninvoice/fptt_close.png" />
</span>
</li>
</ul>
<!--开票内容-->
<ul class="name_li name_li_mTop name_li_rBottom">
<p>开票内容</p>
<li class="list_li" id="zjeSpan">
<span class="list_name">总金额</span>
<span class="list_val kpje"></span>
</li>
<li id="listLiID" class="list_li">
<span class="Fristxmmc"></span>
<span class="Fristxmje"></span>
</li>
<!-- <span class="stars">*</span> -->
<li class="list_li" id="zjeInput" style="display: none">
<span class="list_name">总金额<span class="stars">*</span></span>
<span class="list_val list_val_pr" onblur="resetCloseIcon(this)">
<input id="kphjje" name="kphjje" value="" type="text" placeholder="请输入开票金额" onfocus="otherTitleChange(this)"
oninput="otherTitleChange(this)" />
<img alt="" class="fptt_close fptt_close_email" onclick="fptt_close_click(this)"
src="../../image/wxscaninvoice/fptt_close.png" />
</span>
</li>
<li class="list_li" id="listLiByStatic" style="display: none">
<span class="list_name">开票项目</span>
<span class="list_select">
<input type="text" id="kpxm" placeholder="请选择开票项目" onclick="kpmxSelect(this)" onfocus="cancelFocus('kpxm')"
readonly="readonly" />
</span>
<img alt="" src='../../image/wxscaninvoice/list_icon_right.png' class="modelIcon modelIcon_fplx" />
</li>
</ul>
<!--底部提示信息-->
<div class="bottom_tips">
<span onclick="descriptQuestion_click(1)">开票说明</span>
<span onclick="descriptQuestion_click(2)">常见问题</span>
</div>
</div>
<div class="bottom_submit">
<div class="merge_click" onclick="addMerge()">添加合并</div>
<div class="submit_click mergeShow" onclick="nextStep()">提交</div>
</div>
<!-- 纳税人识别号为空时弹框 -->
<div class="nsrsh_model">
<div class="nsrsh_border">
按照国税总局公告,从2017年7月1日起,企业在索取发票时,应提供纳税人识别号或统一社会信用代码,请核实是否已填列,若无有关证号,请至“个人/其他”抬头类型处开具发票。
<div class="nsrsh_sure" onclick="nsrsh_hide()">确定</div>
</div>
</div>
<!--开票说明弹框-->
<div class="invoiceDescript_shade">
<div class="invoiceDescript_content">
<p>1、根据国家税务总局公告2015年第84号的规定,增值税电子普通发票的法律效力、基本用途、基本使用规定等于税务机关监制的增值税普通发票相同。</p>
<p>2、开票项目过多时,如需确认开票项目,请在提交前确认。</p>
<p>3、暂不支持纸质发票邮寄功能,如需开具纸质发票,请咨询商家收取发票。</p>
<p>4、发票申请提交后无法修改,如信息有误请联系商家修改。</p>
<img alt="" onclick="descriptQuestion_close(1)" src="../../image/wxscaninvoice/close.png" />
</div>
</div>
<!--常见问题弹框-->
<div class="freQuestion_shade">
<div class="freQuestion_content">
<ul>
<li>问题:没有收到电子发票?</li>
<li>回答:请联系商家,让商家进行电子发票补推。</li>
</ul>
<ul>
<li>问题:发票重新开具?</li>
<li>回答:请联系商家,和商家协商解决。</li>
</ul>
<ul>
<li>问题:电子普通发票和纸质普通发票,法律效力一样吗?</li>
<li>回答:增值税电子普通发票的法律效力、基本用途、基本使用规定等与税务机关监制的增值税普通发票相同,因此可以使用。</li>
</ul>
<ul>
<li>问题:在哪里可以查询到发票的真伪?</li>
<li>回答:</li>
<li>(1)可以拨打12366纳税服务咨询电话;</li>
<li>(2)可以登录全国增值税发票查验平台(https://inv-veri.chinatax.gov.cn)进行发票信息一致性查询;</li>
<li>(3)可以携带发票原件到主管税务机关进行真伪鉴定;</li>
<li>(4)关注“我的发票”公众号,也可以一键查验发票真伪。</li>
</ul>
<ul>
<li>问题:增值税普通发票和专用发票有何不同?</li>
<li>回答:增值税专用发票和普通发票主要在以下方面存在区别:</li>
<li>(1)开具发票所需信息不同,增值税专用发票需要购货方详细的资料信息(税号,企业基本账户开户行以及账号,地址联系方式),而普通发票只需要提供购货方名称和税号;</li>
<li>(2)发票的作用不同:增值税专用发票不仅是购销双方收付款的凭证,而且可以用作购买方扣除增值税的凭证;而普通发票不能用于抵扣增值税税款;</li>
<li>(3)发票使用的主体不同:增值税专用发票一般只能由增值税一般纳税人领购使用,小规模纳税人需要使用的,只能经税务机关批准后由当地的税务机关代开;普通发票则可以由从事经营活动并办理了税务登记的各种纳税人领购使用。
</li>
</ul>
<ul>
<li>问题:使用电子发票有什么好处?</li>
<li>
回答:对开票企业的好处:电子发票不需要纸质载体,没有印制、打印、存储和邮寄等成本,可以节约相关费用;对消费者的好处:可以在发生交易的同时收取电子发票,并可根据需要,在税务机关网站查询验证发票信息。在凭电子发票进行报销、入账及相关售后维修服务时,可以对电子发票进行下载或打印,解决了纸质发票查询和保存不便的缺陷。
</li>
</ul>
<ul>
<li>问题:请问增值税专用发票,由于开票错误,需要开具红字发票,是否有时间限制?</li>
<li>回答:纳税人开具增值税专用发票后,发生销货退回、开票有误、应税服务中止等情形但不符合发票作废条件,或者因销货部分退回及发生销售折让,可以开具红字增值税专用发票的,没有时间限制。</li>
</ul>
<img alt="" onclick="descriptQuestion_close(2)" src="../../image/wxscaninvoice/close.png" />
</div>
</div>
<!--点击提交弹框-->
<div class="seeCardMsg_shade">
<div class="seeCard_content">
<p>确认开票申请</p>
<ul class="seeCard_ul">
<li>
<span class="name">发票抬头</span>
<span class="name_val titleName"></span>
</li>
<li class="taxpayerid">
<span id="confirm_nsrsbh" class="name">纳税人识别号</span>
<span class="name_val taxpayerId"></span>
</li>
<li class="phone">
<span class="name">手机</span>
<span class="name_val telephone"></span>
</li>
<li class="email">
<span class="name">邮箱</span>
<span class="name_val Email"></span>
</li>
<li class="registeraddr">
<span class="name">注册地址</span>
<span class="name_val registerAddr"></span>
</li>
<li class="registerphone">
<span class="name">注册电话</span>
<span class="name_val registerPhone"></span>
</li>
<li class="bankname">
<span class="name">开户银行</span>
<span class="name_val bankName"></span>
</li>
<li class="bankaccount">
<span class="name">开户账号</span>
<span class="name_val bankAccount"></span>
</li>
<li>
<span class="name">发票类型</span>
<span class="name_val fplx_type"></span>
</li>
<li>
<span class="name">金额</span>
<span class="name_val je"></span>
</li>
<li>
<span class="name">开票项目</span>
<span class="name_val fp_kpxm"></span>
</li>
<li class="bz">
<span class="name">备注</span>
<span class="name_val fp_kpxm"></span>
</li>
</ul>
<div class="Mes_ul">
<span class="seeCard_noSure" onclick="seeCard_back_model()">返回修改</span>
<span class="seeCard_line"></span>
<span class="seeCard_sure" onclick="sureStep()">确定</span>
</div>
</div>
</div>
</body>
<script src="../../js/iosSelect.js?v=1.0.7"></script>
<!--js模拟ios联动插件-->
<script src="../../js/common/base.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/aes.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/mode-ecb.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/pad-nopadding.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jweixin-1.1.0.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/lib/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../js/wxscaninvoice/writing.js?v=1.0.7" type="text/javascript" charset="utf-8"></script>
<script>
</script>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

@ -0,0 +1,470 @@
// var uid = localStorage.getItem('uid');
// var token = localStorage.getItem('token');
const openId = localStorage.getItem('openId');
/*线上全局配置变量*/
const config = {
baseUrl: '/wxkf',
//本项目域名
projectUrl: "/order-api",
// projectUrl: "/ysy1",
wxscanUrl: "/wxscaninvoice",
//销项基础服务
simsBaseUrl: "/base-service",
//接口域名以及项目名称
interfaceUrl: "/ele-myinvoice",
//发票列表票夹
myinvoiceUrl: "/my-invoice",
//微信服务地址
wxservicePath: "http://wdfp.5ifapiao.com/wxservice",
wxserviceTestPath: '/wxservice',
//发票名片接口地址
invoiceCardUrl: "/myinvoice-invoice-card",
//账号相关接口地址
accountUrl: "/myinvoice-account",
//企业logo获取地址
logoUrl: "/myinvoice-data"
};
// /*测试全局配置变量*/
// var config = {
// baseUrl: 'http://sims.ele-cloud.com.com',
// //本项目域名
// projectUrl: "http://test.5ifapiao.com:8888/order-api",
// // projectUrl:"https://sims.ele-cloud.com.com/wxscaninvoice",
//
//
// wxscanUrl: "http://test.5ifapiao.com:8888/wxscaninvoice",
//
// //接口域名以及项目名称
// // interfaceUrl: "https://sims.ele-cloud.com.com/ele-myinvoice",
// interfaceUrl: "http://test.5ifapiao.com:8888/ele-myinvoice",
//
// //发票列表票夹
// // myinvoiceUrl:"http://sims.ele-cloud.com.com/my-invoice-lyang",
// myinvoiceUrl: "http://sims.ele-cloud.com.com/my-invoice",
//
// //微信服务地址
// // wxservicePath: "https://wdfp.5ifapiao.com/wxservice",
// wxservicePath: "http://wdfp.5ifapiao.com/wxservice",
//
// //发票名片接口地址
// // invoiceCardUrl: "https://sims.ele-cloud.com.com/myinvoice-invoice-card",
// invoiceCardUrl: "http://test.5ifapiao.com:8888/myinvoice-invoice-card",
//
// //账号相关接口地址
// // accountUrl: "https://sims.ele-cloud.com.com/myinvoice-account",
// accountUrl: "http://test.5ifapiao.com:8888/myinvoice-account",
//
// //企业logo获取地址
// // logoUrl: "https://sims.ele-cloud.com.com/myinvoice-data"
// logoUrl: "http://test.5ifapiao.com:8888/myinvoice-data"
//
//
// };
//请求头类型
function getProtocol() {
return window.location.protocol + "//";
}
//域名:端口
function getHost() {
return window.location.host; //localhost:8080
}
//跳转页面
function toPage(page) {
window.location.href = getPreUrl() + page;
}
function getPreUrl() {
return getProtocol() + getHost() + '/' + getProjectName();
}
function getProjectName() {
const relativePath = location.pathname;
const tmp = relativePath.split("/");
if (tmp[1].length === 0) {
return tmp[2];
} else {
return tmp[1];
}
}
function updateUrlParam(num) {
const params = new URLSearchParams(location.search.slice(1));
params.set('type', '');
window.history.replaceState({}, '', `${location.pathname}?${params + location.hash}`);
}
//获取url参数的value getUrlArgumentValue(参数名称)
function getUrlArgumentValue(name) {
const hash = window.location.hash;
if (hash !== "" && name === 'code') { //路径中有锚点 不能直接获取到 参数
if (hash.indexOf('&') > 0) {
return hash.split('&')[1].split('=')[1];
} else {
return hash.split('?')[1].split('=')[1];
}
}
if (hash !== "" && name === 'path') {
return window.location.search.substr(6).split("?")[0] + hash.split('&')[0];
}
const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
const r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]) + hash;
} else {
return null;
}
}
//获取url参数列表 数组
function getUrlArgumentArr() {
let name, value;
let str = location.href; //取得整个地址栏
let num = str.indexOf("?");
str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ]
const arr = str.split("&"); //各个参数放到数组里
for (let i = 0; i < arr.length; i++) {
num = arr[i].indexOf("=");
if (num > 0) {
name = arr[i].substring(0, num);
value = arr[i].substr(num + 1);
this[name] = value;
}
}
return arr;
}
//获取微信code 重定向返回当前页面 重定向回来后 有code 通过code获取openid 和 token
function getOpenidOrToken() {
const pathCode = encodeURIComponent(window.location.href);
if (pathCode.indexOf("%26code%3D") < 0 || pathCode.indexOf("%3fcode%3D") < 0) {
window.location.href = config.wxservicePath + '/api/toGetUserInfo?type=1&path=' + pathCode;
}
//basejs中获取地址参数值
const code = getUrlArgumentValue("code");
//掉后台接口 通过code获取oppentId-->token
if (code != null && code !== '') {
$.ajax({
type: 'POST',
data: {
"code": code
},
dataType: 'JSON',
url: config.accountUrl + '/account/wx/getOpenId',
async: false,
header: {
'content-type': 'application/x-www-form-urlencoded'
}, // 设置请求的 header
success: function (data) {
info = data.data;
localStorage.setItem('openId', info.user);
localStorage.setItem("token", info.token);
}
})
}
}
function getUnionIdAndOpenId() {
const pathCode = encodeURIComponent(window.location.href);
if (pathCode.indexOf("%26code%3D") < 0 || pathCode.indexOf("%3fcode%3D") < 0) {
window.location.href = config.wxservicePath + '/api/toGetUserInfo?type=1&path=' + pathCode;
}
//basejs中获取地址参数值
const code = getUrlArgumentValue("code");
if (code != null && code !== '') {
$.ajax({
type: "get",
url: config.accountUrl + '/account/wx/getOpenId?code=' + code,
async: false,
success: function (data) {
return data;
}
});
}
}
//获取code并获取用户信息
function getUserInfoCode(appid) {
let code = "";
const pathCode = encodeURIComponent(window.location.href);
if (pathCode.indexOf("%26code%3D") >= 0 || pathCode.indexOf("%3fcode%3D") >= 0) {
code = getUrlArgumentValue("code");
} else {
if (appid == null) {
window.location.href = config.wxservicePath + '/api/toGetUserInfo?type=1&path=' + pathCode;
} else {
window.location.href = config.wxservicePath + '/api/toGetUserInfo?type=1&path=' + pathCode + "&appid=" + appid;
}
}
//获取用户信息
if (code != null && code !== '') {
$.ajax({
type: "post",
url: config.wxserviceTestPath + "/api/getUserInfo",
data: JSON.stringify({
"code": code,
"type": "1",
"gzh_appid": appid
}),
contentType: "application/json;charset=utf-8",
dataType: "json",
async: false,
success: function (data) {
},
complete: function (xml) {
const responseText = JSON.parse(xml.responseText);
if (xml.status === 200) {
const subscribe = responseText.subscribe;
const openId = responseText.openid;
const unionId = responseText.unionid;
window.localStorage.setItem('openId', openId);
window.localStorage.setItem('subscribe', subscribe);
window.localStorage.setItem('unionId', unionId);
//登陆成功调jsp列表
// pathCode1 = decodeURIComponent(pathCode);
// pathCode = getUrlArgumentValue("path");
// if (pathCode != null) {
// window.location.replace(pathCode);
// } else {
// window.location.replace(pathCode1);
// }
} else {
alert_timing_open(getCodeInfo(responseText.code));
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert_loading_close();
alert_timing_open('登录失败请重新登录');
},
})
}
}
//弹框 title:标题, description:描述, type:1显示确认 2显示确认取消
function alert_prompt_open(title, description, type) {
const body = document.getElementsByTagName('body')[0];
const sub = (type === "1" ? '<div class="alert_prompt_bottom_two" style="display: flex;height:0.7rem;line-height:0.7rem;margin-top:0.2rem;">' +
'<span class="alert_prompt_bottom_two_affirm" style="color: #FFAA00;flex: 1;font-size:0.34rem;" onclick="alert_prompt_close()">确定</span>' +
'</div>' :
'<div class="alert_prompt_bottom_one" style="display: flex;height:0.7rem;line-height:0.7rem;margin-top:0.2rem;">' +
'<span class="alert_prompt_bottom_one_cancel" style="border-right: 1px solid #DEDEDE; color: #ABABAB;font-size: 0.34rem; flex: 1;" onclick="alert_prompt_close()">取消</span>' +
'<span class="alert_prompt_bottom_one_affirm" style="color: #FFAA00;border-right: 1px solid #DEDEDE; border:none;font-size: 0.34rem; flex: 1;" onclick="alert_prompt_close()">确定</span>' +
'</div>');
const str = '<div class="alert_prompt_open" style="position: fixed; top: 0; left: 0; bottom: 0; right: 0; background: rgba(0,0,0,0.7); z-index: 1001;">' +
'<div class="alert_prompt_count" style="width: 5.5rem; height:3.52rem; background-color: #FFFFFF; border-radius: 0.08rem; margin-left: 50%; margin-top: 3rem; position: absolute; left: -2.75rem;">' +
'<div class="alert_prompt_info" style="width: 100%; margin-top: 0.6rem; text-align: center;">' +
'<div class="alert_prompt_top" style="border-bottom: 1px solid #DEDEDE;">' +
'<div style="font-size: 0.28rem; color: #666666;height: 0.4rem;line-height: 0.4rem;font-weight:700;">' + title + '</div>' +
'<span style="font-size: 0.28rem;color: #666666; margin-top: 0.4rem; height: 0.4rem;line-height: 0.4rem;margin-bottom: 0.6rem; display: block;">' + description + '</span>' +
'</div>' +
sub +
'</div>' +
'</div>' +
'</div>';
body.insertAdjacentHTML('beforeend', str);
}
//关闭弹框
function alert_prompt_close() {
const body = document.getElementsByTagName('body')[0];
const open = document.getElementsByClassName('alert_prompt_open')[0];
body.removeChild(open);
}
//打开load弹框
function alert_loading_open(info) {
const body = document.getElementsByTagName('body')[0];
if (body !== undefined) {
var info = info != null ? info : '请等待...';
const str = '<div class="alert_loading_open" style="position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: 9999999;">' +
'<div class="alert_content" style="height: 1.3rem; width: 3rem; background:rgba(17, 17, 17, 0.7); position: fixed; left:-1.5rem; margin-top: 50%; margin-left: 50%; border-radius: 8px;">' +
'<div class="alert_info" style="padding: 10px 0;text-align: center;">' +
'<img src="../../image/common/timg.gif" style="height: 0.5rem;width: 0.5rem;"/>' +
'<span style="display: block; color: #FFFFFF; white-space:nowrap; font-size:0.3rem">' + info + '</span>' +
'</div>' +
'</div>' +
'</div>';
body.insertAdjacentHTML('beforeend', str);
}
}
//关闭load弹框
function alert_loading_close() {
const body = document.getElementsByTagName('body')[0];
const open = document.getElementsByClassName('alert_loading_open')[0];
if (open !== undefined) {
body.removeChild(open);
}
}
//定时自动关闭弹框
function alert_timing_open(info) {
const body = document.getElementsByTagName('body')[0];
const str =
'<div class="toast_box" style="position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 9999999;">' +
'<div class="toast_content" style="width:auto !important;max-width: 50%;height:auto;line-height: 0.4rem;border-radius:0.08rem;text-align:center;font-size: 0.28rem;color: #fff;background: rgba(0,0,0,0.7);padding: 0.3rem 0.45rem;margin: 3.6rem auto;">' +
info +
'</div>' +
'</div>';
body.insertAdjacentHTML('beforeend', str);
setTimeout(function () {
const body = document.getElementsByTagName('body')[0];
const open = document.getElementsByClassName('toast_box')[0];
body.removeChild(open);
}, 2000);
}
//处理键盘弹出 收起影响的元素
function monitorKeyboard(element) {
const h = document.body.clientHeight;
window.onresize = function () {
if (document.documentElement.clientHeight < h) {
$(element).hide();
} else {
$(element).show();
}
};
}
//处理键盘弹出 收起影响的元素
function monitorKeyboardScroll(element) {
const h = document.body.scrollHeight; //屏幕高度
window.onresize = function () {
if (document.body.scrollHeight < h) {
$(element).hide();
} else {
$(element).show();
}
};
}
//设置token 和 uid
function setTokenOrUid(token, uid) {
window.localStorage.setItem('token', token);
window.localStorage.setItem('uid', uid);
}
/**
* 功能通过 .class #id div 获取元素 class div 返回arr
* @param ele : .class
* @param ele : #id
* @param ele : div
*/
function getEle(ele) {
const indexStusD = ele.indexOf('.');
const indexStusJ = ele.indexOf('#');
if (indexStusD !== -1) {
var ele = ele.split('.')[1];
return document.getElementsByClassName(ele);
} else if (indexStusJ !== -1) {
var ele = ele.split('#')[1];
return document.getElementById(ele);
} else if (indexStusD === -1 && indexStusJ === -1) {
return document.getElementsByTagName(ele);
}
}
//设置token 和 uid
function setTokenOrUid(token, uid) {
window.localStorage.setItem('token', token);
window.localStorage.setItem('uid', uid);
this.token = token;
this.uid = uid;
}
/*input框日历控件软键盘同时出现*/
function cancelRili(cancelId) {
$("#" + cancelId).blur();
}
/*时间戳转换成日期格式*/
function fmtDate(obj) {
const date = new Date(obj);
const y = 1900 + date.getYear();
const m = "0" + (date.getMonth() + 1);
const d = "0" + date.getDate();
return y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length);
}
/*时间戳转换成日期加时间*/
function getdate(obj) {
const now = new Date(obj),
y = now.getFullYear(),
m = ("0" + (now.getMonth() + 1)).slice(-2),
d = ("0" + now.getDate()).slice(-2);
return y + "-" + m + "-" + d + " " + now.toTimeString().substr(0, 8);
}
/*保留两位小数*/
function changeTwoDecimal_f(x) {
var f_x = parseFloat(x);
if (isNaN(f_x)) {
return 0;
}
var f_x = Math.round(x * 100) / 100;
let s_x = f_x.toString();
let pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return s_x;
}
function isWeiXin() {
const ua = window.navigator.userAgent.toLowerCase();
return ua.indexOf('micromessenger') !== -1;
}
// AES加密
function encrypt(plaintText,key) {
let aesKey = CryptoJS.enc.Utf8.parse(key);
let encryptedData = CryptoJS.AES.encrypt(plaintText, aesKey, {
iv: CryptoJS.enc.Utf8.parse("6543210987654321"),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
encryptedData = encryptedData.ciphertext.toString();
let encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
return CryptoJS.enc.Base64.stringify(encryptedHexStr);
}
// AES解密
function decrypt(encryptedData,key) {
let aesKey = CryptoJS.enc.Utf8.parse(key);
let encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
let encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr)
const decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, aesKey, {
iv: CryptoJS.enc.Utf8.parse("6543210987654321"),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decryptedData.toString(CryptoJS.enc.Utf8);
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,35 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
var CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,
2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},
q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,
e)).finalize(b)}}});var n=d.algo={};return d}(Math);
(function(){var u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<
l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),
f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,
m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,
E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/
4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);
(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,
l)}})();
CryptoJS.lib.Cipher||function(u){var p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},
finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=
c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,
e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,
b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();
(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,
16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>
8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=
d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();

@ -0,0 +1,39 @@
(function () {
const isEmpty = function (value) {
return value.replace(/\s/, '').length > 0;
};
const getStyle = function (element, property) {
if (!!document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(element, null)[property];
} else {
const currentStyle = element.currentStyle;
return currentStyle[property];
}
};
let addEven = function (ele, type, callback) {
if (document.addEventListener) {
addEven = function (ele, type, callback) {
ele.addEventListener(type, callback, false);
};
} else {
addEven = function (ele, type, callback) {
ele.attachEvent('on' + type, callback);
};
}
addEven(ele, type, callback);
};
this.autoTextArea = function (dom) {
if (!(dom && dom.nodeType === 1 && dom.nodeName === 'TEXTAREA')) return;
const diff = parseInt(getStyle(dom, "paddingTop") || 0) + parseInt(getStyle(dom, "paddingBottom") || 0);
if (isEmpty(dom.value)) {
dom.style.height = dom.scrollHeight - diff + "px";
}
addEven(dom,"input", function (e) {
const event = e || window.event;
const target = event.target || event.srcElement;
target.style.height = "0";
target.style.height = target.scrollHeight - diff + "px";
});
};
})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,26 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/**
* Electronic Codebook block mode.
*/
CryptoJS.mode.ECB = (function () {
const ECB = CryptoJS.lib.BlockCipherMode.extend();
ECB.Encryptor = ECB.extend({
processBlock: function (words, offset) {
this._cipher.encryptBlock(words, offset);
}
});
ECB.Decryptor = ECB.extend({
processBlock: function (words, offset) {
this._cipher.decryptBlock(words, offset);
}
});
return ECB;
}());

@ -0,0 +1,16 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/**
* A noop padding strategy.
*/
CryptoJS.pad.NoPadding = {
pad: function () {
},
unpad: function () {
}
};

@ -0,0 +1,390 @@
const vm = new Vue({
el: '#merge',
data: {
shadeShow: false,
nextShow: false,
checkAllShow: false,
scanShow: false,
loadingShow: false,
orderNumber: 0,
nsrsbh: '',
myData: [],
orderInfo: [],
orderItemInfoList: [],
logo: []
},
computed: {
//共多少个订单
orderQuantity() {
let num = 0;
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
num++
}
}
return num
},
//订单总价
orderPrice() {
let num = 0;
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
num += parseFloat(this.myData[i].money)
}
}
return num
},
//纳税人数量
taxpayerLength() {
const array = [];
const temp = [];
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
array.push(this.myData[i].name);
}
}
for (let k = 0; k < array.length; k++) {
if (temp.indexOf(array[k]) === -1) {
temp.push(array[k]);
}
}
return temp.length;
},
//提交多少个发票
invoiceNum() {
const array = [];
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
array.push(this.myData[i])
}
}
return array.length;
}
},
methods: {
//调用微信扫码
onScan() {
const _this = this;
wx.scanQRCode({
needResult: 1,
scanType: ["qrCode", "barCode"],
success: function (res) {
_this.scanData(res);
}, fail: function () {
_this.getJSSDK();
}
})
},
//删除
onDel() {
let a = false;
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
a = true
}
}
if (a) {
this.shadeShow = true
} else {
alert_prompt_open("提示", "请选择要删除的开票", 1);
}
},
scanData(res) {
const _this = this;
let reqData = {"shortUrl": res.resultStr, "xhfNsrsbh": this.nsrsbh};
$.ajax({
type: 'POST',
url: config.projectUrl + '/scanInvoice/getMergeOrderByShortUrl?shortUrl=' + res.resultStr + '&xhfNsrsbh=' + this.nsrsbh,
// url: config.projectUrl +'/scanInvoice/getMergeOrderByShortUrl?shortUrl=http://sims.dxyun.com:52380/order-api-cs/api/v3/491743155269619714&xhfNsrsbh=' + this.nsrsbh,
async: false,
data: JSON.stringify(reqData),
contentType: "application/json;charset=utf-8",
success: function (res) {
if (res.code === "0000") {
const orderInfo = JSON.parse(window.sessionStorage.getItem("orderInfo"));
if (orderInfo) {
_this.nsrsbh = orderInfo.xhfNsrsbh;
} else {
_this.nsrsbh = '';
}
if (_this.nsrsbh !== '' && res.orderInfo.xhfNsrsbh !== _this.nsrsbh) {
alert_prompt_open("提示", "销方不一致,请重新扫描同销方订单", 1);
} else {
let dataOrderInfo = res.orderInfo;
let dataOrderItemInfoList = res.orderItemList[0];
_this.orderInfo = dataOrderInfo;
_this.orderItemInfoList = dataOrderItemInfoList;
window.sessionStorage.setItem("orderInfo", JSON.stringify(dataOrderInfo));
window.sessionStorage.setItem("orderItemInfoList", JSON.stringify(dataOrderItemInfoList));
let num = 0;
for (let i = 0; i < _this.myData.length; i++) {
if (_this.myData[i].id !== dataOrderInfo.id) {
num++
} else {
alert_prompt_open("提示", "不可重复添加", 1);
}
}
if (_this.myData.length === num) {
const time = dataOrderItemInfoList.createTime;
let o = {
id: dataOrderInfo.id,
addTime: time,
name: dataOrderInfo.xhfMc,
billingItem: dataOrderItemInfoList.xmmc,
orderInfoId: dataOrderItemInfoList.orderInfoId,
money: dataOrderInfo.kphjje,
// kpxm: dataOrderInfo.kpxm,
fpqqlsh: dataOrderInfo.fpqqlsh,
switch: false
}
_this.myData.push(o);
}
_this.allBtn();
}
} else {
alert_prompt_open("提示", res.msg, 1);
}
}
});
},
//一位转两位
add0(m) {
return m < 10 ? '0' + m : m
},
//时间戳转日期
format(shijianchuo) {
//shijianchuo是整数,否则要parseInt转换
const time = new Date(shijianchuo);
const y = time.getFullYear();
const m = time.getMonth() + 1;
const d = time.getDate();
const h = time.getHours();
const mm = time.getMinutes();
const s = time.getSeconds();
return y + '-' + this.add0(m) + '-' + this.add0(d) + ' ' + this.add0(h) + ':' + this.add0(mm) + ':' + this.add0(s);
},
//获取微信扫一扫服务
getJSSDK() {
const _this = this;
$.ajax({
type: 'POST',
url: '/ele-myinvoice/wx/getJSSDK?url=' + window.location.href,
async: false,
// data: { url: window.location.href },
success: function (data) {
const info = data;
this.scanShow = true;
wx.config({
debug: false,
appId: info.appId,
beta: true,
timestamp: info.timestamp,
nonceStr: info.nonceStr,
signature: info.signature,
jsApiList: ['scanQRCode']
});
wx.error(function (res) {
setTimeout(function () {
if (callbackNum < 5) {
callbackNum++;
_this.getJSSDK();
}
}, 100)
});
}
});
},
//点击小圆点
onSwitch(id) {
let num = 0;
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].id === id) {
this.myData[i].switch = !this.myData[i].switch
}
if (this.checkAllShow && !this.myData[i].switch) {
this.checkAllShow = false
}
if (!this.myData[i].switch) {
num++
}
}
if (num === 0) {
this.checkAllShow = true
}
},
//下一步
onNext() {
window.location.href = "./writing.html";
window.sessionStorage.setItem('page', "1")
},
//下一步
onNextBtn() {
if (this.taxpayerLength === 0) {
alert_prompt_open("提示", "请选择要合并的开票", 1);
} else {
this.loadingShow = true;
this.pushData()
}
},
// 下一步请求
pushData() {
const _this = this;
const ids = [];
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
ids.push(this.myData[i].orderInfoId)
}
}
window.sessionStorage.setItem("myDataShow", JSON.stringify(true));
window.sessionStorage.setItem("myData", JSON.stringify(this.myData));
$.ajax({
type: 'POST',
url: config.projectUrl + '/scanInvoice/getMergeOrder',
async: false,
contentType: "application/json;charset=utf-8",
data: JSON.stringify({
ids: JSON.stringify(ids),
xhfNsrsbh: this.nsrsbh
}),
success: function (data) {
_this.loadingShow = false;
if (data.code === '0000') {
// window.sessionStorage.setItem("orderNumber", JSON.stringify(data.data.orderNumber));
// var logo = JSON.parse(window.sessionStorage.getItem("logo"));
// if(!logo || !_this.logo){
window.sessionStorage.setItem("orderInfo", JSON.stringify(data.commonOrder.orderInfo));
window.sessionStorage.setItem("orderItemInfoList", JSON.stringify(data.commonOrder.orderItemInfo));
// window.sessionStorage.setItem("logo", JSON.stringify(_this.logo));
// }
// var arr = [];
// _this.orderNumber = data.data.orderNumber;
// var orderPrice = _this.orderPrice.toFixed(2);
// window.sessionStorage.setItem("orderPrice", JSON.stringify(orderPrice));
window.sessionStorage.setItem("ids", JSON.stringify(ids));
_this.nextShow = true;
} else {
alert_prompt_open("提示", data.msg, 1);
}
}
});
},
//全选
onCheckAll() {
this.checkAllShow = !this.checkAllShow
for (let i = 0; i < this.myData.length; i++) {
this.myData[i].switch = this.checkAllShow;
}
},
//点击删除
onDelete() {
this.shadeShow = false
let arr = [];
for (let i = 0; i < this.myData.length; i++) {
if (!this.myData[i].switch) {
arr.push(this.myData[i])
}
}
this.myData = arr;
this.allBtn()
// var orderInfo = JSON.parse(window.sessionStorage.getItem("orderInfo"));
// var orderItemInfoList = JSON.parse(window.sessionStorage.getItem("orderItemInfoList"));
// var enterpriseInfo = JSON.parse(window.sessionStorage.getItem("logo"));
// var a = 0;
// for (let i = 0; i < this.myData.length; i++) {
// if (orderInfo.id == this.myData.id) {
// a++;
// }
// }
if (this.myData.length === 0) {
window.sessionStorage.removeItem("orderInfo");
window.sessionStorage.removeItem("orderItemInfoList");
window.sessionStorage.removeItem("logo");
}
},
// 查看历史账单
billingHistory() {
window.location.href = config.baseUrl + "/my-invoice/html/account/login_transfer_page.html?path=http://wxkf.5ifapiao.com/my-invoice/html/public/footer.html#invoice_list";
},
//全选管理
allBtn() {
let a = 0;
for (let i = 0; i < this.myData.length; i++) {
if (this.myData[i].switch) {
a++
}
}
this.checkAllShow = a !== 0;
},
init() {
let myDataShow = JSON.parse(window.sessionStorage.getItem("myDataShow"));
if (myDataShow) {
this.myData = JSON.parse(window.sessionStorage.getItem("myData"))
this.nsrsbh = this.myData[0].xhfNsrsbh;
this.allBtn();
} else {
const orderInfo = JSON.parse(window.sessionStorage.getItem("orderInfo"));
const orderItemInfoList = JSON.parse(window.sessionStorage.getItem("orderItemInfoList"));
// var logo = window.localStorage.getItem("logo");
const time = orderItemInfoList[0].createTime;
this.nsrsbh = orderInfo.xhfNsrsbh;
const name = orderInfo.xhfMc;
let o = {
id: orderInfo.id,
addTime: time,
name: name,
billingItem: orderItemInfoList[0].xmmc,
money: orderInfo.kphjje,
xhfNsrsbh: orderInfo.xhfNsrsbh,
// kpxm: orderInfo.kpxm,
fpqqlsh: orderInfo.fpqqlsh,
orderInfoId: orderItemInfoList[0].orderInfoId,
switch: false
}
this.myData.push(o)
}
}
},
created() {
this.init();
},
mounted() {
$('#loading').hide();
this.getJSSDK();
}
});
var callbackNum = 0;

@ -0,0 +1,265 @@
let titleInfo = JSON.parse(window.sessionStorage.getItem("titleInfo"));
const screenHeigth = window.screen.height;
$(function () {
if (titleInfo == null || titleInfo === undefined || titleInfo === '') {
titleInfo = {};
$('#markNotes').val('');
$('#registerAddr').val('');
$('#registerPhone').val('');
$('#bankName').val('');
$('#bankAccount').val('');
} else {
// var textarea = document.getElementById("markNotes");
// autoTextArea(textarea);
if (titleInfo.bz !== '' && titleInfo.bz != null && titleInfo.bz !== undefined) {
$('#markNotes').val(titleInfo.bz);
changerow('', titleInfo.bz, 1);
} else {
$('#markNotes').val('');
}
$('#registerAddr').val(titleInfo.gfdz == null ? "" : titleInfo.gfdz);
$('#registerPhone').val(titleInfo.gfdh == null ? "" : titleInfo.gfdh);
$('#bankName').val(titleInfo.gfyh == null ? "" : titleInfo.gfyh);
$('#bankAccount').val(titleInfo.gfzh == null ? "" : titleInfo.gfzh);
}
// var textarea = document.getElementById("markNotes");
// autoTextArea(textarea);
// var clickHistory = sessionStorage.getItem('save_historyClick')
const fpTypeId = sessionStorage.getItem('fpTypeId');
if (fpTypeId === "0" || fpTypeId === "52") { //专票和电专情况
$('#registerAddr').val(sessionStorage.getItem('registerAddr')==='null' ?'': sessionStorage.getItem('registerAddr'));
$('#registerPhone').val(sessionStorage.getItem('registerPhone') ==='null' ?'': sessionStorage.getItem('registerPhone'));
$('#bankName').val(sessionStorage.getItem('bankName')==='null' ?'': sessionStorage.getItem('bankName'));
$('#bankAccount').val(sessionStorage.getItem('bankAccount')==='null' ?'': sessionStorage.getItem('bankAccount'));
} else {
$('.stars').css('display','none');
if (titleInfo !== '' && titleInfo != null && titleInfo !== undefined) {
$('#registerAddr').val(titleInfo.gfdz);
$('#registerPhone').val(titleInfo.gfdh);
$('#bankName').val(titleInfo.gfyh);
$('#bankAccount').val(titleInfo.gfzh);
} else {
$('#registerAddr').val('');
$('#registerPhone').val('');
$('#bankName').val('');
$('#bankAccount').val('');
}
}
})
/*更多信息填写点击确认*/
function moreMsg_click() {
const registerAddr = $.trim($("#registerAddr").val());
const registerPhone = $.trim($("#registerPhone").val());
const bankName = $.trim($("#bankName").val());
const bankAccount = $.trim($("#bankAccount").val());
const bz = $.trim($('#markNotes').val());
const ttTypeId = sessionStorage.getItem('ttTypeId');
if (addressOnblur() && phoneOnblur() && accountNameOnblur() && accountNoOnblur()) {
if (checkLength(registerAddr) > 86) {
alert_timing_open("注册地址长度超过限制");
return false;
}
if (checkLength(registerAddr) + checkLength(registerPhone) > 100) {
alert_timing_open("注册地址和注册电话长度超过限制");
return false;
}
if (checkLength(bankName) > 74) {
alert_timing_open("开户银行长度超过限制");
return false;
}
titleInfo.gfdz = registerAddr;
titleInfo.gfdh = registerPhone;
titleInfo.gfyh = bankName;
titleInfo.gfzh = bankAccount;
titleInfo.bz = bz;
titleInfo.ghfqylx = ttTypeId;
sessionStorage.setItem('titleInfo', JSON.stringify(titleInfo));
//电票和普票如果手动添加更多信息,提交时带出数据,否则不带出
toPage("/html/wxscaninvoice/writing.html");
}
}
/*备注框随着输入文字增多而自动增大当前行高度*/
function changerow(ele, data, num) {
if (num === 1) {
controlDis(data.length);
} else {
controlDis(ele.value.length);
}
}
function controlDis(val) {
if (val > 16) {
$('.markNotes').css('paddingTop', '0.2rem');
} else {
$('.markNotes').css('paddingTop', '0.2rem');
}
}
/*更多信息查看示例*/
function viewExample_click() {
document.addEventListener('touchmove', defaul, false);
getEle('.viewExample_shade')[0].style.cssText = 'opacity:1;top:0px;transition-duration:0.3s;transition-timing-function: ease;';
}
function viewExample_close() {
document.removeEventListener('touchmove', defaul, false);
getEle('.viewExample_shade')[0].style.cssText = 'opacity:0;top:' + screenHeigth + 'px;transition-duration:0.3s;transition-timing-function: ease;';
}
/*原声js添加移除需要针对同一个函数 */
function defaul(evt) {
if (!evt._isScroller) {
evt.preventDefault();
}
}
function checkLength(str) {
return str.replace(/[^\x00-\xff]/g, "aa").length;
}
/*验证注册地址*/
function addressOnblur() {
const registerAddr = $.trim($("#registerAddr").val());
const length = registerAddr.length;
const regRule = /\ud800\udc00-\udbff\udfff\ud800-\udfff/g;
if (registerAddr !== '') {
if (length > 86) {
alert_timing_open("注册地址长度超过限制!");
return false;
}
const tempStr = "|";
if (registerAddr.indexOf(tempStr) >= 0) {
alert_timing_open("注册地址不能包含 |");
return false;
}
if (registerAddr.indexOf(" ") >= 0) {
alert_timing_open("注册地址不能包含空格!");
return false;
}
for (let i = 0; i < length; i++) {
if (registerAddr[i].charCodeAt() >= 55356 && registerAddr[i].charCodeAt() <= 59000) {
alert_timing_open("注册地址不能输入表情");
return false;
}
}
}
return true;
}
/*验证注册电话*/
function phoneOnblur() {
const registerPhone = $.trim($("#registerPhone").val());
const length = registerPhone.length;
if (length !== 0) {
const regexEl = /^[\d-]*$/;
if (!regexEl.test(registerPhone)) {
alert_timing_open("注册电话只能为半角'数字'和中横线'-'");
return false;
}
if (length > 14) {
alert_timing_open("注册电话长度超过限制!");
return false;
}
const tempStr = "|";
if (registerPhone.indexOf(tempStr) >= 0) {
alert_timing_open("注册电话不能包含 |");
return false;
}
if (registerPhone.indexOf(" ") >= 0) {
alert_timing_open("注册电话不能包含空格!");
return false;
}
for (let i = 0; i < length; i++) {
if (registerPhone[i].charCodeAt() >= 55356 && registerPhone[i].charCodeAt() <= 59000) {
alert_timing_open("注册电话不能输入表情");
return false;
}
}
}
return true;
}
/*验证开户银行*/
function accountNameOnblur() {
const bankName = $.trim($("#bankName").val());
const length = bankName.length;
if (bankName !== '') {
if (length > 74) {
alert_timing_open("开户银行长度超过限制!");
return false;
}
const tempStr = "|";
if (bankName.indexOf(tempStr) >= 0) {
alert_timing_open("开户银行不能包含 |");
return false;
}
if (bankName.indexOf(" ") >= 0) {
alert_timing_open("开户银行不能包含空格!");
return false;
}
for (let i = 0; i < length; i++) {
if (bankName[i].charCodeAt() >= 55356 && bankName[i].charCodeAt() <= 59000) {
alert_timing_open("开户银行不能输入表情");
return false;
}
}
}
return true;
}
/*验证开户账号*/
function accountNoOnblur() {
const bankAccount = $.trim($("#bankAccount").val());
const length = bankAccount.length;
if (bankAccount !== '') {
const regexEl = /^[\d-]*$/;
if (length !== 0 && !regexEl.test(bankAccount)) {
alert_timing_open("开户账号只能为半角'数字'和中横线'-'");
return false;
}
if (length > 25) {
alert_timing_open("开户账号长度超过限制!");
return false;
}
const tempStr = "|";
if (bankAccount.indexOf(tempStr) >= 0) {
alert_timing_open("开户账号不能包含 |");
return false;
}
for (let i = 0; i < length; i++) {
if (bankAccount[i].charCodeAt() >= 55356 && bankAccount[i].charCodeAt() <= 59000) {
alert_timing_open("开户账号不能输入表情");
return false;
}
}
}
return true;
}
function otherTitleChange(ele) {
setTimeout(function () {
$('.fptt_close').css('display', 'none');
if ($(ele).val().length === 0) {
$(ele).next().css('display', 'none');
} else {
$(ele).next().css('display', 'block');
}
}, 100)
}
function fptt_close_click(ele) {
$(ele).prev().val('');
$(ele).css('display', 'none');
}
function resetCloseIcon(ele) {
$(ele).children[1].css('display', 'none');
}
function fpttClose() {
$('.fptt_close').css('display', 'none');
}

@ -0,0 +1,178 @@
const type = getUrlArgumentValue("type");
const tqm = getUrlArgumentValue("tqm");
const nsrsbh = getUrlArgumentValue("nsrsbh");
const appid = getUrlArgumentValue("appid");
window.localStorage.setItem('appid', appid);
window.localStorage.setItem('type', type);
getEWmGzhConfig();
$(function () {
const subscribe = window.localStorage.getItem('subscribe');
const forceSubcribe = window.localStorage.getItem('forceSubcribe');
if (subscribe === "0") { //未关注
if (forceSubcribe === "1") {
toPage("/html/wxscaninvoice/Followorder.html");
} else {
getOrderInfoByTqm()
}
} else {
getOrderInfoByTqm()
}
})
//获取二维码图片及logo
function getEWmGzhConfig() {
let routerType = window.localStorage.getItem('forceSubcribe');
$.ajax({
url: config.projectUrl + '/scanInvoice/getEWmGzhConfig',
type: "post",
contentType: "application/json;charset=utf-8",
data: JSON.stringify({
'tqm': tqm,
'type': type,
'nsrsbh': nsrsbh,
}),
async: false,
success: function (data) {
if (data.code === '0000') {
if (data.data !== "" && data.data != null && data.data !== undefined) {
if (data.data.secretKey !== "" && data.data.secretKey != null && data.data.secretKey !== undefined) {
window.localStorage.setItem('secretKey', data.data.secretKey) //密钥
}
if (data.data.gzhSubcribeEwm !== "" && data.data.gzhSubcribeEwm != null && data.data.gzhSubcribeEwm !== undefined) {
window.localStorage.setItem('ewm', data.data.gzhSubcribeEwm) //二维码图片
}
if (data.data.homePageLogo !== "" && data.data.homePageLogo != null && data.data.homePageLogo !== undefined) {
window.localStorage.setItem('logo', data.data.homePageLogo) //logo图片
}
if(data.data.type !=="1"){ //公众号
//是否强关
if (data.data.forceSubcribe !== "" && data.data.forceSubcribe != null && data.data.forceSubcribe !== undefined && data.data.forceSubcribe === "1") {
window.localStorage.setItem('forceSubcribe', data.data.forceSubcribe)
}
}
//赋值
if(data.data.type){
routerType = data.data.type;
}else{
//如果为空默认不使用公众号
routerType = "1";
}
window.localStorage.setItem('merge', data.data.merge)
} else {
window.localStorage.removeItem('ewm')
window.localStorage.removeItem('logo')
window.localStorage.removeItem('forceSubcribe')
window.localStorage.removeItem('routerType')
//如果为空默认不使用公众号
routerType = "1";
window.localStorage.setItem('routerType', routerType) // 1 不使用公众号 !=1 公众号
}
if(routerType !=="1"){
getUserInfoCode(appid);
}
} else {
alert_prompt_open("提示", '获取失败', 1);
}
},
error: function () {
alert_prompt_open("提示", "当前网络正忙,请稍后重试", 1);
}
});
}
function getOrderInfoByTqm() {
alert_loading_open("数据加载中");
$.ajax({
type: "post",
url: config.projectUrl + '/scanInvoice/getOrderInfoByTqm',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({
"nsrsbh": nsrsbh,
"tqm": tqm,
"type": type,
"openId": localStorage.getItem('openId')
}),
async: false,
success: function (data) {
alert_loading_close();
window.sessionStorage.setItem("fpzls", JSON.stringify(data.fpzls)); //发票类型
window.sessionStorage.setItem("orderInfo", JSON.stringify(data.orderInfo)); // 订单信息
window.sessionStorage.setItem("orderItemInfoList", JSON.stringify(data.orderItemList)); //开票项目
window.sessionStorage.setItem("titleInfo", JSON.stringify(data.titleInfo)) //抬头信息
if (data.code === "0000") { //处理成功
//判断是否是公众号,如果是公众号需要走授权逻辑,如果不是,直接到填开页
if(window.localStorage.getItem("routerType") === "1"){
toPage("/html/wxscaninvoice/writing.html");
}else{
if (data.orderInfo.authOrderId !== "" && data.orderInfo.authOrderId != null && data.orderInfo.authOrderId !== undefined) {
const invoiceMes = {
tqm: data.orderInfo.tqm,
openId: localStorage.getItem('openId'),
unionId: localStorage.getItem('unionId'),
type: type,
kphjje: data.orderInfo.kphjje,
appid: appid,
xhfNsrsbh: nsrsbh
};
$.ajax({
url: config.projectUrl + '/scanInvoice/getAuthUrl',
type: "post",
data: JSON.stringify(invoiceMes),
contentType: "application/json;charset=utf-8",
async: false,
success: function (data) {
if (data.code === '0000') {
alert_loading_close();
if(window.sessionStorage.getItem('routerType') ==="1"){ //其他
toPage("/html/wxscaninvoice/successTip.html");
}else{
if (data.data.auth_url != null && data.data.auth_url !== undefined && data.data.auth_url !== "") {
window.location.replace(data.data.auth_url);
} else {
toPage("/html/wxscaninvoice/Followorder.html");
}
}
} else if(data.code === '1001'){
toPage("/html/wxscaninvoice/Followorder.html");
}else if(data.code === '9998'){
alert_prompt_open("提示", data.msg, 1);
}else{
toPage("/html/wxscaninvoice/exception.html?num=2");
}
},
error: function () {
alert_prompt_open("提示", "当前网络正忙,请稍后重试", 1);
}
});
} else {
toPage("/html/wxscaninvoice/writing.html");
}
}
} else if (data.code === "1099") { //二维码失效
toPage("/html/wxscaninvoice/exception.html?num=1");
} else if (data.code === "9999") { //解密出错
toPage("/html/wxscaninvoice/exception.html?num=2");
} else if (data.code === "1098") { //二维码不存在
toPage("/html/wxscaninvoice/exception.html?num=4");
} else if (data.code === "3002") {
alert_prompt_open("提示", data.message, 1);
}
},
error: function (data) {
alert_loading_close();
alert_prompt_open("提示", "当前网络正忙,请稍后重试", 1);
}
});
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save