Browse Source

1、修改买卖家发票管理页面样式优化
2、新增帐户管理发票管理页面

shenjj 7 years ago
parent
commit
c058eae348

BIN
src/main/webapp/resources/img/user/images/invoice-nor.png


BIN
src/main/webapp/resources/img/user/images/invoice-spec.png


+ 12 - 6
src/main/webapp/resources/js/sso/app.js

@@ -52,12 +52,18 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			controller: 'rolePermissionCtrl',
 			controllerUrl: 'app/controllers/rolePermissionCtrl'
 		})).state('ssoAddress', angularAMD.route({
-            url: '/address',
-            templateUrl: 'static/view/sso/ssoAddress.html',
-            title: '收货地址',
-            controller: 'ssoAddressCtrl',
-            controllerUrl: 'app/controllers/ssoAddressCtrl'
-        }))
+        url: '/address',
+        templateUrl: 'static/view/sso/ssoAddress.html',
+        title: '收货地址',
+        controller: 'ssoAddressCtrl',
+        controllerUrl: 'app/controllers/ssoAddressCtrl'
+    })).state('ssoInvoice', angularAMD.route({
+      url: '/invoice',
+      templateUrl: 'static/view/sso/ssoInvoice.html',
+      title: '发票管理',
+      controller: 'ssoInvoiceCtrl',
+      controllerUrl: 'app/controllers/ssoInvoiceCtrl'
+    }))
 	}]);
 
 	// 状态码  -> 描述

+ 431 - 0
src/main/webapp/resources/js/sso/controllers/ssoInvoiceCtrl.js

@@ -0,0 +1,431 @@
+/**
+ * Created by yujia on 2017/3/17.
+ *
+ */
+define(['app/app'], function(app) {
+  'use strict';
+  app.register.controller('ssoInvoiceCtrl', ['$scope', '$rootScope', 'toaster', '$modal', '$q', 'Bill', '$upload', '$http', '$location', '$stateParams', '$state', function($scope, $rootScope, toaster, $modal, $q, Bill, $upload, $http, $location, $stateParams, $state) {
+    $rootScope.active = 'sso_invoice';
+    $scope.tab = 'buyer_invoice';
+    document.title = '开票信息-优软商城';
+    $scope.invoiceType = 1205;
+    $scope.isSpecial = true; //专票,等于true为不存在
+    $scope.isNormal = true; //普票,等于true为不存在
+    $scope.InitComing = true
+    // 获取发票信息方法	1205为增值税专用发票	1206为增值税普通发票	1207为不开发票
+    var getInvoiceInfo = function() {
+      Bill.getListPersonal(null, function(data) {
+        $scope.invoices = data;
+        if (data.length === 0 && $scope.InitComing) {
+          $scope.InitComing = false
+          $scope.addBill()
+        } else {
+          angular.forEach($scope.invoices, function (item) {
+            if (item.kind == '1205') {
+              $scope.isSpecial = false;
+            } else if (item.kind == '1206') {
+              $scope.isNormal = false;
+            }
+          })
+        }
+      }, function(response) {
+        toaster.pop('error', '获取发票信息失败 ' + response.data);
+      });
+    };
+    getInvoiceInfo();
+    // $scope.bill = {};
+    // 获取省市区地理信息
+    var getGeoInfo = function () {
+      $http.get('static/js/prod/data/city.json').success(function(data) {
+        $scope.division = data;
+        if($scope.bill.area){
+          $scope.bill.address = {};
+          //拼装下拉选择框
+          var arr = $scope.bill.area.split(',');
+          $scope.bill.address.province = arr[0];
+          $scope.bill.address.city = arr[1];
+          $scope.bill.address.district = arr[2];
+        }
+      }).error(function(e) {
+        toaster.pop('error', '系统错误 ' + '加载城市信息失败, 请重新加载界面!');
+      });
+    };
+    getGeoInfo();
+
+    $scope.bill = {};
+    $scope.bill.address = {};
+
+    //保存发票信息
+    $scope.saveBill = function(flag) {
+      var dataValidFlag = $scope.checkValidFrom();
+      if (!flag && dataValidFlag && $scope.bill.is_agree) {
+        $scope.bill.kind = $scope.billType
+        if (!$scope.isAdd) { //修改
+          doSave('修改发票信息');
+        } else { // 新增
+          doSave('添加发票');
+        }
+      } else if (flag || !dataValidFlag) {
+        toaster.pop('error', '请填写正确的发票信息');
+      } else {
+        toaster.pop('error', '请勾选并阅读《发票须知》');
+      }
+    };
+    var doSave = function (message) {
+      $scope.bill.area = $scope.bill.address.province + "," + $scope.bill.address.city + "," + $scope.bill.address.district;
+      var file = null;
+      if($scope.bill.billInfo&&$scope.bill.billInfo[0]) {
+        file = $scope.bill.billInfo[0];
+      }
+      $upload.upload({
+        url: 'trade/bill/save',
+        file: file,
+        method: 'POST',
+        data: {
+          bill: $scope.bill
+        }
+      }).success(function(data){
+        toaster.pop('success', message + '成功');
+        $scope.changeBillStatusFlag = false
+        $state.reload();
+      }).error(function(data){
+        toaster.pop('error', message + '失败 ' + data);
+      });
+    }
+
+    $scope.isDoUpload = false;
+    //上传发票许可证
+    $scope.onUploadPermission = function () {
+      $scope.isDoUpload = true;
+      // console.log($scope.bill.billInfo);
+      if ($scope.bill.billInfo[0].size < 3*1024*1024) {
+        $scope.bill.attachUrl = $scope.bill.billInfo[0].name;
+      } else {
+        $scope.bill.attachUrl = '';
+      }
+    }
+
+    //判断中文字符串的长度
+    var getRealStringLen = function (str) {
+      var realLength = 0, len = str.length, charCode = -1;
+      for (var i = 0; i < len; i++) {
+        charCode = str.charCodeAt(i);
+        if (charCode >= 0 && charCode <= 128) realLength += 1;
+        else realLength += 2;
+      }
+      return realLength;
+    }
+
+    $scope.validForm = {
+      validBillHead: true,
+      validBillName: true,
+      validBankName: true,
+      validDetailAddress: true,
+      validCompanyAddress: true
+    }
+
+    $scope.initFormFlag = function () {
+      $scope.initFlag = {
+        initBillHead: true,
+        initBillName: true,
+        initBankName: true,
+        initDetailAddress: true,
+        initCompanyAddress: true,
+        initCompanyPhone: true,
+        initCompanyTaxNum: true,
+        initBankAccount: true,
+        initTelephone: true
+      }
+    }
+
+    $scope.initFormFlag();
+
+    $scope.checkValidFrom = function () {
+      var flag = true
+      angular.forEach($scope.validForm, function (item) {
+        if (!item) {
+          flag = false;
+        }
+      })
+      return flag;
+    }
+    $scope.checkValidFrom();
+    //发票抬头check
+    $scope.checkBillHead = function () {
+      var len = getRealStringLen($scope.bill.head);
+      if (len > 100) {
+        $scope.validForm.validBillHead = false;
+      } else {
+        $scope.validForm.validBillHead = true;
+      }
+    }
+
+    //收票人check
+    $scope.checkBillName = function () {
+      var len = getRealStringLen($scope.bill.name);
+      if (len > 20) {
+        $scope.validForm.validBillName = false;
+      } else {
+        $scope.validForm.validBillName = true;
+      }
+    }
+
+    //开户银行Check
+    $scope.checkBankName = function () {
+      var len = getRealStringLen($scope.bill.bankName);
+      if (len > 60) {
+        $scope.validForm.validBankName = false;
+      } else {
+        $scope.validForm.validBankName = true;
+      }
+    }
+
+    //详细地址Check
+    $scope.checkDetailAddress = function () {
+      var len = getRealStringLen($scope.bill.detailAddress);
+      if (len > 60) {
+        $scope.validForm.validDetailAddress = false;
+      } else {
+        $scope.validForm.validDetailAddress = true;
+      }
+    }
+
+    //单位地址check
+    $scope.checkCompanyAddress = function () {
+      var len = getRealStringLen($scope.bill.companyAddress);
+      if (len > 100) {
+        $scope.validForm.validCompanyAddress = false;
+      } else {
+        $scope.validForm.validCompanyAddress = true;
+      }
+    }
+
+    //设置新增栏目切换发票类型
+    $scope.billType = 1206
+    //设置发票类型
+    $scope.setType = function() {
+      angular.forEach($scope.invoices, function (item) {
+        if(item.kind == '1205'){
+          $scope.isSpecial = false;
+        } else if (item.kind == '1206') {
+          $scope.isNormal = false;
+        }
+      })
+      if (!$scope.isNormal) {
+        $scope.billType = 1205
+      }
+      if (!$scope.isSpecial) {
+        $scope.billType = 1206
+      }
+    };
+    //设置修改区域显示标志
+    $scope.changeBillStatusFlag = false;
+    $scope.showDeleteBox = false
+    $scope.setChangeBillStatusFlag = function (flag) {
+      $scope.changeBillStatusFlag = flag;
+      if (!flag) {
+        $scope.bill = {};
+      }
+    }
+    $scope.exitEdit = function () {
+      $scope.changeBillStatusFlag = false;
+      $scope.isAdd = false;
+      $scope.bill = {};
+      // $state.reload();
+    }
+    $scope.addBill = function () {
+      $scope.setType();
+      $scope.bill = {};
+      $scope.changeBillStatusFlag = true;
+      $scope.isAdd = true;
+    }
+    $scope.setBillType = function (type) {
+      $scope.bill = {};
+      $scope.initFormFlag();
+      $scope.billType = type;
+      this.form.$setPristine();
+      this.form.$setUntouched();
+    }
+    function _deepCopy(target) {
+      if (typeof target !== 'object') return
+      // 判断目标类型,来创建返回值
+      var newObj = target instanceof Array ? [] : {}
+      for (var item in target) {
+        // 只复制元素自身的属性,不复制原型链上的
+        if (target.hasOwnProperty(item)) {
+          newObj[item] = typeof target[item] === 'object' ? _deepCopy(target[item]) : target[item]
+        }
+      }
+      return newObj
+    }
+    //修改发票
+    $scope.modifyInvoice = function (invoice) {
+      invoice = _deepCopy(invoice)
+      $scope.changeBillStatusFlag = true;
+      $scope.isAdd = false;
+      $scope.billType = invoice.kind
+      $scope.bill = invoice;
+      $scope.bill.is_agree = true;
+      $scope.bill.address = {};
+      var area = invoice.area.split(',');
+      angular.forEach(area, function (item, index) {
+        switch(index) {
+          case 0:
+            $scope.bill.address.province = item;
+            break;
+          case 1:
+            $scope.bill.address.city = item;
+            break;
+          case 2:
+            $scope.bill.address.district = item;
+            break;
+        }
+      });
+    };
+    //删除按钮点击
+    $scope.deleteInvoice = function (invoice) {
+      $scope.tempDeleteId = invoice.id //删除发票临时存放
+      $scope.setDeleteBox(true)
+    }
+    //设置提示框状态
+    $scope.setDeleteBox = function (flag) {
+      $scope.showDeleteBox = flag
+    }
+    //确定删除
+    $scope.doDeleteInvoice = function () {
+      Bill.deleteById({id: $scope.tempDeleteId}, null, function (data) {
+        toaster.pop('success', '删除发票成功')
+        $state.reload();
+      }, function (error) {
+        toaster.pop('error', error.data || '删除发票失败')
+      })
+    }
+  }]);
+
+  // 发票详情
+  app.register.controller('BillInfoCtrl', ['$scope', '$modalInstance', 'invoice', function($scope, $modalInstance, invoice) {
+    $scope.bill = invoice;
+    $scope.dismiss = function() {
+      $modalInstance.dismiss();
+    }
+  }]);
+
+  // 发票编辑模态框
+  // app.register.controller('BillInputCtrl', ['$scope', '$http', 'BaseService', 'Bill', 'toaster', '$stateParams', '$state', 'invoiceInfo', '$upload', '$modalInstance', '$q', function($scope, $http, BaseService, Bill, toaster, $stateParams, $state, invoiceInfo, $upload, $modalInstance, $q) {
+  //     //BaseService.scrollBackToTop();
+  //
+  //     $scope.bill = {};
+  //     $scope.bill.address = {};
+  //     $scope.bill.is_agree = true;
+  //     $scope.linkError = false;
+  //     $scope.addressError = false;
+  //     $scope.bill.kind = Number(invoiceInfo.split("-")[0]);
+  //     if(invoiceInfo.split("-").length == 2) {
+  //         $scope.invoiceId = Number(invoiceInfo.split("-")[1]);
+  //     }
+  //     $scope.setType = function() {
+  //         switch($scope.bill.kind) {
+  //             case 1206:
+  //                 $scope.isNormal = true;
+  //                 $scope.isSpecial = false; break;
+  //             case 1205:
+  //                 $scope.isNormal = false;
+  //                 $scope.isSpecial = true; break;
+  //             default:
+  //                 $scope.isNormal = true;
+  //                 $scope.isSpecial = true;
+  //         }
+  //     };
+  //
+  //     //设置发票类型
+  //     $scope.setType();
+  //
+  //     //获取发票信息
+  //     $scope.getData = function() {
+  //         if($scope.invoiceId) {
+  //             return Bill.getBillById({id: $scope.invoiceId}, function(data) {
+  //                 $scope.bill = data;
+  //                 $scope.bill.is_agree = true;
+  //                 $scope.setType();
+  //             }, function(response) {
+  //                 toaster.pop('error', '获取指定的发票信息失败');
+  //             });
+  //         }
+  //     };
+  //
+  //     $scope.linkmanLen = function() {
+  //         var size = $scope.bill.name.length;
+  //         // if (num == 1){
+  //         //     size = document.getElementById("mpbillname").value.length;
+  //         // }else if (num == 2){
+  //         //     size = document.getElementById("mzbillname").value.length;
+  //         // }
+  //         if (size > 10) {
+  //             $scope.linkError = true;
+  //             return;
+  //         }
+  //         $scope.linkError = false;
+  //     };
+  //
+  //     $scope.addressLen = function() {
+  //         var size = $scope.bill.detailAddress.length;
+  //         // if (num == 1){
+  //         //     size = document.getElementById("mpaddress").value.length;
+  //         // }else if (num == 2){
+  //         //     size = document.getElementById("mzaddress").value.length;
+  //         // }
+  //         if (size > 30) {
+  //             $scope.addressError = true;
+  //             return;
+  //         }
+  //         $scope.addressError = false;
+  //     };
+  //
+  //     //等到获取到发票信息,
+  //     $q.all([$scope.getData().$promise]).then(function () {
+  //         $http.get('static/js/prod/data/city.json').success(function(data) {
+  //             $scope.division = data;
+  //             if($scope.bill.area){
+  //                 $scope.bill.address = {};
+  //                 //拼装下拉选择框
+  //                 var arr = $scope.bill.area.split(',');
+  //                 $scope.bill.address.province = arr[0];
+  //                 $scope.bill.address.city = arr[1];
+  //                 $scope.bill.address.district = arr[2];
+  //             }
+  //         }).error(function(e) {
+  //             toaster.pop('error', '系统错误 ' + '加载城市信息失败');
+  //         });
+  //     }, function () {
+  //         //ERROR
+  //     });
+  //
+  //     //保存发票信息
+  //     $scope.saveBill = function() {
+  //         $scope.bill.area = $scope.bill.address.province + "," + $scope.bill.address.city + "," + $scope.bill.address.district;
+  //         var file = null;
+  //         if($scope.bill.billInfo&&$scope.bill.billInfo[0]) {
+  //             file = $scope.bill.billInfo[0];
+  //         }
+  //         $upload.upload({
+  //             url: 'trade/bill/save',
+  //             file: file,
+  //             method: 'POST',
+  //             data: {
+  //                 bill: $scope.bill
+  //             }
+  //         }).success(function(data){
+  //             toaster.pop('success', '保存发票信息成功');
+  //             $modalInstance.close(data);
+  //         }).error(function(data){
+  //             toaster.pop('error', '保存发票信息失败');
+  //         });
+  //     };
+  //
+  //     //取消发票信息操作
+  //     $scope.exit = function() {
+  //         $modalInstance.dismiss();
+  //     }
+  //
+  // }]);
+});

