|
|
@@ -1,6 +1,6 @@
|
|
|
<style>
|
|
|
.u_c_invoice {
|
|
|
- background: #f5f5f5;
|
|
|
+ background: #fff;
|
|
|
}
|
|
|
.u_c_invoice select {
|
|
|
opacity: 1
|
|
|
@@ -10,7 +10,8 @@
|
|
|
/*margin-bottom: 16px;*/
|
|
|
}
|
|
|
.u_c_invoice .ticket_record_list {
|
|
|
- background: #f5f5f5;
|
|
|
+ background: #fff;
|
|
|
+ min-height: 323px;
|
|
|
}
|
|
|
.u_c_invoice #add-invoice {
|
|
|
width: 100%;
|
|
|
@@ -52,6 +53,280 @@
|
|
|
.u_c_invoice #add-invoice .form-group{
|
|
|
line-height: 34px;
|
|
|
}
|
|
|
+ .ticket_record .ticket_record_list .ticket_record_title {
|
|
|
+ padding: 20px 24px;
|
|
|
+ }
|
|
|
+ .ticket_record .ticket_record_list .ticket_record_title .l_title {
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .ticket_record .ticket_record_list .ticket_record_title .add_btn{
|
|
|
+ width: 100px;
|
|
|
+ height: 40px;
|
|
|
+ text-align: center;
|
|
|
+ float: right;
|
|
|
+ margin-right: 25px;
|
|
|
+ font-size: 13px;
|
|
|
+ }
|
|
|
+ .ticket_record .ticket_record_list .ticket_record_title .add_btn i{
|
|
|
+ background: white;
|
|
|
+ color: green;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .ticket_record .ticket_record_list .ticket_record_title .add_btn:hover{
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .match-menu {
|
|
|
+ width: 100%;
|
|
|
+ height: 20px;
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+ .match-menu span.active {
|
|
|
+ background: #fff;
|
|
|
+ border: #82d2fa 1px solid;
|
|
|
+ border-bottom: #fff 1px solid;
|
|
|
+ }
|
|
|
+ .match-menu span {
|
|
|
+ display: inline-block;
|
|
|
+ text-align: center;
|
|
|
+ width: 100px;
|
|
|
+ height: 20px;
|
|
|
+ background: #eee;
|
|
|
+ border-top-left-radius: 3px;
|
|
|
+ border-top-right-radius: 3px;
|
|
|
+ margin-left: 390px;
|
|
|
+ line-height: 19px;
|
|
|
+ position: relative;
|
|
|
+ bottom: 20px;
|
|
|
+ }
|
|
|
+ .match-menu span.active a {
|
|
|
+ color: #333;
|
|
|
+ }
|
|
|
+ .match-menu span a {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #999;
|
|
|
+ display: inline-block;
|
|
|
+ height: 20px;
|
|
|
+ width: 78px;
|
|
|
+ }
|
|
|
+ a:hover {
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
+ .match-menu span i {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #999;
|
|
|
+ }
|
|
|
+ .match-menu span i:hover, .match-menu span a:hover {
|
|
|
+ color: #5078cb;
|
|
|
+ }
|
|
|
+ .ticket_record .oder01 ul {
|
|
|
+ border-bottom: #82d2fa 1px solid;;
|
|
|
+ }
|
|
|
+ /*提示框样式*/
|
|
|
+ .com-del-box{
|
|
|
+ position: fixed;
|
|
|
+ z-index: 2;
|
|
|
+ height: 152px;
|
|
|
+ opacity: 1;
|
|
|
+ background-color: white;
|
|
|
+ width: 310px;
|
|
|
+ -webkit-box-shadow: 0 5px 15px rgba(0,0,0,.5);
|
|
|
+ box-shadow: 0 5px 15px rgba(0,0,0,.5);
|
|
|
+ margin: -155px 0 0 -75px;
|
|
|
+ top: 55%;
|
|
|
+ left: 50%;
|
|
|
+ }
|
|
|
+ .com-del-box .title{
|
|
|
+ height: 30px;
|
|
|
+ background-color: #5078cb;
|
|
|
+ text-align: right;
|
|
|
+ padding-right: 15px;
|
|
|
+ line-height: 30px;
|
|
|
+ }
|
|
|
+ .com-del-box .title a{
|
|
|
+ color: white;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ .com-del-box .content{
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ margin: 0 auto;
|
|
|
+ }
|
|
|
+ .com-del-box .content p{
|
|
|
+ line-height: 50px;
|
|
|
+ font-size: 14px;
|
|
|
+ padding-top: 10px;
|
|
|
+ }
|
|
|
+ .com-del-box .content p i{
|
|
|
+ color: #5078cb;
|
|
|
+ font-size: 16px;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .com-del-box .content div{
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ margin: 0 auto;
|
|
|
+ }
|
|
|
+ .com-del-box .content div a{
|
|
|
+ width: 55px;
|
|
|
+ height: 26px;
|
|
|
+ line-height: 26px;
|
|
|
+ display: inline-block;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .com-del-box .content div a:first-child{
|
|
|
+ background: #b4b5b9;
|
|
|
+ color: #333;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ .com-del-box .content div a:last-child{
|
|
|
+ background: #5078cb;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ .com-del-box .content div a:hover{
|
|
|
+ background: #3f7ae3;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ /*新增普票样式*/
|
|
|
+ .content-title {
|
|
|
+ font-size: 19px;
|
|
|
+ }
|
|
|
+
|
|
|
+ td > .simple-select {
|
|
|
+ display: inline;
|
|
|
+ }
|
|
|
+
|
|
|
+ .normal-control-label {
|
|
|
+ margin-bottom: 0;
|
|
|
+ text-align: right;
|
|
|
+ padding-top: 7px;
|
|
|
+ padding-right: 23px;
|
|
|
+ }
|
|
|
+
|
|
|
+ #bill-info label {
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 1.429;
|
|
|
+ }
|
|
|
+ #bill-info label.disable {
|
|
|
+ color: rgb(153, 153, 153);
|
|
|
+ }
|
|
|
+ .base-line {
|
|
|
+ vertical-align: -webkit-baseline-middle;
|
|
|
+ }
|
|
|
+
|
|
|
+ #bill-info .row {
|
|
|
+ margin-left: 0px;
|
|
|
+ margin-right: 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ #bill-info {
|
|
|
+ font-size: 15px;
|
|
|
+ margin-bottom: 1em;
|
|
|
+ }
|
|
|
+
|
|
|
+ .error {
|
|
|
+ padding-top: 7px;
|
|
|
+ line-height: 1.5;
|
|
|
+ }
|
|
|
+
|
|
|
+ div.radio {
|
|
|
+ margin-top: 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .padding-top-5 {
|
|
|
+ padding-top: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ label.padding-left-0 {
|
|
|
+ padding-left: 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .checkbox .col-md-3 {
|
|
|
+ padding-right: 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ div.upload {
|
|
|
+ margin-left: 15px;
|
|
|
+ width: 370px;
|
|
|
+ }
|
|
|
+
|
|
|
+ #bill-info, #bill-info input, #bill-info select{
|
|
|
+ font-size: 14px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ .height-34 {
|
|
|
+ height: 34px;
|
|
|
+ line-height: 26px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .a-background {
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+
|
|
|
+ .address .checkbox .col-md-3{
|
|
|
+ width: 20%;
|
|
|
+ }
|
|
|
+ #bill-info .form-control {
|
|
|
+ color: #000;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ #bill-info .format-error {
|
|
|
+ color: red;
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ }
|
|
|
+
|
|
|
+ #bill-info select {
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+ #bill-info .content-header{
|
|
|
+ font-size: 14px;
|
|
|
+ padding-bottom: 0;
|
|
|
+ color: rgb(80, 120, 203);
|
|
|
+ font-weight: bold;
|
|
|
+ line-height: 1.429;
|
|
|
+ padding-left: 40px;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ }
|
|
|
+ .select-adder{
|
|
|
+ background:url("static/img/user/images/xiala.png") right no-repeat ;
|
|
|
+ background-position-x: 150px;
|
|
|
+ }
|
|
|
+ .form-btn .btn {
|
|
|
+ background: #5078cb;
|
|
|
+ border-color: #3b88c3;
|
|
|
+ width: 60px;
|
|
|
+ height: 26px;
|
|
|
+ line-height: 13px;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 0;
|
|
|
+ text-align: center;
|
|
|
+ vertical-align: middle;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .form-btn .btn:first-child{
|
|
|
+ background: #c8c6c6;
|
|
|
+ border: 1px solid #c8c6c6;
|
|
|
+ }
|
|
|
+ .form-area {
|
|
|
+ background: #f5f8fe;
|
|
|
+ }
|
|
|
+ .form-area .row {
|
|
|
+ padding-top: 15px;
|
|
|
+ }
|
|
|
+ .form-area form {
|
|
|
+ padding-top: 15px;
|
|
|
+ }
|
|
|
+ .form-bottom {
|
|
|
+ background: #fff;
|
|
|
+ text-align: center;
|
|
|
+ vertical-align: middle;
|
|
|
+ padding-top: 20px;
|
|
|
+ padding-bottom: 3px;
|
|
|
+ }
|
|
|
+ .ticket_record_list dl dt span {
|
|
|
+ font-weight: normal;
|
|
|
+ }
|
|
|
</style>
|
|
|
<!--右侧主体部分-->
|
|
|
<div class="user_right fr u_c_invoice">
|
|
|
@@ -60,18 +335,25 @@
|
|
|
<div class="oder01">
|
|
|
<ul>
|
|
|
<li class="active"><a>开票信息</a></li>
|
|
|
+ <li class=""><a>未开票</a></li>
|
|
|
+ <li class=""><a>开票记录</a></li>
|
|
|
<!--<li><a>开票记录</a></li>-->
|
|
|
</ul>
|
|
|
</div>
|
|
|
- <!-- <div class="page">
|
|
|
- <ul>
|
|
|
- <li><a >上一页</a> </li>
|
|
|
- <li>第<input type="text" placeholder="3">页</li>
|
|
|
- <li><a >下一页</a> </li>
|
|
|
- </ul>
|
|
|
- </div>-->
|
|
|
+ <div style="background: #f5f5f5; height: 11px" ng-if="!changeBillStatusFlag"></div>
|
|
|
+ <!--发票操作导航-->
|
|
|
+ <div class="match-menu" ng-if="changeBillStatusFlag">
|
|
|
+ <span class="active">
|
|
|
+ <a ng-bind="isAdd?'新增发票信息':'修改发票信息'"></a>
|
|
|
+ <i class="fa fa-remove" ng-click="setChangeBillStatusFlag(false)"></i>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
<!--我的发票-->
|
|
|
- <div class="ticket_record_list">
|
|
|
+ <div class="ticket_record_list" ng-if="!changeBillStatusFlag">
|
|
|
+ <div class="ticket_record_title">
|
|
|
+ <span class="l_title">已设置的开票信息</span>
|
|
|
+ <span class="add_btn" ng-click="addBill()" ng-if="isSpecial || isNormal"><i class="fa fa-plus-circle"></i> 新增发票</span>
|
|
|
+ </div>
|
|
|
<!-- 开票资料-->
|
|
|
<div class="tab" style="display: inline-block;">
|
|
|
<dl class="ticket_data">
|
|
|
@@ -83,158 +365,119 @@
|
|
|
<span>收票人电话</span>
|
|
|
<span>编辑</span>
|
|
|
</dt>
|
|
|
- <p class="height16"> </p>
|
|
|
+ <!-- <p class="height16"> </p>-->
|
|
|
<dd ng-repeat="invoice in invoices">
|
|
|
<span class="wd01">
|
|
|
- <img ng-if="invoice.kind == 1206" src="static/img/user/images/ticket01.png"/>
|
|
|
- <img ng-if="invoice.kind == 1205" src="static/img/user/images/ticket02.png"/>
|
|
|
+ <img ng-if="invoice.kind == 1206" src="static/img/user/images/ticket01.jpg"/>
|
|
|
+ <img ng-if="invoice.kind == 1205" src="static/img/user/images/ticket02.jpg"/>
|
|
|
</span>
|
|
|
<span ng-cloak class="textmore">{{invoice.head}}</span>
|
|
|
<span class="wd01 textmore" ng-cloak>{{invoice.name}}</span>
|
|
|
<span class="textmore" ng-cloak>{{invoice.area}} {{invoice.detailAddress}}</span>
|
|
|
<span ng-cloak>{{invoice.telephone}}</span>
|
|
|
- <span><a class="look" ng-click="viewInvoice(invoice)">查看/</a><a ng-click="modifyInvoice(invoice)">修改/</a><a ng-click="deleteInvoice(invoice)">删除</a></span>
|
|
|
+ <span>
|
|
|
+ <!--<a class="look" ng-click="viewInvoice(invoice)">查看/</a>-->
|
|
|
+ <a ng-click="modifyInvoice(invoice)">修改/</a>
|
|
|
+ <a ng-click="deleteInvoice(invoice)">删除</a>
|
|
|
+ </span>
|
|
|
</dd>
|
|
|
<dd ng-if="invoices.length == 0" class="text-center" style="font-size: 14px;line-height: 60px;">
|
|
|
暂无发票信息,请补充发票信息
|
|
|
</dd>
|
|
|
</dl>
|
|
|
</div>
|
|
|
- <div id="add-invoice">
|
|
|
- <h2 class="add-invoice-title">新增开票信息</h2>
|
|
|
- <div class="row invoice-type">
|
|
|
- <label class="col-md-2" style="padding: 15px 0 15px 2.5em;"><b class="text-inverse">*</b>发票类型:</label>
|
|
|
- <div class="col-md-9">
|
|
|
- <label class="radio-inline"><input type="radio" ng-model="bill.kind" value="1206" ng-checked="bill.kind==1206">增值税普票(不可抵扣)</label>
|
|
|
- <label class="radio-inline"><input type="radio" ng-model="bill.kind" value="1205" ng-checked="bill.kind==1205">增值税专票(可抵扣)</label>
|
|
|
+ </div>
|
|
|
+ <!--新增发票 -->
|
|
|
+ <div id="bill-info" ng-if="changeBillStatusFlag">
|
|
|
+ <div class="row">
|
|
|
+ <h2 class="content-header" ng-bind="billType == 1205?'增值税专票':'增值税普票'"></h2>
|
|
|
+ </div>
|
|
|
+ <div class="form-area">
|
|
|
+ <div class="row" ng-if="isAdd">
|
|
|
+ <label class="col-md-2 normal-control-label"><b class="text-inverse">*</b>发票类型:</label>
|
|
|
+ <div class="radio col-md-10">
|
|
|
+ <label class="radio-inline" ng-click="setBillType(1206)">
|
|
|
+ <label class="padding-top-5"><input type="radio" ng-model="billType" value="1206" ng-disabled="!isNormal"></label>
|
|
|
+ <label ng-class="{'disable':!isNormal, '':isNormal}" class="padding-left-0">增值税普通发票(不可抵扣)</label>
|
|
|
+ </label>
|
|
|
+ <label class="radio-inline" ng-click="setBillType(1205)">
|
|
|
+ <label class="padding-top-5"><input type="radio" ng-model="billType" value="1205" ng-disabled="!isSpecial"></label>
|
|
|
+ <label ng-class="{'disable':!isSpecial, '':isSpecial}" class="padding-left-0">增值税专用发票(可抵扣) </label>
|
|
|
+ </label>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <form class="add-invoice-form form-horizontal" novalidate="novalidate" name="form" ng-if="bill.kind==1206">
|
|
|
+ <form class="form-horizontal" novalidate="novalidate" name="form">
|
|
|
<div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>发票抬头:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.head" name="billHead" required="required">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>发票抬头:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.head" name="billHead" required="required" placeholder="请输入发票抬头">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.head||form.billHead.$touched)&&form.billHead.$invalid">必填项</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.head||form.billHead.$touched)&&form.billHead.$invalid">请勿超过50个字</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票人:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.name" name="billName" ng-change="linkmanLen()" id="pbillname" required="required">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
- <span ng-show="form.billName.$dirty && linkError">请勿超过10个字</span>
|
|
|
- <span ng-show="(bill.name||form.billName.$touched)&&form.billName.$invalid">必填项</span>
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>单位地址:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.companyAddress" name="companyAddr" required="required" placeholder="请输入单位地址">
|
|
|
</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.companyAddress||form.companyAddr.$touched)&&form.companyAddr.$invalid">请勿超过50个字</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票人联系电话:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.telephone" name="billTel"
|
|
|
- ng-pattern="/^((\(\d{3}\))|(\d{3}\\-))?(13|15|17|18)\d{9}$/" ng-length="11" required="required">
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>单位电话:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" placeholder="区号和号码使用 '-' 隔开,或者不填区号" name="companyPhone" ng-model="bill.companyPhone" ng-pattern="/^[0-9][0-9\-]*[0-9]$/" required="required">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.telephone||form.billTel.$touched)&&form.billTel.$invalid">请输入正确的手机号码</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.companyPhone||form.companyPhone.$touched)&&form.companyPhone.$invalid">请勿超过20个字符</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label for="landlineNum" class="col-md-2"><b class="text-inverse">*</b>座机号码:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" ng-model="bill.landlineNumber" required class="form-control" id="landlineNum" name="landlineNumber" placeholder="请输入你的办公号码" ng-pattern="/^[0-9]{2,4}[\-\+]?[0-9]{6,8}$/">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
- <span ng-show="(bill.landlineNumber || form.landlineNumber.$touched) && form.landlineNumber.$invalid" class="format-error">请输入正确的座机号</span>
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>税务登记号:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.companyTaxNumber" name="companyTaxNum" required="true" ng-minlength="15" placeholder="请输入税务登记号">
|
|
|
</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.companyTaxNumber||form.companyTaxNum.$touched)&&(form.companyTaxNum.$error.required||form.companyTaxNum.$error.minlength)">请输入15-20个字符</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票地址:</label>
|
|
|
- <div class="mar-rt0 row checkbox">
|
|
|
- <div class="col-md-2">
|
|
|
- <select class="select-adder form-control"
|
|
|
- ng-model="bill.address.province" name="province"
|
|
|
- ng-options="key as key for (key,value) in division"
|
|
|
- ng-change="bill.address.city='';bill.address.district='';">
|
|
|
- <option value="">省</option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
- <div class="col-md-2">
|
|
|
- <select class="select-adder form-control" ng-model="bill.address.city" name="city"
|
|
|
- ng-options="key as key for (key,value) in division[bill.address.province]"
|
|
|
- ng-change="bill.address.district='';">
|
|
|
- <option value="">市</option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
- <div class="col-md-2">
|
|
|
- <select class="select-adder form-control" ng-model="bill.address.district" name="district"
|
|
|
- ng-options="value as value for value in division[bill.address.province][bill.address.city]" required="required">
|
|
|
- <option value="">区</option>
|
|
|
- </select>
|
|
|
- </div>
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>开户银行:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.bankName" name="bankName" required="required" placeholder="请输入开户银行">
|
|
|
</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.bankName||form.bankName.$touched)&&form.bankName.$invalid">请勿超过30个字</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票详细地址:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input id="paddress" type="text" class="form-control" ng-model="bill.detailAddress" ng-change="addressLen()" name="billDetail" required="required" >
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
- <span ng-show="form.billName.$dirty && addressError">请勿超过30个字</span>
|
|
|
- <span ng-show="(bill.detailAddress||form.billDetail.$touched)&&form.billDetail.$invalid">必填项</span>
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>开户银行账户:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.bankAccount" name="account" ng-pattern="/^[0-9]*$/" required ng-maxlength="30" placeholder="请输入开户银行账号">
|
|
|
</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.bankAccount||form.account.$touched)&&(form.account.$invalid)">请勿超过30个字</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"></label>
|
|
|
- <div class="col-md-5" style="line-height: 20px;">
|
|
|
- <label class="check-active checkbox-inline text-inverse" style="padding-left: 20px;">
|
|
|
- <input type="checkbox" checked="true" name="is_agree" ng-model="bill.is_agree" required="required" id="check-py"/>
|
|
|
- <label for="check-py"></label>
|
|
|
- <span>我已阅读并同意</span>
|
|
|
- </label>
|
|
|
- <a href="help/helpList/19" class="base-line" target="_blank">《发票须知》</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="col-md-offset-3">
|
|
|
- <input type="submit" value="保存发票信息" class="btn btn-warning" ng-disabled="form.$invalid||(!bill.is_agree)||linkError||addressError" ng-click="saveInvoice()">
|
|
|
- <input type="button" value="取消修改" class="btn btn-warning" ng-show="isRevice" ng-click="exit()">
|
|
|
- </div>
|
|
|
- </form>
|
|
|
- <form class="add-invoice-form form-horizontal" novalidate="novalidate" name="form" ng-if="bill.kind==1205">
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>发票抬头:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.head" name="billHead" required="required">
|
|
|
+ <div class="form-group" ng-show="billType == 1205">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>上传开户许可证:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input type="text" class="form-control" ng-model="bill.bankAccount" name="account" ng-pattern="/^[0-9]*$/" required ng-minlength="8" ng-maxlength="30">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.head||form.billHead.$touched)&&form.billHead.$invalid">必填项</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.bankAccount||form.account.$touched)&&(form.account.$invalid)">请勿超过3M</div>
|
|
|
</div>
|
|
|
<div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票人:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" id="zbillname" class="form-control" ng-model="bill.name" name="billName" ng-change="linkmanLen()" required="required">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>收票人:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input id="mzbillname" type="text" class="form-control" ng-model="bill.name" name="billName" required="required" ng-change="linkmanLen()" placeholder="请输入收票人">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
+ <div class="text-inverse error col-md-3">
|
|
|
<span ng-show="form.billName.$dirty && linkError">请勿超过10个字</span>
|
|
|
<span ng-show="(bill.name||form.billName.$touched)&&form.billName.$invalid">必填项</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票人联系电话:</label>
|
|
|
- <div class="col-md-5">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>联系电话:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
<input type="text" class="form-control" ng-model="bill.telephone" name="billTel"
|
|
|
- ng-pattern="/^((\(\d{3}\))|(\d{3}\\-))?(13|15|17|18)\d{9}$/" ng-length="11" required="required">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.telephone || form.billTel.$touched)&&form.billTel.$invalid">输入正确的联系方式</div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label for="landlineNumber" class="col-md-2"><b class="text-inverse">*</b>座机号码:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" ng-model="bill.landlineNumber" required class="form-control" id="landlineNumber" name="landlineNumber" placeholder="请输入你的办公号码" ng-pattern="/^[0-9]{2,4}[\-\+]?[0-9]{6,8}$/">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
- <span ng-show="(bill.landlineNumber || form.landlineNumber.$touched) && form.landlineNumber.$invalid" class="format-error">请输入正确的座机号</span>
|
|
|
+ ng-pattern="/^((\(\d{3}\))|(\d{3}\\-))?(13|15|17|18)\d{9}$/" ng-length="11" required="required" placeholder="请输入联系电话">
|
|
|
</div>
|
|
|
+ <div class="text-inverse error col-md-3" ng-show="(bill.telephone || form.billTel.$touched)&&form.billTel.$invalid">输入8-11位数字</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票地址:</label>
|
|
|
- <div class="mar-rt0 row checkbox">
|
|
|
- <div class="col-md-2">
|
|
|
+ <div class="form-group address">
|
|
|
+ <label class="col-md-2 control-label" style="position: relative;top: 20px;"><b class="text-inverse">*</b>所在地区:</label>
|
|
|
+ <div class="row checkbox">
|
|
|
+ <div class="col-md-3">
|
|
|
<select required="required" class="select-adder form-control"
|
|
|
ng-model="bill.address.province" name="province"
|
|
|
ng-options="key as key for (key,value) in division"
|
|
|
@@ -242,14 +485,14 @@
|
|
|
<option value="">省</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
- <div class="col-md-2">
|
|
|
+ <div class="col-md-3">
|
|
|
<select class="select-adder form-control" ng-model="bill.address.city" name="city"
|
|
|
ng-options="key as key for (key,value) in division[bill.address.province]"
|
|
|
ng-change="bill.address.district='';" required="required">
|
|
|
<option value="">市</option>
|
|
|
</select>
|
|
|
</div>
|
|
|
- <div class="col-md-2">
|
|
|
+ <div class="col-md-3">
|
|
|
<select class="select-adder form-control" ng-model="bill.address.district" name="district"
|
|
|
ng-options="value as value for value in division[bill.address.province][bill.address.city]" required="required">
|
|
|
<option value="">区</option>
|
|
|
@@ -258,140 +501,51 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>收票详细地址:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" id="zaddress" class="form-control" required="required" name="billDetail" ng-model="bill.detailAddress" ng-change="addressLen()">
|
|
|
+ <label class="col-md-2 control-label"><b class="text-inverse">*</b>详细地址:</label>
|
|
|
+ <div class="col-md-6">
|
|
|
+ <input id="mzaddress" type="text" class="form-control" required="required" name="billDetail" ng-model="bill.detailAddress" ng-change="addressLen()"
|
|
|
+ placeholder="建议您填写详细发件地址,如街道名,门牌号,楼层和房间号等信息">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2">
|
|
|
+ <div class="text-inverse error col-md-3">
|
|
|
<span ng-show="form.billName.$dirty && addressError">请勿超过30个字</span>
|
|
|
<span ng-show="(bill.detailAddress||form.billDetail.$touched)&&form.billDetail.$invalid">必填项</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>单位地址:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.companyAddress" name="companyAddr" required="required">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.companyAddress||form.companyAddr.$touched)&&form.companyAddr.$invalid">必填项</div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>单位电话:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-pattern="/^0\d{2,3}-[1-9]\d{6,7}$/" placeholder="区号和号码使用 '-' 隔开" name="companyPhone" ng-model="bill.companyPhone" required="required">
|
|
|
- </div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.companyPhone||form.companyPhone.$touched)&&form.companyPhone.$invalid">输入正确的电话</div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>税务登记号:</label>
|
|
|
+ <!--<div class="form-group" ng-show="bill.generalTaxpayerCertUrl">
|
|
|
+ <label for="generalTaxpayerCert" class="col-md-3 control-label">一般纳税人认定证书:</label>
|
|
|
<div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.companyTaxNumber" name="companyTaxNum" required="true" ng-minlength="15">
|
|
|
+ <input type="file" id="generalTaxpayerCert" name="generalTaxpayerCert" class="form-control" ng-file-select ng-model="generalTaxpayerCertFile" ng-multiple="false" accept="image/*,application/pdf,*.pdf">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.companyTaxNumber||form.companyTaxNum.$touched)&&(form.companyTaxNum.$error.required||form.companyTaxNum.$error.minlength)">至少15位数字</div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>开户银行:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.bankName" name="bankName" required="required">
|
|
|
+ </div>-->
|
|
|
+ <div class="form-bottom">
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="check-active checkbox-inline text-inverse">
|
|
|
+ <input checked="true" type="checkbox" ng-model="bill.is_agree" name="is_agree" required="required" id="check-mzy">
|
|
|
+ <label for="check-mzy"></label>
|
|
|
+ <span style="color: #333;">我已阅读并同意</span>
|
|
|
+ </label>
|
|
|
+ <a href="help#/nav/19" style="color: #5078cb;">《发票须知》</a>
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-2" ng-show="(bill.bankName||form.bankName.$touched)&&form.bankName.$invalid">必填项</div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"><b class="text-inverse">*</b>开户银行账户:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input type="text" class="form-control" ng-model="bill.bankAccount" name="account" ng-pattern="/^[0-9]*$/" required="required" minlength="8" maxlength="30">
|
|
|
+ <div class="form-btn">
|
|
|
+ <input type="button" value="取消" class="btn" ng-click="setChangeBillStatusFlag(false)">
|
|
|
+ <input type="submit" value="保存" class="btn" ng-disabled="form.$invalid||(!bill.is_agree)||linkError||addressError" ng-click="saveBill()">
|
|
|
</div>
|
|
|
- <div class="text-inverse error col-md-3" ng-show="(bill.bankAccount||form.account.$touched)&&(form.account.$invalid)">输入正确的银行卡账号</div>
|
|
|
- </div>
|
|
|
- <div class="form-group" ng-show="!bill.attachUrl || billInfoRevise">
|
|
|
- <label class="col-md-2" for="exampleInputFile">上传开票资料:</label>
|
|
|
- <div class="col-md-5">
|
|
|
- <input class="form-control" type="file" ng-file-select ng-model="bill.billInfo" name="billInfo" id="InputFile" ng-multiple="false" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,application/pdf,*.pdf">
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group" ng-show="bill.attachUrl&&!billInfoRevise">
|
|
|
- <label class="col-md-2" for="exampleInputFile">开票资料:</label>
|
|
|
- <div class="col-md-5 height-34">
|
|
|
- <a href="{{bill.attachUrl}}" target="_blank">点击查看</a> <a class="a-background" ng-click="billInfoRevise=true;">修改</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="form-group">
|
|
|
- <label class="col-md-2"></label>
|
|
|
- <div class="col-md-5">
|
|
|
- <label class="check-active check-inline text-inverse" style="padding-left: 0;">
|
|
|
- <input checked="true" type="checkbox" ng-model="bill.is_agree" name="is_agree" required="" id="check-zy">
|
|
|
- <label for="check-zy"></label>
|
|
|
- <span>我已阅读并同意</span>
|
|
|
- </label>
|
|
|
- <a href="help/helpList/19" target="_blank">《发票须知》</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="col-md-offset-3">
|
|
|
- <input type="submit" value="保存发票信息" class="btn btn-warning" ng-disabled="form.$invalid||(!bill.is_agree)||linkError||addressError" ng-click="saveInvoice()">
|
|
|
- <input type="button" value="取消修改" class="btn btn-warning" ng-show="isRevice" ng-click="exit()">
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
|
- <!-- 开票记录-->
|
|
|
- <div class="tab">
|
|
|
- <dl>
|
|
|
- <dt>
|
|
|
- <span>发票类型</span>
|
|
|
- <span>开票抬头</span>
|
|
|
- <span>开票金额</span>
|
|
|
- <span>产品订单号</span>
|
|
|
- <span>收票人</span>
|
|
|
- <span>状态</span>
|
|
|
- </dt>
|
|
|
- <p class="height16"> </p>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket01.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>开票中</em></span>
|
|
|
- </dd>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket02.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>运输中</em></span>
|
|
|
- </dd>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket01.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>开票中</em></span>
|
|
|
- </dd>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket02.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>运输中</em></span>
|
|
|
- </dd>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket01.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>开票中</em></span>
|
|
|
- </dd>
|
|
|
- <dd>
|
|
|
- <span><img src="static/img/user/images/ticket02.png"/> </span>
|
|
|
- <span>折扣卷</span>
|
|
|
- <span>¥8888.52</span>
|
|
|
- <span><em>20170116001</em></span>
|
|
|
- <span>王某某</span>
|
|
|
- <span><em>运输中</em></span>
|
|
|
- </dd>
|
|
|
- </dl>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <!-- 提示框 -->
|
|
|
+ <div class="com-del-box" ng-if="showDeleteBox">
|
|
|
+ <div class="title">
|
|
|
+ <a ng-click="setDeleteBox(false)"><i class="fa fa-close fa-lg"></i></a>
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <p><i class="fa fa-exclamation-circle"></i>是否要删除此发票?</p>
|
|
|
+ <div>
|
|
|
+ <a ng-click="setDeleteBox(false)">取消</a>
|
|
|
+ <a ng-click="doDeleteInvoice()">确认</a>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|