+ 1 - 1
src/main/webapp/resources/js/usercenter/app.js

@@ -72,7 +72,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			controller: 'NoInvoiceCtrl',
 			controllerUrl: 'app/controllers/forstore/buyer_no_invoice_ctrl'
 		})).state('buyer_invoice-record', angularAMD.route({
-			url: '/invoiceRecord',
+			url: '/invoiceRecord/:status',
 			title: '开票记录',
 			templateUrl: 'static/view/usercenter/forstore/buyer_invoice_record.html',
 			controller: 'buyerInvoiceRecordCtrl',

+ 1 - 1
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_invoice_ctrl.js

@@ -5,7 +5,7 @@
 define(['app/app'], function(app) {
     'use strict';
     app.register.controller('invoiceCtrl', ['$scope', '$rootScope', 'toaster', '$modal', '$q', 'Bill', '$upload', '$http', '$location', '$stateParams', '$state', function($scope, $rootScope, toaster, $modal, $q, Bill, $upload, $http, $location, $stateParams, $state) {
-        $rootScope.active = 'buyer_invoice';
+        // $rootScope.active = 'buyer_invoice';
         $scope.tab = 'buyer_invoice';
         document.title = '开票信息-优软商城';
         $scope.invoiceType = 1205;

+ 10 - 3
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_invoice_record_ctrl.js

@@ -1,11 +1,14 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('buyerInvoiceRecordCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams','$filter', function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams, $filter) {
-        $scope.tab = 'buyer_invoice-record';
+    app.register.controller('buyerInvoiceRecordCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams','$filter', '$stateParams', function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams, $filter, $stateParams) {
+        $scope.tab = $stateParams.status === '101' ? 'buyer_invoice' : 'buyer_invoice-record';
         // 开票申请
+       $rootScope.active = 'buyer_invoice';
         $scope.keyword = '';
         $scope.invoiceType = '';
         document.title = '开票记录-优软商城';
+        console.log($stateParams.status)
+        $scope.status = $stateParams.status
         var initDataRule = function () {
             $scope.param = {
                 page: 1,
@@ -15,7 +18,7 @@ define([ 'app/app' ], function(app) {
                 },
                 keyword: '',
                 invoiceType: '',
-                status: '',
+                status: $stateParams.status,
                 role: 'BUYER'
             };
         };
@@ -55,6 +58,10 @@ define([ 'app/app' ], function(app) {
                         params.total(page.totalElements);
                         $defer.resolve(page.content);
                         //划分数据
+                        for (var i = 0; i < page.content.length; i++) {
+                          page.content[i].billInfo = angular.fromJson(page.content[i].billInfo);
+                          page.content[i].orderids = page.content[i].orderids.split(',')
+                        }
                         $scope.billData = page.content;
                     }, function (response) {
                         toaster.pop('error', '获取开票记录失败 ', response.data);

+ 16 - 3
src/main/webapp/resources/js/usercenter/controllers/forstore/buyer_no_invoice_ctrl.js

@@ -1,7 +1,8 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('NoInvoiceCtrl', ['$scope','$rootScope','$modal', 'Order', 'toaster','ngTableParams','BaseService','Bill','$filter', function ($scope, $rootScope, $modal, Order, toaster, ngTableParams, BaseService, Bill, $filter) {
+    app.register.controller('NoInvoiceCtrl', ['$scope','$rootScope','$modal', 'Order', 'toaster','ngTableParams','BaseService','Bill','$filter','$window', '$document', function ($scope, $rootScope, $modal, Order, toaster, ngTableParams, BaseService, Bill, $filter, $window, $document) {
         $scope.tab = 'buyer_no_invoice';
+      $rootScope.active = 'buyer_invoice';
         document.title = '未开票订单-优软商城';
         // 开票申请
         $scope.applyInvoice = function () {
@@ -124,8 +125,20 @@ define([ 'app/app' ], function(app) {
             $scope.isAllCheck = temAllCheck;
         }
 
-        // 加密订单的ID过滤器
-        var enIdFilter = $filter('EncryptionFilter');
+      // 加密订单的ID过滤器
+      var enIdFilter = $filter('EncryptionFilter');
+      // 内层DIV的滚动加载
+      var window = angular.element($window);
+      var docu = angular.element($document);
+      window.on('scroll', function () {
+        var scrollTop = docu.scrollTop();
+        if (scrollTop + window.height() > docu.height() - 330) {
+          angular.element('#applyBtn').slideUp(300)
+        }  else {
+          angular.element('#applyBtn').slideDown(300)
+        }
+      });
+
 
     }]);
     app.register.controller('NoInvoiceSubmitCtrl', ['$scope','$rootScope','$modal', 'Order', 'toaster', 'submitInvoice', '$modalInstance','invoiceData','BillSubmit','$state', function ($scope, $rootScope, $modal, Order, toaster, submitInvoice, $modalInstance, invoiceData, BillSubmit, $state) {

+ 20 - 4
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_invoice_ctrl.js

@@ -1,6 +1,6 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('vendorInvoiceCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams','$state','$filter', function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams, $state, $filter) {
+    app.register.controller('vendorInvoiceCtrl', ['$scope','$rootScope','$modal','BillSubmit','BaseService', 'toaster','ngTableParams','$state','$filter','$window', '$document',  function ($scope, $rootScope, $modal, BillSubmit, BaseService, toaster, ngTableParams, $state, $filter, $window, $document) {
         $rootScope.active = 'vendor_invoice';
         // 切换tab
         document.title = '卖家发票管理-优软商城';
@@ -63,16 +63,19 @@ define([ 'app/app' ], function(app) {
                         $scope.$$kdnData.end = Number(page.size) * (Number(page.number) - 1) + Number(page.numberOfElements);
                         params.total(page.totalElements);
                         $defer.resolve(page.content);
-                        //划分数据
-                        $scope.billData = page.content;
+
                         //初始化选中状态和地址信息
                         $scope.isAllCheck = false;
-                        angular.forEach($scope.billData, function (item) {
+                        angular.forEach(page.content, function (item) {
                             var temAddr = item.invoiceAddress.split(',')
                             item.detailAddr = temAddr[3]
                             item.area = temAddr[0]+'  '+temAddr[1]+'  '+temAddr[2]
                             item.checked = false
+                            item.billInfo = angular.fromJson(item.billInfo);
+                            item.orderids = item.orderids.split(',')
                         })
+                        //划分数据
+                        $scope.billData = page.content;
                     }, function (response) {
                         toaster.pop('error', '获取开票记录失败 ', response.data);
                     });
@@ -195,5 +198,18 @@ define([ 'app/app' ], function(app) {
             }, function(){
             });
         }
+
+      // 内层DIV的滚动加载
+      var window = angular.element($window);
+      var docu = angular.element($document);
+      window.on('scroll', function () {
+        var scrollTop = docu.scrollTop();
+        if (scrollTop + window.height() > docu.height() - 330) {
+          angular.element('#applyBtn').slideUp(300)
+        }  else {
+          angular.element('#applyBtn').slideDown(300)
+        }
+      });
+
     }]);
 });

+ 1 - 0
src/main/webapp/resources/view/sso/left_nav.html

@@ -48,6 +48,7 @@
 		<li ng-if="personage" ng-class="{'active' : active == 'sso_management'}"><span ui-sref="ssoManagement">员工管理</span></li>
 		<li ng-if="personage" ng-class="{'active' : active == 'sso_permission'}"><span ui-sref="ssoPermission">角色权限</span></li>
 		<li ng-class="{'active' : active == 'sso_address'}"><span ui-sref="ssoAddress">收货地址</span></li>
+		<li ng-class="{'active' : active == 'sso_invoice'}"><span ui-sref="ssoInvoice">发票管理</span></li>
 		<!--<li ng-class="{'active' : active == 'vendor_logistics'}">-->
 			<!--<span  ui-sref="vendor_logistics" ng-hide="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->
 			<!--<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->

+ 740 - 0
src/main/webapp/resources/view/sso/ssoInvoice.html

@@ -0,0 +1,740 @@
+<style>
+  .u_c_invoice {
+    background: #fff;
+  }
+  .u_c_invoice select {
+    opacity: 1
+  }
+
+  .u_c_invoice .invoice-list-title {
+    /*margin-bottom: 16px;*/
+  }
+  .u_c_invoice .ticket_record_list {
+    background: #fff;
+    min-height: 323px;
+  }
+  .u_c_invoice #add-invoice {
+    width: 100%;
+    background: #fff;
+    margin-top: 16px;
+    padding-bottom: 20px;
+  }
+  .u_c_invoice #add-invoice label{
+    font-size: 14px;
+  }
+  .u_c_invoice .add-invoice-title {
+    width: 98%;
+    height: 45px;
+    line-height: 45px;
+    display: inline-block;
+    border-bottom: #e8e8e8 1px solid;
+    font-size: 14px;
+    margin-left: 15px;
+    font-weight: bold;
+  }
+  .u_c_invoice .invoice-type > label {
+    font-weight: normal;
+    padding: 15px 0 15px 3em;
+  }
+  .u_c_invoice .invoice-type > div {
+    padding: 15px 13px;
+  }
+  .u_c_invoice #add-invoice > div > div > label > input[type=radio] {
+    margin-top: auto;
+  }
+  .u_c_invoice .add-invoice-form .form-group label {
+    padding-left: 2.5em;
+    font-weight: normal;
+  }
+  .select-adder{
+    background:url("static/img/user/images/xiala.png") right no-repeat ;
+    background-position-x: 140px;
+  }
+  .u_c_invoice #add-invoice .form-group{
+    line-height: 34px;
+  }
+  .ticket_record .ticket_record_list .ticket_record_title {
+    padding: 8px 18px;
+  }
+  .ticket_record .ticket_record_list .ticket_record_title .l_title {
+    font-size: 14px;
+  }
+  .ticket_record .ticket_record_list .ticket_record_title .add_btn{
+    width: auto;
+    height: 40px;
+    text-align: center;
+    float: right;
+    font-size: 12px;
+    margin-right: 32px;
+  }
+  .ticket_record .ticket_record_list .ticket_record_title .add_btn i{
+    background: white;
+    color: #32b500;
+    margin-right: 5px;
+    font-size: 14px;
+  }
+  .ticket_record .ticket_record_list .ticket_record_title .add_btn:hover{
+    cursor: pointer;
+  }
+  .ticket_record_list dl dt span {
+    font-weight: bold;
+    color: #fff;
+    background: #89aefa;
+  }
+  .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.active {
+    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;
+    font-weight: normal;
+  }
+  #bill-info span.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;
+    margin-bottom: 0;
+    height: 27px;
+    line-height: 27px;
+    padding-top: 6px;
+    padding-left: 0;
+  }
+
+  .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;
+    margin: 0 15px;
+  }
+  .form-area .row {
+    padding-top: 15px;
+  }
+  .form-area .address .row {
+    padding-top: 0px;
+  }
+  .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;
+  }
+  /*radio*/
+  #bill-info .radioLabel {
+    line-height: 20px;
+    cursor: pointer;
+    color: #666;
+  }
+  #bill-info .radio-inline {
+    padding-left: 0;
+    margin: 0 26px;
+  }
+  #bill-info .radioLabel label{
+    width: 12px;
+    height: 12px;
+    background: url(static/img/icon/check-rule.png);
+    background-position: 0 0px;
+    vertical-align: middle;
+    margin-bottom: 0 !important;
+    margin-right: 0px !important;
+    padding: 0;
+    min-height: 12px;
+    left: -7px;
+  }
+  #bill-info .radioLabel input[type="radio"]:checked + label {
+    background-position: -15px -12px;
+  }
+  #bill-info .radioLabel input[type="radio"]:checked + label{
+    color: #5078cb;
+  }
+  #bill-info .radioLabel input[type="radio"]{
+    display: none;
+  }
+  #bill-info .form-area .input-file-default {
+    width: 75px;
+  }
+  .ticket_record_list dl dd:hover {
+    background: #f1f5ff;
+  }
+  #bill-info .select-file-box input {
+    display: none;
+  }
+  #bill-info .select-file-box span {
+    width: 74px;
+    display: block;
+    text-align: center;
+    height: 22px;
+    line-height: 22px;
+    background: #ff8522;
+    font-size: 12px;
+    color: #fff;
+    margin-top: 5px;
+    position: relative;
+    left: -22px;
+    border-radius: 2px;
+  }
+  .cursor-not-allowed {
+    cursor: not-allowed!important;
+  }
+  .ticket_record_list .ticket_data dd {
+    border-left: #dae5fd 1px solid;
+    border-bottom: #dae5fd 1px solid!important;
+    border-right: #dae5fd 1px solid;
+  }
+  #bill-info .form-input-line {
+    height: 34px;
+    width: 331px;
+    display: inline-block;
+    margin: 0 15px;
+    float: left;
+  }
+  #bill-info .form-input-line input[type='text'],#bill-info .form-input-line select {
+    border-radius: 2px;
+    border: 1px solid #eef4ff;
+  }
+  #bill-info .file-line {
+    width: 247px;
+  }
+  #bill-info .address .form-input-line {
+    margin: 0 10px 0 0;
+  }
+  #bill-info .address .form-input-line:first-child {
+    margin-left: 15px;
+  }
+  #bill-info .control-label{
+    position: relative;
+    top: 7px;
+  }
+  #bill-info .normal-control-label {
+    position: relative;
+    top: 5px;
+  }
+  .bg-fff8ee {
+    background: #fff8ee;
+  }
+  .bg-fff {
+    -webkit-box-shadow: 0 0 0px 1000px white inset!important;
+  }
+  input:-webkit-autofill,
+  input:-webkit-autofill:hover,
+  input:-webkit-autofill:focus,
+  input:-webkit-autofill:active {
+    -webkit-transition-delay: 99999s;
+    -webkit-transition: color 99999s ease-out, background-color 99999s ease-out;
+    /* -webkit-box-shadow: 0 0 0px 1000px white inset;*/
+  }
+  .ticket_record .empty{
+    overflow: hidden;
+    margin: 0!important;
+    display:inline-flex;
+    align-items: center;
+    width: 100%;
+    justify-content: center;
+    height: 200px;
+  }
+  .ticket_record .empty-info{
+    line-height: 28px;
+    width: 143px;
+    text-align: left;
+    margin-left:10px;
+  }
+  .ticket_record .empty-info .grey{
+    color: #999;
+    font-size: 14px;
+  }
+  .ticket_record .empty .empty-info>a{
+    font-size: 14px;
+    color: #5078cb;
+  }
+  .ticket_record .empty .empty-info i{
+    margin-right:5px;
+  }
+  .oder01 ul li{
+    margin-left: 0px;
+    position: relative;
+  }
+  .oder01 ul li.active a{
+    border-bottom: #fff;
+    background: #5078cb;
+    color: #fff;
+  }
+  .oder01 ul li::after{
+    background: url('static/img/vendor/images/downicon.png');
+    width: 11px;
+    height: 6px;
+    position: absolute;
+    bottom: 0px;
+    left: 50%;
+    content: ' ';
+    margin-left: -5px;
+    display: none;
+  }
+  .oder01 ul li.active:after{
+    display: block
+  }
+  .count_basic{
+    background: #ecf2fd;
+    width: 100%;
+    margin: 0 auto;
+    height: 40px;
+    line-height: 40px;
+    border-bottom: #e8e8e8 1px solid;
+  }
+</style>
+<!--右侧主体部分-->
+<div class="user_right fr u_c_invoice">
+  <!--开票记录-->
+  <div class="ticket_record oder">
+    <div class="count_basic">
+      <p class="basic_title"><span>发票信息</span>
+        <!--<span class="fr"><a href="#">修改</a><a href="#">提交</a><a href="#">删除</a></span>-->
+      </p>
+    <!--<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="exitEdit()"></i>
+                </span>
+    </div>
+    <!--我的发票-->
+    <div class="ticket_record_list" ng-if="!changeBillStatusFlag" style="margin-top:0 !important;">
+      <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">
+          <dt class="invoice-list-title">
+            <span class="wd01">发票类型</span>
+            <span>开票抬头</span>
+            <span class="wd01">收票人</span>
+            <span>收票地址</span>
+            <span>收票人电话</span>
+            <span>编辑</span>
+          </dt>
+          <!--  <p class="height16">&nbsp;</p>-->
+          <dd ng-repeat="invoice in invoices">
+                        <span class="wd01">
+                            <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" title="{{invoice.head}}">{{invoice.head}}</span>
+            <span class="wd01 textmore" ng-cloak title="{{invoice.name}}">{{invoice.name}}</span>
+            <span class="textmore" ng-cloak title="{{invoice.area+','+invoice.detailAddress}}">{{invoice.area}} {{invoice.detailAddress}}</span>
+            <span ng-cloak title="{{invoice.telephone}}">{{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>
+          </dd>
+          <!--<dd ng-if="invoices.length == 0 || !invoices" class="text-center invoice-box" style="font-size: 12px;line-height: 200px;height: 200px; border: none!important;">-->
+          <!--<img src="static/img/all/empty-cart.png">-->
+          <!--<span style="width: auto;float: right;line-height: 200px;color: #999;position: relative;right: 390px;font-size: 12px">暂无开票-->
+          <!--<a href="javascript:history.go(-1)" style="margin-left:20px;font-size: 14px;color:#5078cb"><i class="fa fa-mail-reply"></i>&nbsp;返回上一级</a>-->
+          <!--</span>-->
+
+          <!--</dd>-->
+        </dl>
+        <div class="empty" ng-if="invoices.length == 0 || !invoices">
+          <p class="empty-img">
+            <img src="static/img/all/empty-cart.png">
+          </p>
+          <div class="empty-info">
+            <p class="grey"> 暂无发票信息 </p>
+            <!--<a href="user#/home"><i class="fa fa-mail-reply fa-xs"></i>返回上一页</a>-->
+          </div>
+        </div>
+      </div>
+    </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">
+                  <label class="padding-top-5"><input type="radio" ng-click="setBillType(1206)" 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">
+                  <label class="padding-top-5"><input type="radio" ng-click="setBillType(1205)" ng-model="billType" value="1205" ng-disabled="!isSpecial"></label>
+                  <label ng-class="{'disable':!isSpecial, '':isSpecial}" class="padding-left-0">增值税专用发票(可抵扣) </label>
+              </label>-->
+            <label for="1206" class="radio-inline radioLabel" ng-class="{'cursor-not-allowed':!isNormal}">
+              <input type="radio" name="bill" value="1206" ng-disabled="!isNormal" ng-click="setBillType(1206)" ng-model="billType" id="1206">
+              <label ng-class="{'cursor-not-allowed':!isNormal}" for="1206" class="txtContact"></label>
+              <span ng-class="{'disable':!isNormal, '':isNormal}">增值税普票(不可抵扣)</span>
+            </label>
+            <label for="1205" class="radio-inline radioLabel" ng-class="{'cursor-not-allowed':!isSpecial}">
+              <input type="radio" name="bill" value="1205" ng-disabled="!isSpecial" ng-click="setBillType(1205)" ng-model="billType" id="1205">
+              <label ng-class="{'cursor-not-allowed':!isSpecial}" for="1205" class="txtContact"></label>
+              <span ng-class="{'disable':!isSpecial, '':isSpecial}">增值税专票(可抵扣)</span>
+            </label>
+          </div>
+        </div>
+        <form class="form-horizontal" novalidate="novalidate" name="form">
+          <div class="form-group">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>发票抬头:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee': !initFlag.initBillHead&&(form.billHead.$invalid || !validForm.validBillHead)}" ng-model="bill.head" ng-focus="form.billHead.$touched = false;" ng-blur="form.billHead.$touched = true;initFlag.initBillHead = false;checkBillHead()" name="billHead" required="required" placeholder="请输入发票抬头">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.billHead.$touched&&(form.billHead.$invalid || !validForm.validBillHead)" ng-bind="form.billHead.$error.required?'请填写发票抬头':'请勿超过50个字'"></div>
+          </div>
+          <div class="form-group" ng-if="billType == 1205">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>单位地址:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee': !initFlag.initCompanyAddress&&(form.companyAddr.$invalid || !validForm.validCompanyAddress)}" ng-model="bill.companyAddress" ng-focus="form.companyAddr.$touched = false;" ng-blur="form.companyAddr.$touched = true;initFlag.initCompanyAddress = false; checkCompanyAddress()" name="companyAddr" required="required" placeholder="请输入单位地址">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.companyAddr.$touched&&(form.companyAddr.$invalid || !validForm.validCompanyAddress)" ng-bind="form.companyAddr.$error.required?'请填写单位地址':'请勿超过50个字'"></div>
+          </div>
+          <div class="form-group"  ng-if="billType == 1205">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>单位电话:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initCompanyPhone&&form.companyPhone.$error.required, 'bg-fff':!initFlag.initCompanyPhone&&!form.companyPhone.$invalid}" ng-focus="form.companyPhone.$touched = false" ng-blur="form.companyPhone.$touched = true;initFlag.initCompanyPhone=false;" placeholder="区号和号码使用 '-' 隔开" name="companyPhone" ng-model="bill.companyPhone" ng-pattern="/^0\d{2,3}-[1-9]\d{6,7}$/" ng-maxlength="20" required="required">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.companyPhone.$touched&&form.companyPhone.$invalid" ng-bind="form.companyPhone.$error.required?'请填写单位电话':form.companyPhone.$error.maxlength?'请勿超过20个字符':'请填写正确的电话号码,用-隔开'"></div>
+          </div>
+          <div class="form-group"  ng-if="billType == 1205">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>税务登记号:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initCompanyTaxNum&&form.companyTaxNum.$error.required, 'bg-fff':!initFlag.initCompanyTaxNum&&!form.companyTaxNum.$invalid}" ng-model="bill.companyTaxNumber" ng-focus="form.companyTaxNum.$touched = false" ng-blur="form.companyTaxNum.$touched = true; initFlag.initCompanyTaxNum = false;" name="companyTaxNum" required="true" ng-maxlength="20" ng-minlength="15" ng-pattern="/^[0-9a-zA-Z]+$/" placeholder="请输入税务登记号">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.companyTaxNum.$touched&&(form.companyTaxNum.$invalid)" ng-bind="form.companyTaxNum.$error.required?'请填写税务登记号':'请填写15-20位数字或字母'"></div>
+          </div>
+          <div class="form-group"  ng-if="billType == 1205">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>开户银行:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee': !initFlag.initBankName&&(form.bankName.$invalid || !validForm.validBankName)}" ng-model="bill.bankName" ng-focus="form.bankName.$touched = false;" ng-blur="form.bankName.$touched = true;initFlag.initBankName = false; checkBankName()" name="bankName" required="required" placeholder="请输入开户银行">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.bankName.$touched&&(form.bankName.$invalid || !validForm.validBankName)" ng-bind="form.bankName.$error.required?'请填写开户银行':'请勿超过30个字'"></div>
+          </div>
+          <div class="form-group"  ng-if="billType == 1205">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>开户银行账户:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initBankAccount&&form.account.$error.required}" ng-model="bill.bankAccount" name="account" ng-focus="form.account.$touched = false" ng-blur="form.account.$touched = true; initFlag.initBankAccount=false" ng-pattern="/^[0-9]*$/" required ng-maxlength="30" placeholder="请输入开户银行账号">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.account.$touched&&(form.account.$invalid)" ng-bind="form.account.$error.required?'请填写开户银行账号':'请填写30位以内的数字'"></div>
+          </div>
+          <!--<div class="form-group"  ng-if="billType == 1205">-->
+          <!--<label class="col-md-2 control-label"><b class="text-inverse">*</b>上传开户许可证:{{form.permissionUpload}}</label>-->
+          <!--<div class="form-input-line file-line">-->
+          <!--<input type="text" name="permission" required class="form-control" ng-model="bill.attachUrl" readonly style="background: #fff">-->
+          <!--</div>-->
+          <!--<div class="col-md-1">-->
+          <!--<label class="select-file-box">-->
+          <!--<span>选择文件</span>-->
+          <!--<input class="input-file-default" type="file" ng-file-select ng-model="bill.billInfo" ng-change="onUploadPermission()" ng-multiple="false" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg,application/pdf,*.pdf">-->
+          <!--</label></div>-->
+          <!--<div class="text-inverse error col-md-3" ng-show="isDoUpload&&(form.permission.$error.required)">请勿超过3M</div>-->
+          <!--</div>-->
+          <div class="form-group">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>收票人:</label>
+            <div class="form-input-line">
+              <input id="mzbillname" ng-class="{'bg-fff8ee': !initFlag.initBillName&&(form.billName.$invalid || !validForm.validBillName)}" type="text" class="form-control" ng-focus="form.billName.$touched = false; " ng-blur="form.billName.$touched = true;initFlag.initBillName = false; checkBillName()" ng-model="bill.name" name="billName" required="required" placeholder="请输入收票人">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.billName.$touched&&(form.billName.$invalid || !validForm.validBillName)" ng-bind="form.billName.$error.required?'请填写收票人姓名':'请勿超过10个字'"></div>
+          </div>
+          <div class="form-group">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>联系电话:</label>
+            <div class="form-input-line">
+              <input type="text" class="form-control" ng-class="{'bg-fff8ee':!initFlag.initTelephone&&form.billTel.$error.required, 'bg-fff':!initFlag.initTelephone&&(!form.billTel.$invalid||!form.billTel.$touched)}" ng-model="bill.telephone" ng-focus="form.billTel.$touched = false" ng-blur="form.billTel.$touched = true; initFlag.initTelephone=false;" name="billTel"
+                     ng-pattern="/^[0-9\\-]*$/" ng-minlength="8" ng-maxlength="13" required="required" placeholder="请输入联系电话">
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.billTel.$touched&&form.billTel.$invalid" ng-bind="form.billTel.$error.required?'请填写联系电话':'请输入8-13位电话号码'"></div>
+          </div>
+          <div class="form-group address">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>所在地区:</label>
+            <div class="row checkbox">
+              <div class="form-input-line" style="width: 160px">
+                <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"
+                        ng-change="bill.address.city='';bill.address.district='';">
+                  <option value="">省</option>
+                </select>
+              </div>
+              <div class="form-input-line" style="width: 160px">
+                <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="form-input-line" style="width: 160px">
+                <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>
+          </div>
+          <div class="form-group">
+            <label class="col-md-2 control-label"><b class="text-inverse">*</b>详细地址:</label>
+            <div class="form-input-line" style="width: 502px">
+              <input id="mzaddress" type="text" class="form-control" ng-class="{'bg-fff8ee': !initFlag.initDetailAddress&&(form.billDetail.$invalid|| !validForm.validDetailAddress)}" required="required" name="billDetail" ng-model="bill.detailAddress" title="建议您填写详细发件地址,如街道名,门牌号,楼层和房间号等信息"
+                     placeholder="建议您填写详细发件地址,如街道名,门牌号,楼层和房间号等信息" ng-focus="form.billDetail.$touched = false; " ng-blur="form.billDetail.$touched = true;initFlag.initDetailAddress = false; checkDetailAddress()" >
+            </div>
+            <div class="text-inverse error col-md-3" ng-show="form.billDetail.$touched&&(form.billDetail.$invalid|| !validForm.validDetailAddress)" ng-bind="form.billDetail.$error.required?'请填写详细地址':'请勿超过30个字'"></div>
+          </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" id="check-mzy">
+                <label for="check-mzy" style="position: relative;bottom: 2px;"></label>
+                <span style="color: #333;">我已阅读并同意</span>
+              </label>
+              <a href="/help/helpList/19" target="_blank" style="color: #5078cb; font-size: 14px; position: relative;top: 2px;">《发票须知》</a>
+            </div>
+            <div class="form-btn">
+              <input type="button" value="取消" class="btn" ng-click="setChangeBillStatusFlag(false)">
+              <input type="submit" value="保存" class="btn"
+                     ng-click="saveBill(form.$invalid)">
+            </div>
+          </div>
+        </form>
+      </div>
+    </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>
+</div>

+ 2 - 2
src/main/webapp/resources/view/usercenter/forstore/buyer_invoice.html

@@ -503,8 +503,8 @@
         <div class="oder01">
             <ul ng-class="{'active': changeBillStatusFlag}">
                 <li ng-class="{'active': tab == 'buyer_invoice' && !changeBillStatusFlag}"><a ng-click="changeBillStatusFlag = false" ui-sref="buyer_invoice">发票信息</a></li>
-                <li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待开票订单</a></li>
-                <li ng-class="{'active': tab == 'buyer_invoice-record'}"><a ui-sref="buyer_invoice-record">开票记录</a></li>
+                <!--<li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待开票订单</a></li>-->
+                <!--<li ng-class="{'active': tab == 'buyer_invoice-record'}"><a ui-sref="buyer_invoice-record">开票记录</a></li>-->
             </ul>
         </div>
         <div style="background: #f5f5f5; height: 11px" ng-if="!changeBillStatusFlag"></div>

+ 198 - 52
src/main/webapp/resources/view/usercenter/forstore/buyer_invoice_record.html

@@ -40,12 +40,9 @@
         color: #666;
         border-bottom: 1px solid #dae5fd;
         border-right: 1px solid #dae5fd;
-        height: 50px;
         vertical-align: middle;
         text-align: center;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
+
     }
     .invoice-com-tab tbody>tr>td a.invoice-detail{
         display: block;
@@ -166,6 +163,62 @@
     .oder01 ul li.active:after{
         display: block
     }
+
+    .clearboth::after, .clearboth::before {
+        clear: both;
+        zoom: 1;
+        content: ' ';
+        overflow: hidden;
+        display: block;
+        visibility: hidden;
+    }
+    .pull-left {
+        float: left
+    }
+    .pull-right {
+        float: right
+    }
+    .w50 {
+        width: 50%;
+        margin-bottom: 5px;
+    }
+    .w35 {
+        width: 35%;
+    }
+    .w65 {
+        width: 65%;
+    }
+    .w100 {
+        width: 100%;
+        margin-bottom: 5px;
+    }
+    .overhidden {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+    .name {
+        margin-right: 10px;
+    }
+    .marginLeft {
+        max-height: 60px;
+        overflow-y: auto;
+    }
+    .marginLeft p {
+        font-size: 14px;
+    }
+    .marginLeft p a {
+        color: #3f84f6 !important;
+    }
+    .tbpadding {
+        padding: 10px;
+        padding-bottom: 5px;
+    }
+    .fixedImg {
+        position: absolute;
+        right: 0;
+        top: 0;
+    }
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr u_c_invoice">
@@ -173,9 +226,10 @@
     <div class="ticket_record oder">
         <div class="oder01">
             <ul>
-                <li ng-class="{'active': tab == 'buyer_invoice'}"><a ui-sref="buyer_invoice">发票信息</a></li>
-                <li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待开票订单</a></li>
-                <li ng-class="{'active': tab == 'buyer_invoice-record'}"><a ui-sref="buyer_invoice-record">开票记录</a></li>
+                <!--<li ng-class="{'active': tab == 'buyer_invoice'}"><a ui-sref="buyer_invoice">发票信息</a></li>-->
+                <li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待申请</a></li>
+                <li ng-class="{'active': tab == 'buyer_invoice'}"><a href="user#/invoiceRecord/101">待卖家开票</a></li>
+                <li ng-class="{'active': tab == 'buyer_invoice-record'}"><a href="user#/invoiceRecord/102">已开票</a></li>
             </ul>
         </div>
         <!--开票记录-->
@@ -190,64 +244,156 @@
                 <table class="invoice-com-tab table" ng-table="billRecordTableParam">
                     <thead>
                         <tr>
-                            <th width="100">申请时间</th>
-                            <th width="140">商家名称</th>
-                            <th width="190">订单号</th>
-                            <th width="120">可开票金额(¥)</th>
-                            <th width="60" class="select-line">
-                                <select class="select-adder form-control" ng-model="invoiceType" ng-change="changeInvoiceType(invoiceType)">
-                                    <option value="">类型</option>
-                                    <option value="1206">普票</option>
-                                    <option value="1205">专票</option>
-                                </select>
-                            </th>
-                            <th width="115">发票抬头</th>
-                            <th width="65">收票人</th>
-                            <th width="120">联系电话</th>
-                            <th width="90">
-                                <select class="select-adder form-control" style="width: 60px;" ng-model="status" ng-change="changeStatus(status)">
-                                    <option value="">状态</option>
-                                    <option value="101">待开票</option>
-                                    <option value="102">已开票</option>
-                                </select>
-                            </th>
+                            <th width="600">开票信息</th>
+                            <th width="400">收票信息</th>
                         </tr>
+                        <!--<tr>-->
+                            <!--<th width="100">申请时间</th>-->
+                            <!--<th width="140">商家名称</th>-->
+                            <!--<th width="190">订单号</th>-->
+                            <!--<th width="120">可开票金额(¥)</th>-->
+                            <!--<th width="60" class="select-line">-->
+                                <!--<select class="select-adder form-control" ng-model="invoiceType" ng-change="changeInvoiceType(invoiceType)">-->
+                                    <!--<option value="">类型</option>-->
+                                    <!--<option value="1206">普票</option>-->
+                                    <!--<option value="1205">专票</option>-->
+                                <!--</select>-->
+                            <!--</th>-->
+                            <!--<th width="115">发票抬头</th>-->
+                            <!--<th width="65">收票人</th>-->
+                            <!--<th width="120">联系电话</th>-->
+                            <!--<th width="90">-->
+                                <!--<select class="select-adder form-control" style="width: 60px;" ng-model="status" ng-change="changeStatus(status)">-->
+                                    <!--<option value="">状态</option>-->
+                                    <!--<option value="101">待开票</option>-->
+                                    <!--<option value="102">已开票</option>-->
+                                <!--</select>-->
+                            <!--</th>-->
+                        <!--</tr>-->
                     </thead>
-                    <tbody>
+                    <tbody >
                         <tr ng-repeat="item in billData">
-                            <td ng-bind="item.createTime | date : 'yyyy-MM-dd'" title="{{item.createTime | date : 'yyyy-MM-dd'}}"></td>
-                            <td><a ng-href="{{'store/' + item.storeid}}" ng-bind="item.sellername" target="_blank" title="{{item.sellername}}"></a></td>
-                            <td>
-                                <a ng-href="user#/order/detail/{{orderid | EncryptionFilter}}"
-                                   ng-repeat="orderid in item.orderids.split(',')"
-                                   ng-bind="orderid"
-                                   title='{{orderid}}' target="_blank" class="invoice-detail"></a>
-                            </td>
-                            <td ng-bind="item.price" title="{{item.price}}"></td>
-                            <td style="padding: 0;">
-                                <span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>
-                                <b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b>
-                            </td>
-                            <td ng-bind="item.invoicetitle" title="{{item.invoicetitle}}"></td>
-                            <td ng-bind="item.receiverName" title="{{item.receiverName}}"></td>
-                            <td ng-bind="item.recTel" title="{{item.recTel}}"></td>
-                            <td>
-                                <span ng-bind="item.status==101?'待开票':'已开票'" ng-class="{'blue':item.status==101}"></span>
+                            <td colspan="2" style="position: relative">
+                                <div class="clearboth tbpadding" >
+                                    <div class="pull-left clearboth w65" style="margin-bottom: 0px">
+                                        <div class="list clearboth pull-left" style="width: 50%">
+                                            <div class="clearboth w100">
+                                                <div class="pull-left name">发票抬头: </div>
+                                                <div class="pull-left marginLeft overhidden" title="{{item.invoicetitle}}" style="max-width: 224px">{{item.invoicetitle}}</div>
+                                            </div>
+                                            <div class="clearboth w100">
+                                                <div class="pull-left name">卖家: </div>
+                                                <div class="pull-left marginLeft overhidden" style="max-width: 250px">
+                                                    <a ng-href="{{'store/' + item.storeid}}" ng-bind="item.sellername" target="_blank" ></a>
+                                                </div>
+                                            </div>
+                                            <div class="clearboth w100">
+                                                <div class="pull-left name">开票金额: </div>
+                                                <div class="pull-left marginLeft overhidden" title="{{item.price}}" style="max-width: 224px">{{'¥' + item.price || '-'}}</div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1206">
+                                                <div class="pull-left name">订单号: </div>
+                                                <div class="pull-left marginLeft" style="max-width: 224px">
+                                                    <p ng-repeat="orderid in item.orderids"><a target="_blank"  ng-href="user#/order/detail/{{orderid | EncryptionFilter}}">{{orderid}}</a></p>
+                                                </div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">单位电话: </div>
+                                                <div class="pull-left marginLeft" title="{{item.billInfo.companyPhone}}">{{item.billInfo.companyPhone || '-'}}</div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">单位地址: </div>
+                                                <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;word-break: break-all;" title="{{item.billInfo.companyAddress}}">{{item.billInfo.companyAddress || '-'}}</div>
+                                            </div>
+                                        </div>
+                                        <div class="pull-left list clearboth" style="width: 50%">
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">税务登记号: </div>
+                                                <div class="pull-left marginLeft overhidden" title="{{item.billInfo.companyTaxNumber}}" style="max-width: 205px;">{{item.billInfo.companyTaxNumber || '-'}}</div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">开户银行: </div>
+                                                <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankName}}" style="max-width: 224px">{{item.billInfo.bankName || '-'}}</div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">开户银行账号: </div>
+                                                <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankAccount}}" style="max-width: 200px">{{item.billInfo.bankAccount || '-'}}</div>
+                                            </div>
+                                            <div class="clearboth w100" ng-if="item.invoicetype === 1205">
+                                                <div class="pull-left name">订单号: </div>
+                                                <div class="pull-left marginLeft" style="max-width: 224px">
+                                                    <p ng-repeat="orderid in item.orderids"><a target="_blank"  ng-href="user#/order/detail/{{orderid | EncryptionFilter}}">{{orderid}}</a></p>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="pull-right w35 clearboth" style="margin-bottom: 0px">
+                                        <div class="pull-left w100 clearboth">
+                                            <div class="pull-left name">申请开票时间: </div>
+                                            <div class="pull-left marginLeft">{{item.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</div>
+                                        </div>
+                                        <div class="pull-left w100 clearboth">
+                                            <div class="pull-left name">收票人: </div>
+                                            <div class="pull-left marginLeft overhidden" style="width: 234px;text-align: left" title="{{item.receiverName}}">{{item.receiverName || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w100 clearboth">
+                                            <div class="pull-left name">联系电话: </div>
+                                            <div class="pull-left marginLeft">{{item.recTel || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w100 clearboth">
+                                            <div class="pull-left name">收票地址: </div>
+                                            <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;word-break: break-all;">{{item.invoiceAddress || '-'}}</div>
+                                        </div>
+                                    </div>
+                                    <div class="fixedImg">
+                                        <!--item.invoicetype==1206?'普票':'专票'-->
+                                        <img src="static/img/user/images/invoice-nor.png" ng-if="item.invoicetype == 1206" width="41"/>
+                                        <img src="static/img/user/images/invoice-spec.png" ng-if="item.invoicetype == 1205" width="41"/>
+                                    </div>
+                                </div>
                             </td>
                         </tr>
                         <tr class="record-num" ng-if="billData.length > 0">
-                            <td colspan="10">
+                            <td colspan="2" style="height: 50px;">
                                 <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                             </td>
                         </tr>
                     </tbody>
+                    <!--<tbody>-->
+                        <!--<tr ng-repeat="item in billData">-->
+                            <!--<td ng-bind="item.createTime | date : 'yyyy-MM-dd'" title="{{item.createTime | date : 'yyyy-MM-dd'}}"></td>-->
+                            <!--<td><a ng-href="{{'store/' + item.storeid}}" ng-bind="item.sellername" target="_blank" title="{{item.sellername}}"></a></td>-->
+                            <!--<td>-->
+                                <!--<a ng-href="user#/order/detail/{{orderid | EncryptionFilter}}"-->
+                                   <!--ng-repeat="orderid in item.orderids.split(',')"-->
+                                   <!--ng-bind="orderid"-->
+                                   <!--title='{{orderid}}' target="_blank" class="invoice-detail"></a>-->
+                            <!--</td>-->
+                            <!--<td ng-bind="item.price" title="{{item.price}}"></td>-->
+                            <!--<td style="padding: 0;">-->
+                                <!--<span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>-->
+                                <!--<b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b>-->
+                            <!--</td>-->
+                            <!--<td ng-bind="item.invoicetitle"  ></td>-->
+                            <!--<td ng-bind="item.receiverName" title="{{item.receiverName}}"></td>-->
+                            <!--<td ng-bind="item.recTel" title="{{item.recTel}}"></td>-->
+                            <!--<td>-->
+                                <!--<span ng-bind="item.status==101?'待开票':'已开票'" ng-class="{'blue':item.status==101}"></span>-->
+                            <!--</td>-->
+                        <!--</tr>-->
+                        <!--<tr class="record-num" ng-if="billData.length > 0">-->
+                            <!--<td colspan="10">-->
+                                <!--<span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>-->
+                            <!--</td>-->
+                        <!--</tr>-->
+                    <!--</tbody>-->
                     <tbody class="no-record-list" ng-if="billData.length <= 0 || !billData">
-                    <tr class="height200">
-                    <td colspan="9" style="border: #fff 1px solid"><img src="static/img/all/empty-cart.png"><span class="f14">暂无开票记录</span></td>
-                    </tr>
+                        <tr class="height200">
+                            <td colspan="9" style="border: #fff 1px solid"><img src="static/img/all/empty-cart.png"><span class="f14">暂无开票记录</span></td>
+                        </tr>
                     </tbody>
                 </table>
             </div>
         </div>
     </div>
-</div>
+</div>

+ 61 - 24
src/main/webapp/resources/view/usercenter/forstore/buyer_no_invoice.html

@@ -55,7 +55,7 @@
     font-size: 14px;
     color: #666;
     border-bottom: 1px solid #dae5fd;
-    border-right: 1px solid #dae5fd;
+    /*border-right: 1px solid #dae5fd;*/
     height: 40px;
     vertical-align: middle;
     text-align: center;
@@ -83,10 +83,10 @@
     border: none;
 }
     /*全选*/
-.table .check-act input{
+.check-act input{
     display: none;
 }
-.table .check-act label{
+.check-act label{
     width: 12px;
     height: 12px;
     display: inline-block;
@@ -94,27 +94,31 @@
     position: relative;
     top: 7px;
 }
-.table .check-act label{
+.check-act label{
     background-position: -48px 0;
 }
-.table .check-act input:checked + label{
+.check-act input:checked + label{
     background-position: -31px 0;
 }
 .apply-btn{
-    width: 100%;
-    margin: 0 auto;
+    /*margin: 30px 0;*/
     text-align: center;
-    margin: 30px 0;
+    position: fixed;
+    width: 1026px;
+    bottom: 0;
+    background: #e0dedf;
+    height: 60px;
 }
 .apply-btn button{
-    width: 80px;
-    height: 26px;
-    line-height: 26px;
+    width: 116px;
     text-align: center;
     font-size: 14px;
     color: #fff;
     background: #5078cb;
     border: none;
+    float: right;
+    height: 100%;
+
 }
 .invoice-search{
     width: 1000px;
@@ -160,6 +164,9 @@ body div.ng-table-pager a.page-a {
     #checkAll[disabled] + label {
         cursor: not-allowed;
     }
+    #checkAll2[disabled] + label {
+        cursor: not-allowed;
+    }
 }
 /**/
 .no-invoice .no-invoice-content .empty{
@@ -208,6 +215,14 @@ body div.ng-table-pager a.page-a {
 .oder01 ul li.active:after{
     display: block
 }
+.clearboth::after, .clearboth::before {
+    clear: both;
+    zoom: 1;
+    content: ' ';
+    overflow: hidden;
+    display: block;
+    visibility: hidden;
+}
 </style>
 <!--右侧主体部分-->
 <div class="user_right fr u_c_invoice">
@@ -215,9 +230,10 @@ body div.ng-table-pager a.page-a {
     <div class="ticket_record oder">
         <div class="oder01">
             <ul>
-                <li ng-class="{'active': tab == 'buyer_invoice'}"><a ui-sref="buyer_invoice">发票信息</a></li>
-                <li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待开票订单</a></li>
-                <li ng-class="{'active': tab == 'buyer_invoice-record'}"><a ui-sref="buyer_invoice-record">开票记录</a></li>
+                <!--<li ng-class="{'active': tab == 'buyer_invoice'}"><a ui-sref="buyer_invoice">发票信息</a></li>-->
+                <li ng-class="{'active': tab == 'buyer_no_invoice'}"><a ui-sref="buyer_no_invoice">待申请</a></li>
+                <li ng-class="{'active': tab == 'buyer_invoice'}"><a href="user#/invoiceRecord/101">待卖家开票</a></li>
+                <li ng-class="{'active': tab == 'buyer_invoice-record'}"><a href="user#/invoiceRecord/102">已开票</a></li>
             </ul>
         </div>
         <!--未开票-->
@@ -231,12 +247,12 @@ body div.ng-table-pager a.page-a {
             </div>
             <div class="invoice-search">
                 <div class="fr">
-                    <input type="text" ng-keydown="enterEvent($event)" class="form-control" ng-model="keyword" placeholder="商家名称/订单号"/>
+                    <input type="text" ng-keydown="enterEvent($event)" class="form-control" ng-model="keyword" placeholder="卖家/物料名称/订单号/收票人/联系电话"/>
                     <button ng-click="searchByKeyword()">搜索</button>
                 </div>
             </div>
             <div class="no-invoice-content">
-                <table class="invoice-com-tab table" ng-table="orderBillTableParam">
+                <table class="invoice-com-tab table" ng-table="orderBillTableParam" >
                     <thead>
                         <tr>
                             <th width="80">
@@ -245,9 +261,10 @@ body div.ng-table-pager a.page-a {
                                     <label for="checkAll"></label>
                                 </lable>
                                 全选</th>
-                            <th width="120">商家名称</th>
-                            <th width="250">订单号</th>
-                            <th width="200">可开票金额(¥)</th>
+                            <th width="250">卖家</th>
+                            <th width="120">可开票金额(¥)</th>
+                            <th width="200">订单号</th>
+                            <th width="120">时间</th>
                         </tr>
                     </thead>
                     <tbody>
@@ -258,14 +275,17 @@ body div.ng-table-pager a.page-a {
                                     <label for={{$index+1}}></label>
                                 </lable>
                             </td>
-                            <td><a ng-href="{{'store/' + item.storeid}}" ng-bind="item.storeName" target="_blank"></a></td>
+                            <td><a ng-href="{{'store/' + item.storeid}}" ng-bind="item.storeName" target="_blank" style="color:#3f84f6"></a></td>
+                            <td ng-bind="item.price"></td>
                             <td>
-                                <a ng-href="user#/order/detail/{{orderid | EncryptionFilter}}" ng-repeat="orderid in item.orderid.split(',')" ng-bind="orderid" target="_blank" style="display: block;"></a>
+                                <a  style="color:#3f84f6" ng-href="user#/order/detail/{{orderid | EncryptionFilter}}" ng-repeat="orderid in item.orderid.split(',')" ng-bind="orderid" target="_blank" style="display: block;"></a>
+                            </td>
+                            <td ng-bind="item.paytime | date: 'yyyy-MM-dd HH:mm'">
+
                             </td>
-                            <td ng-bind="item.price"></td>
                         </tr>
                         <tr class="record-num" ng-if="orderData.length > 0">
-                            <td colspan="4">
+                            <td colspan="5">
                                 <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                             </td>
                         </tr>
@@ -281,7 +301,24 @@ body div.ng-table-pager a.page-a {
                     </div>
                 </div>
             </div>
-            <div class="apply-btn" ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="orderData.length > 0">
+            <div class="apply-btn clearboth" ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="orderData.length > 0" style="position: static">
+                <div style="float:left;line-height: 60px;font-size: 14px;margin-left: 20px">
+                    <lable class="check-act">
+                        <input type="checkbox" id="checkAll4" ng-disabled="!orderData || orderData.length == 0" ng-click="onAllChecked()" ng-checked="isAllCheck"/>
+                        <label for="checkAll4"></label>
+                    </lable>
+                    全选
+                </div>
+                <button ng-click="applyInvoice()">申请开票</button>
+            </div>
+            <div class="apply-btn" id="applyBtn" ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="orderData.length > 0">
+                <div style="float:left;line-height: 60px;font-size: 14px;margin-left: 20px">
+                    <lable class="check-act">
+                        <input type="checkbox" id="checkAll2" ng-disabled="!orderData || orderData.length == 0" ng-click="onAllChecked()" ng-checked="isAllCheck"/>
+                        <label for="checkAll2"></label>
+                    </lable>
+                    全选
+                </div>
                 <button ng-click="applyInvoice()">申请开票</button>
             </div>
         </div>

+ 1 - 1
src/main/webapp/resources/view/usercenter/left_nav.html

@@ -40,7 +40,7 @@
                     <li ng-class="{'active' : active == 'buyer_cart'}"><a  ui-sref="buyer_cart">购物车<em>(<span ng-bind="countCart || 0 | number"></span>)</em></a> </li>
                     <li ng-class="{'active' : active == 'buyer_order'}"><a  ui-sref="buyer_order">采购订单</a></li>
                     <li ng-class="{'active' : active == 'pay_center'}"><a  ui-sref="pay_center">支付中心</a></li>
-                    <li ng-class="{'active' : active == 'buyer_invoice'}"><a  ui-sref="buyer_invoice">发票管理</a></li>
+                    <li ng-class="{'active' : active == 'buyer_invoice'}"><a  ui-sref="buyer_no_invoice">发票管理</a></li>
                 </div>
                 <!--<div ng-hide="!(userInfo.pwdEnable && userInfo.haveUserQuestion &&  userInfo.emailValidCode && userInfo.emailValidCode == 2)">-->
                     <!--<li ng-class="{'active' : active == 'buyer_order'}"><a  ui-sref="buyer_order">订单中心</a></li>-->

+ 345 - 86
src/main/webapp/resources/view/vendor/forstore/vendor-invoice.html

@@ -102,10 +102,10 @@
         border: none;
     }
     /*全选*/
-    .table .check-act input{
+    .check-act input{
         display: none;
     }
-    .table .check-act label{
+    .check-act label{
         width: 12px;
         height: 12px;
         display: inline-block;
@@ -113,27 +113,31 @@
         position: relative;
         top: 2px;
     }
-    .table .check-act label{
+    .check-act label{
         background-position: -48px 0;
     }
-    .table .check-act input:checked + label{
+    .check-act input:checked + label{
         background-position: -31px 0;
     }
     .apply-btn{
-        width: 100%;
-        margin: 0 auto;
+        /*margin: 30px 0;*/
         text-align: center;
-        margin: 30px 0;
+        position: fixed;
+        width: 1026px;
+        bottom: 0;
+        background: #e0dedf;
+        height: 60px;
     }
     .apply-btn button{
-        width: 80px;
-        height: 26px;
-        line-height: 26px;
+        width: 116px;
         text-align: center;
         font-size: 14px;
         color: #fff;
         background: #5078cb;
         border: none;
+        float: right;
+        height: 100%;
+
     }
     .invoice-com-tab thead>tr>th.select-line{
         padding: 8px 0;
@@ -304,13 +308,69 @@
     .com_tab ul li.active:after{
         display: block
     }
+
+    .clearboth::after, .clearboth::before {
+        clear: both;
+        zoom: 1;
+        content: ' ';
+        overflow: hidden;
+        display: block;
+        visibility: hidden;
+    }
+    .pull-left {
+        float: left
+    }
+    .pull-right {
+        float: right
+    }
+    .w50 {
+        width: 50%;
+        margin-bottom: 5px;
+    }
+    .w35 {
+        width: 322px
+    }
+    .w65 {
+        width: 598px;
+    }
+    .w100 {
+        width: 100%;
+        margin-bottom: 5px;
+    }
+    .overhidden {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+    .name {
+        margin-right: 10px;
+    }
+    .marginLeft {
+        max-height: 60px;
+        overflow-y: auto;
+    }
+    .marginLeft p {
+        font-size: 14px;
+    }
+    .marginLeft p a {
+        color: #3f84f6 !important;
+    }
+    .tbpadding {
+        padding: 10px;
+        padding-bottom: 5px;
+    }
+    .fixedImg {
+        position: absolute;
+        right: 0;
+        top: 0;
+    }
 </style>
 <div class="count user_right fr">
     <div class="count_center">
         <div class="com_tab">
             <ul class="fl">
-                <li ng-class="{'active': active == 'apply_invoice'}" ng-click="toggleTab('apply_invoice')"><a>买家开票申请</a></li>
-                <li ng-class="{'active': active == 'apply_record'}" ng-click="toggleTab('apply_record')"><a>开票记录</a></li>
+                <li ng-class="{'active': active == 'apply_invoice'}" ng-click="toggleTab('apply_invoice')"><a>待开票</a></li>
+                <li ng-class="{'active': active == 'apply_record'}" ng-click="toggleTab('apply_record')"><a>开票</a></li>
             </ul>
         </div>
     </div>
@@ -324,7 +384,7 @@
         </div>
         <div class="invoice-search">
             <div class="fr">
-                <input type="text" ng-keydown="enterEvent($event, keyword)"  class="form-control" ng-model="keyword" placeholder="订单号/发票抬头/收票人/联系电话"/>
+                <input type="text" ng-keydown="enterEvent($event, keyword)"  class="form-control" ng-model="keyword" placeholder="买家/物料名称/订单号/收票人/联系电话"/>
                 <button ng-click="searchByKey(keyword)">搜索</button>
             </div>
         </div>
@@ -332,57 +392,135 @@
             <table class="invoice-com-tab table" ng-table="billRecordTableParam">
                 <thead>
                 <tr>
-                    <th width="45">
+                    <th width="60">
                         <lable class="check-act">
                             <input type="checkbox" id="checkAll" ng-disabled="!billData || billData.length == 0" ng-click="onAllChecked()" ng-checked="isAllCheck" />
                             <label for="checkAll"></label>
                         </lable>
                         全选</th>
-                    <th width="70">申请时间</th>
-                    <th width="90">订单号</th>
-                    <th width="90">开票金额(¥)</th>
-                    <th width="55" class="select-line">
-                        <select class="select-adder form-control" style="position: relative;left: 6px;" ng-change="billTypeSearch(billType)" ng-model="billType">
-                            <option value="1">类型</option>
-                            <option value="2">普票</option>
-                            <option value="3">专票</option>
-                        </select>
-                    </th>
-                    <th width="120">发票抬头</th>
-                    <th width="50">收票人</th>
-                    <th width="160">收票地址</th>
-                    <th width="50">联系电话</th>
+                    <th width="573">开票信息</th>
+                    <th width="382">收票信息</th>
+                    <!--<th width="70">申请时间</th>-->
+                    <!--<th width="90">订单号</th>-->
+                    <!--<th width="90">开票金额(¥)</th>-->
+                    <!--<th width="55" class="select-line">-->
+                        <!--<select class="select-adder form-control" style="position: relative;left: 6px;" ng-change="billTypeSearch(billType)" ng-model="billType">-->
+                            <!--<option value="1">类型</option>-->
+                            <!--<option value="2">普票</option>-->
+                            <!--<option value="3">专票</option>-->
+                        <!--</select>-->
+                    <!--</th>-->
+                    <!--<th width="120">发票抬头</th>-->
+                    <!--<th width="50">收票人</th>-->
+                    <!--<th width="160">收票地址</th>-->
+                    <!--<th width="50">联系电话</th>-->
                 </tr>
                 </thead>
                 <tbody>
                     <tr ng-repeat="item in billData track by $index">
-                        <td  style="width: 50px;">
+                        <td  style="width: 60px;">
                             <lable class="check-act">
                                 <input type="checkbox" id={{$index+1}} ng-checked="item.checked" ng-click="checkInvoice(item)" />
                                 <label for={{$index+1}}></label>
                             </lable>
                         </td>
-                        <td ng-bind="item.createTime | date : 'yyyy-MM-dd'"></td>
-                        <td>
-                             <span ng-repeat="(col, orderid) in item.orderids.split(',')">
-                            <a ng-href="vendor#/purchase/detail/{{item.purchaseids.split(',')[col] | EncryptionFilter}}" ng-bind="orderid" target="_blank" class="link-order"></a>
-                        </span>
-                        </td>
-                        <td ng-bind="item.price"></td>
-                        <td style="padding: 0;">
-                            <span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>
-                            <b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b>
-                        </td>
-                        <td ng-bind="item.invoicetitle"></td>
-                        <td ng-bind="item.receiverName"></td>
-                        <td class="address" title="{{item.area+'&#10;'+item.detailAddr}}">
-                            <p ng-bind="item.area"></p>
-                            <p ng-bind="item.detailAddr"></p>
+                        <td colspan="2" style="position: relative;padding: 0px">
+                            <div class="clearboth tbpadding" >
+                                <div class="pull-left clearboth w65" style="margin-bottom: 0px">
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50 clearboth">
+                                            <div class="pull-left name">发票抬头: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.invoicetitle}}" style="max-width: 224px">{{item.invoicetitle}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">税务登记号: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.companyTaxNumber}}" style="max-width: 205px;">{{item.billInfo.companyTaxNumber || '-'}}</div>
+                                        </div>
+                                    </div>
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50">
+                                            <div class="pull-left name">开票金额: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.price}}" style="max-width: 224px">{{'¥' + item.price || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">开户银行: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankName}}" style="max-width: 224px">{{item.billInfo.bankName || '-'}}</div>
+                                        </div>
+                                    </div>
+
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">单位电话: </div>
+                                            <div class="pull-left marginLeft" title="{{item.billInfo.companyPhone}}">{{item.billInfo.companyPhone || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">开户银行账号: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankAccount}}" style="max-width: 200px">{{item.billInfo.bankAccount || '-'}}</div>
+                                        </div>
+                                    </div>
+                                    <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                        <div class="pull-left name">单位地址: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;word-break: break-all;" title="{{item.billInfo.companyAddress}}">{{item.billInfo.companyAddress || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w50">
+                                        <div class="pull-left name">订单号: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px">
+                                            <p ng-repeat="orderid in item.orderids"><a target="_blank"  ng-href="user#/order/detail/{{orderid | EncryptionFilter}}">{{orderid}}</a></p>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="pull-right w35 clearboth" style="margin-bottom: 0px">
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">申请开票时间: </div>
+                                        <div class="pull-left marginLeft">{{item.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">收票人: </div>
+                                        <div class="pull-left marginLeft overhidden" style="width: 234px;text-align: left" title="{{item.receiverName}}">{{item.receiverName || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">联系电话: </div>
+                                        <div class="pull-left marginLeft">{{item.recTel || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">收票地址: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;word-break: break-all;">{{item.invoiceAddress || '-'}}</div>
+                                    </div>
+                                </div>
+                                <div class="fixedImg">
+                                    <!--item.invoicetype==1206?'普票':'专票'-->
+                                    <img src="static/img/user/images/invoice-nor.png" ng-if="item.invoicetype == 1206" width="41"/>
+                                    <img src="static/img/user/images/invoice-spec.png" ng-if="item.invoicetype == 1205" width="41"/>
+                                </div>
+                            </div>
                         </td>
-                        <td ng-bind="item.recTel">13135015772</td>
+                        <!--<td  style="width: 50px;">-->
+                            <!--<lable class="check-act">-->
+                                <!--<input type="checkbox" id={{$index+1}} ng-checked="item.checked" ng-click="checkInvoice(item)" />-->
+                                <!--<label for={{$index+1}}></label>-->
+                            <!--</lable>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.createTime | date : 'yyyy-MM-dd'"></td>-->
+                        <!--<td>-->
+                             <!--<span ng-repeat="(col, orderid) in item.orderids.split(',')">-->
+                            <!--<a ng-href="vendor#/purchase/detail/{{item.purchaseids.split(',')[col] | EncryptionFilter}}" ng-bind="orderid" target="_blank" class="link-order"></a>-->
+                        <!--</span>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.price"></td>-->
+                        <!--<td style="padding: 0;">-->
+                            <!--<span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>-->
+                            <!--<b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.invoicetitle"></td>-->
+                        <!--<td ng-bind="item.receiverName"></td>-->
+                        <!--<td class="address" title="{{item.area+'&#10;'+item.detailAddr}}">-->
+                            <!--<p ng-bind="item.area"></p>-->
+                            <!--<p ng-bind="item.detailAddr"></p>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.recTel">13135015772</td>-->
                     </tr>
                     <tr class="record-num" ng-if="billData && billData.length>0">
-                        <td colspan="9">
+                        <td colspan="3">
                             <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                         </td>
                     </tr>
@@ -394,7 +532,24 @@
                 </tbody>
             </table>
         </div>
-        <div class="apply-btn"  ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="billData && billData.length>0">
+        <div class="apply-btn clearboth" ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="billData && billData.length>0" style="position: static">
+            <div style="float:left;line-height: 60px;font-size: 14px;margin-left: 20px">
+                <lable class="check-act">
+                    <input type="checkbox" id="checkAll2" ng-disabled="!billData || billData.length == 0" ng-click="onAllChecked()" ng-checked="isAllCheck" />
+                    <label for="checkAll2"></label>
+                </lable>
+                全选
+            </div>
+            <button ng-click="submitApply()">确认开票</button>
+        </div>
+        <div class="apply-btn" id="applyBtn" ng-style="$$kdnData.totalElements>10?'margin-top: 100px':''" ng-if="billData.length > 0">
+            <div style="float:left;line-height: 60px;font-size: 14px;margin-left: 20px">
+                <lable class="check-act">
+                    <input type="checkbox" id="checkAll3" ng-disabled="!billData || billData.length == 0" ng-click="onAllChecked()" ng-checked="isAllCheck" />
+                    <label for="checkAll3"></label>
+                </lable>
+                全选
+            </div>
             <button ng-click="submitApply()">确认开票</button>
         </div>
     </div>
@@ -410,52 +565,156 @@
             <table class="invoice-com-tab table invoice-com" ng-table="billRecordTableParam" style="table-layout: fixed;">
                 <thead>
                 <tr>
-                    <th width="90">申请时间</th>
-                    <th width="185">订单号</th>
-                    <th width="110">开票金额(¥)</th>
-                    <th width="60" class="select-line">
-                        <select class="select-adder form-control" style="position: relative;left: 6px;" ng-change="billTypeSearch(billType)" ng-model="billType">
-                            <option value="1">类型</option>
-                            <option value="2">普票</option>
-                            <option value="3">专票</option>
-                        </select>
-                    </th>
-                    <th width="145">发票抬头</th>
-                    <th width="70">收票人</th>
-                    <th width="205">收票地址</th>
-                    <th width="125">联系电话</th>
+                    <th width="650">开票信息</th>
+                    <th width="350">收票信息</th>
+                    <!--<th width="90">申请时间</th>-->
+                    <!--<th width="185">订单号</th>-->
+                    <!--<th width="110">开票金额(¥)</th>-->
+                    <!--<th width="60" class="select-line">-->
+                        <!--<select class="select-adder form-control" style="position: relative;left: 6px;" ng-change="billTypeSearch(billType)" ng-model="billType">-->
+                            <!--<option value="1">类型</option>-->
+                            <!--<option value="2">普票</option>-->
+                            <!--<option value="3">专票</option>-->
+                        <!--</select>-->
+                    <!--</th>-->
+                    <!--<th width="145">发票抬头</th>-->
+                    <!--<th width="70">收票人</th>-->
+                    <!--<th width="205">收票地址</th>-->
+                    <!--<th width="125">联系电话</th>-->
                 </tr>
                 </thead>
                 <tbody>
-                <tr ng-repeat="item in billData track by $index">
-                    <td ng-bind="item.createTime | date : 'yyyy-MM-dd'" title="{{item.createTime | date : 'yyyy-MM-dd'}}"></td>
-                    <td>
-                        <span ng-repeat="(col, orderid) in item.orderids.split(',')">
-                            <a ng-href="vendor#/purchase/detail/{{item.purchaseids.split(',')[col] | EncryptionFilter}}" ng-bind="orderid" title="{{orderid}}" target="_blank" class="link-order"></a>
-                        </span>
-                    </td>
-                    <td ng-bind="item.price" title="{{item.price}}"></td>
-                    <td style="padding: 0;">
-                        <span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>
-                        <b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b></td>
-                    <td ng-bind="item.invoicetitle" title="{{item.invoicetitle}}"></td>
-                    <td ng-bind="item.receiverName" title="{{item.receiverName}}"></td>
-                    <td class="address" title="{{item.area+'&#10;'+item.detailAddr}}">
-                        <p ng-bind="item.area"></p>
-                        <p ng-bind="item.detailAddr"></p>
-                    </td>
-                    <td ng-bind="item.recTel" title="{{item.recTel}}">13135015772</td>
-                </tr>
-                <tr class="record-num" ng-if="billData && billData.length>0">
-                    <td colspan="9">
+                    <tr ng-repeat="item in billData track by $index">
+                        <td colspan="2" style="position: relative;padding: 0px">
+                            <div class="clearboth tbpadding" >
+                                <div class="pull-left clearboth" style="margin-bottom: 0px;width: 65%">
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50 clearboth">
+                                            <div class="pull-left name">发票抬头: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.invoicetitle}}" style="max-width: 224px">{{item.invoicetitle}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">税务登记号: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.companyTaxNumber}}" style="max-width: 205px;">{{item.billInfo.companyTaxNumber || '-'}}</div>
+                                        </div>
+                                    </div>
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50">
+                                            <div class="pull-left name">开票金额: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.price}}" style="max-width: 224px">{{'¥' + item.price || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">开户银行: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankName}}" style="max-width: 224px">{{item.billInfo.bankName || '-'}}</div>
+                                        </div>
+                                    </div>
+
+                                    <div class="list clearboth" style="width: 100%">
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">单位电话: </div>
+                                            <div class="pull-left marginLeft" title="{{item.billInfo.companyPhone}}">{{item.billInfo.companyPhone || '-'}}</div>
+                                        </div>
+                                        <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                            <div class="pull-left name">开户银行账号: </div>
+                                            <div class="pull-left marginLeft overhidden" title="{{item.billInfo.bankAccount}}" style="max-width: 200px">{{item.billInfo.bankAccount || '-'}}</div>
+                                        </div>
+                                    </div>
+                                    <div class="pull-left w50" ng-if="item.invoicetype === 1205">
+                                        <div class="pull-left name">单位地址: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;word-break: break-all;" title="{{item.billInfo.companyAddress}}">{{item.billInfo.companyAddress || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w50">
+                                        <div class="pull-left name">订单号: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px">
+                                            <p ng-repeat="orderid in item.orderids"><a target="_blank"  ng-href="user#/order/detail/{{orderid | EncryptionFilter}}">{{orderid}}</a></p>
+                                        </div>
+                                    </div>
+
+                                </div>
+                                <div class="pull-right clearboth" style="margin-bottom: 0px;width: 35%">
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">申请开票时间: </div>
+                                        <div class="pull-left marginLeft">{{item.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">收票人: </div>
+                                        <div class="pull-left marginLeft overhidden" style="width: 234px;text-align: left" title="{{item.receiverName}}">{{item.receiverName || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">联系电话: </div>
+                                        <div class="pull-left marginLeft">{{item.recTel || '-'}}</div>
+                                    </div>
+                                    <div class="pull-left w100 clearboth">
+                                        <div class="pull-left name">收票地址: </div>
+                                        <div class="pull-left marginLeft" style="max-width: 224px;text-align: left;white-space: normal;white-space: normal;word-break: break-all;">{{item.invoiceAddress || '-'}}</div>
+                                    </div>
+                                </div>
+                                <div class="fixedImg">
+                                    <!--item.invoicetype==1206?'普票':'专票'-->
+                                    <img src="static/img/user/images/invoice-nor.png" ng-if="item.invoicetype == 1206" width="41"/>
+                                    <img src="static/img/user/images/invoice-spec.png" ng-if="item.invoicetype == 1205" width="41"/>
+                                </div>
+                            </div>
+                        </td>
+                        <!--<td  style="width: 50px;">-->
+                        <!--<lable class="check-act">-->
+                        <!--<input type="checkbox" id={{$index+1}} ng-checked="item.checked" ng-click="checkInvoice(item)" />-->
+                        <!--<label for={{$index+1}}></label>-->
+                        <!--</lable>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.createTime | date : 'yyyy-MM-dd'"></td>-->
+                        <!--<td>-->
+                        <!--<span ng-repeat="(col, orderid) in item.orderids.split(',')">-->
+                        <!--<a ng-href="vendor#/purchase/detail/{{item.purchaseids.split(',')[col] | EncryptionFilter}}" ng-bind="orderid" target="_blank" class="link-order"></a>-->
+                        <!--</span>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.price"></td>-->
+                        <!--<td style="padding: 0;">-->
+                        <!--<span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>-->
+                        <!--<b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.invoicetitle"></td>-->
+                        <!--<td ng-bind="item.receiverName"></td>-->
+                        <!--<td class="address" title="{{item.area+'&#10;'+item.detailAddr}}">-->
+                        <!--<p ng-bind="item.area"></p>-->
+                        <!--<p ng-bind="item.detailAddr"></p>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.recTel">13135015772</td>-->
+                    </tr>
+                    <tr class="record-num" ng-if="billData && billData.length>0">
+                    <td colspan="3">
                         <span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>
                     </td>
                 </tr>
+                    <!--<tr ng-repeat="item in billData track by $index">-->
+                        <!--<td ng-bind="item.createTime | date : 'yyyy-MM-dd'" title="{{item.createTime | date : 'yyyy-MM-dd'}}"></td>-->
+                        <!--<td>-->
+                            <!--<span ng-repeat="(col, orderid) in item.orderids.split(',')">-->
+                                <!--<a ng-href="vendor#/purchase/detail/{{item.purchaseids.split(',')[col] | EncryptionFilter}}" ng-bind="orderid" title="{{orderid}}" target="_blank" class="link-order"></a>-->
+                            <!--</span>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.price" title="{{item.price}}"></td>-->
+                        <!--<td style="padding: 0;">-->
+                            <!--<span ng-bind="item.invoicetype==1206?'普票':'专票'"></span>-->
+                            <!--<b ng-click="lookInvoiceInfo(item)" class="invoice-info">开票信息</b></td>-->
+                        <!--<td ng-bind="item.invoicetitle" title="{{item.invoicetitle}}"></td>-->
+                        <!--<td ng-bind="item.receiverName" title="{{item.receiverName}}"></td>-->
+                        <!--<td class="address" title="{{item.area+'&#10;'+item.detailAddr}}">-->
+                            <!--<p ng-bind="item.area"></p>-->
+                            <!--<p ng-bind="item.detailAddr"></p>-->
+                        <!--</td>-->
+                        <!--<td ng-bind="item.recTel" title="{{item.recTel}}">13135015772</td>-->
+                    <!--</tr>-->
+                    <!--<tr class="record-num" ng-if="billData && billData.length>0">-->
+                        <!--<td colspan="9">-->
+                            <!--<span class="count-tip">显示 <span ng-bind="$$kdnData.start"></span>-<span ng-bind="$$kdnData.end"></span> 条,共 <span ng-bind="$$kdnData.totalElements"></span> 条</span>-->
+                        <!--</td>-->
+                    <!--</tr>-->
                 </tbody>
                 <tbody class="no-record-list" ng-if="!billData || billData.length<=0">
-                <tr style="height:401px!important;">
-                <td style="border: #fff 1px solid" colspan="10"><img src="static/img/all/empty-cart.png"><span class="f14">暂无开票记录</span></td>
-                </tr>
+                    <tr style="height:401px!important;">
+                        <td style="border: #fff 1px solid" colspan="10"><img src="static/img/all/empty-cart.png"><span class="f14">暂无开票记录</span></td>
+                    </tr>
                 </tbody>
             </table>
         </div>