apCheck.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684
  1. <style>
  2. body{
  3. font-family: "Microsoft YaHei", "微软雅黑" !important;
  4. }
  5. .text-num{
  6. }
  7. .append{
  8. color: #5078cb;font-size:12px; margin-left: 10px
  9. }
  10. .order-table td {
  11. padding-top: 10px;
  12. margin-bottom: 20px;
  13. border-bottom: solid 1px #ccc;
  14. border-top: solid 1px #e8e8e8;
  15. }
  16. .order-table td.first {
  17. padding-left: 20px;
  18. }
  19. .order-table td.last {
  20. padding-right: 20px;
  21. }
  22. .order-table td .static p {
  23. display: inline-block;
  24. line-height: 30px;
  25. padding-top: 5px;
  26. padding-bottom: 0px;
  27. width: 150px;
  28. font-size: 14px;
  29. color: #666;
  30. padding-left: 15px;
  31. border-left: solid 1px #e8e8e8;
  32. }
  33. .order-table td .static p:first-child{
  34. border-left: none;
  35. width: auto;
  36. padding-left: 0;
  37. }
  38. .order-table td .static p:last-child{
  39. /*margin-left: 22px;*/
  40. }
  41. .order-table td .static p:nth-of-type(3){
  42. margin-left: 20px;
  43. }
  44. .order-table td .main {
  45. margin-top: 5px;
  46. margin-bottom: 20px;
  47. color: #333;
  48. }
  49. .static{
  50. margin: 12px 0;
  51. }
  52. .order-table td .main strong {
  53. font-size: 14px;
  54. }
  55. .order-table td .static p strong {
  56. font-size: 14px;
  57. font-weight: bold;
  58. color: #888;
  59. }
  60. .order-table td.status {
  61. position: relative;
  62. border-left: solid 1px #e8e8e8;
  63. padding: 10px;
  64. vertical-align: top;
  65. }
  66. .order-table td.status .operate {
  67. position: absolute;
  68. display: block;
  69. bottom: 0;
  70. left: 0;
  71. right: 0;
  72. height: 0px;
  73. color: #ffffff;
  74. font-size: 14px;
  75. font-weight: bold;
  76. line-height: 40px;
  77. opacity: 0.8;
  78. transition: height ease-in-out 0.5s;
  79. text-decoration: none;
  80. }
  81. .order-table td.status .operate-undo {
  82. background: #428bca;
  83. }
  84. .order-table td.status .operate-done {
  85. background: #cccccc;
  86. }
  87. .order-table td.status:hover .operate {
  88. height: 40px;
  89. }
  90. .unPrinted {
  91. color: #56a022;
  92. }
  93. .order-table td .main strong{
  94. font-weight: normal;
  95. }
  96. .order-table td{
  97. font-size: 14px;
  98. }
  99. .order-table th{
  100. text-align: center;
  101. }
  102. .order-table .text-trans{
  103. margin-top: -13px;
  104. margin-right: 1px;
  105. }
  106. .menu .new-dot{
  107. width: 20px;
  108. height: 20px;
  109. line-height: 20px;
  110. font-size: 12px;
  111. color: #fff;
  112. font-weight: inherit;
  113. top: -2px;
  114. }
  115. .block {
  116. position: relative;
  117. }
  118. </style>
  119. <style>
  120. .com_tab {
  121. height: 40px;
  122. margin-bottom: 10px;
  123. }
  124. .com_tab ul {
  125. width: 100%;
  126. margin: 0 auto;
  127. height: 40px;
  128. line-height: 40px;
  129. background: #fff;
  130. }
  131. .com_tab ul li {
  132. height: 40px;
  133. text-align: center;
  134. float: left;
  135. position: relative;
  136. min-width: 110px;
  137. }
  138. .com_tab:nth-of-type(1) ul li.active > a {
  139. border-bottom: #fff;
  140. background: #5078cb;
  141. color: #fff !important;
  142. }
  143. .com_tab ul li a {
  144. min-width: 110px;
  145. }
  146. .com_tab ul li > a {
  147. font-size: 14px;
  148. height: 40px;
  149. padding: 0 20px;
  150. display: inline-block;
  151. }
  152. .com_tab:nth-of-type(1) ul li::after {
  153. background:url('/static/img/vendor/images/downicon.png');
  154. width: 11px;
  155. height: 6px;
  156. position: absolute;
  157. bottom: 0px;
  158. left: 50%;
  159. content: ' ';
  160. margin-left: -5px;
  161. display: none;
  162. }
  163. .com_tab ul li::after {
  164. background:url('/static/img/vendor/images/downicon.png');
  165. width: 11px;
  166. height: 6px;
  167. position: absolute;
  168. bottom: 0px;
  169. left: 50%;
  170. content: ' ';
  171. margin-left: -5px;
  172. display: none;
  173. }
  174. .com_tab ul li.active:after {
  175. display: block;
  176. }
  177. .oder01 ul li.active a{
  178. border-bottom: 1px solid #fff;
  179. color: #f15601;
  180. }
  181. .oder01 ul li.active a em {
  182. color: #f15601;
  183. }
  184. .oder01 ul li a em {
  185. color: #323232
  186. }
  187. .screen {
  188. background: #fff;
  189. padding-top: 10px;
  190. padding-right: 11px;
  191. line-height: 32px;
  192. padding-left: 22px;
  193. width: 100%;
  194. height: 50px;
  195. position: relative;
  196. }
  197. .screen .sreach input {
  198. border: #5078cb 1px solid;
  199. height: 32px;
  200. width: 280px;
  201. box-shadow: none;
  202. padding-left: 10px;
  203. background: #fff;
  204. float: left;
  205. vertical-align: middle;
  206. font-size: 14px;
  207. }
  208. .screen .sreach a.seek {
  209. width: 58px;
  210. height: 32px;
  211. background: #5078cb;
  212. color: #fff;
  213. line-height: 32px;
  214. float: none;
  215. border-radius: 2px;
  216. vertical-align: unset;
  217. }
  218. .order-table {
  219. background: #fff;
  220. width: 100%;
  221. }
  222. .order-table .header > th {
  223. height: 38px;
  224. text-align: center;
  225. background: #fff;
  226. border-top: 1px solid #e8e8e8;
  227. border-bottom: 1px solid #e8e8e8;
  228. font-size: 14px;
  229. }
  230. .order-table .sep-row {
  231. height: 10px;
  232. }
  233. .order-table .selector {
  234. vertical-align: middle;
  235. margin: 0 0 2px 0;
  236. }
  237. .toolbar label {
  238. margin-right: 10px;
  239. margin-bottom: 0;
  240. }
  241. .toolbar .select_all {
  242. margin: 0 6px 0 10px;
  243. line-height: 20px;
  244. }
  245. .toolbar .btn {
  246. -moz-border-radius: 2px;
  247. margin-right: 5px;
  248. border: 1px solid #dcdcdc;
  249. border-radius: 2px;
  250. -webkit-border-radius: 2px;
  251. }
  252. .order-table .order-hd {
  253. background: #f5f5f5;
  254. height: 40px;
  255. line-height: 40px;
  256. }
  257. .order-table .order-hd td.first {
  258. padding-left: 20px;
  259. }
  260. .order-table .order-hd .order-main span {
  261. margin-right: 8px;
  262. }
  263. .order-table .order-hd .order-code {
  264. font-style: normal;
  265. font-family: verdana;
  266. }
  267. .order-table .order-hd .order-sum {
  268. position: relative;
  269. padding: 0 5px;
  270. }
  271. .order-table .order-hd .dropdown-toggle {
  272. line-height: 40px;
  273. display: block;
  274. color: #5078cb;
  275. /*padding: 0 10px;*/
  276. }
  277. .order-table .operates {
  278. display: none;
  279. }
  280. .order-table > tbody:hover .operates {
  281. display: block;
  282. }
  283. .order-table .order-bd {
  284. border-bottom: 1px solid #e6e6e6;
  285. }
  286. .order-table .order-bd > td {
  287. padding: 10px 5px;
  288. text-align: center;
  289. }
  290. .order-table .order-bd .product {
  291. padding-left: 20px;
  292. }
  293. .input-xs, .input-group-xs > .form-control, .input-group-xs > .input-group-addon, .input-group-xs > .input-group-btn > .btn {
  294. height: 26px;
  295. padding: 0 5px;
  296. font-size: 12px;
  297. line-height: 1.5;
  298. border-radius: 3px;
  299. }
  300. .order-table .order-hd .dropdown-toggle:hover + .order-snapshot {
  301. display: block;
  302. }
  303. .order-table .order-hd .order-snapshot{
  304. padding: 10px 15px;
  305. display: none;
  306. width: 250px;
  307. position: absolute;
  308. top: 32px;
  309. left: 39px;
  310. border: 1px solid rgba(0,0,0,0.15);
  311. -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.3);
  312. -moz-box-shadow: 0 0 5px rgba(0,0,0,0.3);
  313. -o-box-shadow: 0 0 5px rgba(0,0,0,0.3);
  314. box-shadow: 0 0 5px rgba(0,0,0,0.3);
  315. }
  316. .order-snapshot .title {
  317. border-top: 1px dashed #ddd;
  318. }
  319. .order-snapshot .dl-horizontal dt {
  320. width: 60px;
  321. text-align: left;
  322. font-weight: normal;
  323. color: #999;
  324. padding: 4px 0;
  325. }
  326. .order-snapshot .dl-horizontal dd {
  327. margin-left: 80px;
  328. padding: 4px 0;
  329. }
  330. /*arrow*/
  331. .order-send {
  332. position: relative;
  333. }
  334. .order-send.arrow-border:before, .arrow-border:after {
  335. content: '';
  336. position: absolute;
  337. top: 20px;
  338. width: 0;
  339. height: 0;
  340. border: 7px solid transparent;
  341. }
  342. .order-send.arrow-border.arrow-bottom-right:before {
  343. content: '';
  344. position: absolute;
  345. left: -13px;
  346. border-bottom-color: #fff;
  347. border-right-color: #fff;
  348. margin-top: -10px;
  349. }
  350. .menu .new-dot {
  351. width: 20px;
  352. height: 20px;
  353. line-height: 20px;
  354. font-size: 12px;
  355. color: #fff;
  356. font-weight: inherit;
  357. top: -2px;
  358. }
  359. .f14{
  360. font-size:14px;
  361. }
  362. .screen .sreach input {
  363. width: 288px
  364. }
  365. .modal {
  366. position: fixed;
  367. top: 0;
  368. right: 0;
  369. bottom: 0;
  370. left: 0;
  371. z-index: 1050;
  372. display: none;
  373. overflow: hidden;
  374. -webkit-overflow-scrolling: touch;
  375. outline: 0;
  376. margin: 0 !important;
  377. }
  378. .modal-open .modal {
  379. overflow-x: hidden;
  380. overflow-y: auto;
  381. }
  382. #empty {
  383. padding: 70px 0;
  384. margin: 0 auto;
  385. text-align: center;
  386. }
  387. #empty .left_img {
  388. display: inline-block;
  389. color: #3f84f6;
  390. }
  391. #empty .left_img a {
  392. font-size: 25px;
  393. color: #3f84f6;
  394. }
  395. #empty .right_link p {
  396. margin: 0;
  397. font-size: 14px;
  398. color: #666;
  399. }
  400. #empty_info .empty_title {
  401. color: #3f84f6;
  402. font-size: 18px;
  403. }
  404. #empty_info .empty_explain {
  405. font-size: 16px;
  406. color: #999;
  407. }
  408. #empty_info .empty_explain .info {
  409. text-indent: -22px;
  410. }
  411. .f16 {
  412. font-size: 16px !important;
  413. }
  414. .f14 {
  415. font-size: 14px !important;
  416. }
  417. #empty_info {
  418. padding-left: 60px;
  419. padding-bottom: 40px;
  420. }
  421. table tbody tr td {
  422. border-bottom: #e8e8e8 1px solid;
  423. border-right: #e8e8e8 1px solid;
  424. font-size: 14px;
  425. color: #666;
  426. }
  427. .ng-table-pager::after {
  428. clear: both;
  429. content: ' ';
  430. zoom: 1;
  431. display: block;
  432. visibility: hidden;
  433. }
  434. .ng-table-pager {
  435. padding-right: 20px;
  436. padding-top: 50px;
  437. margin-right: 0 !important;
  438. }
  439. .text-mns {
  440. padding-right: 15px;
  441. position: absolute;
  442. bottom: 64px;
  443. right: 20px;
  444. font-size: 12px;
  445. }
  446. .Boom18 {
  447. bottom: 18px;
  448. }
  449. .fixed {
  450. position: absolute;
  451. left: 0px;
  452. top: 0px;
  453. width: 40px;
  454. }
  455. .order-table tbody:hover {
  456. border: 2px solid #3c7cf5
  457. }
  458. .order-table tbody:hover .order-bd:nth-last-of-type(1) {
  459. background: #f8fafe
  460. }
  461. .order-table .order-hdt {
  462. background: #f5f5f5;
  463. }
  464. </style>
  465. <!--<link rel="stylesheet" href="static/css/public.css">-->
  466. <div class="user_right fr" style="position: relative">
  467. <div class="com_tab" style="margin-bottom: 10px">
  468. <ul class="fl" style="width: 100%">
  469. <li class="active"><a href="javascript:void(0)">B2B</a></li>
  470. <li><a ui-sref="pay_center" href="javascript:void(0)">优软商城</a></li>
  471. <li class="down-purchase" style="margin-right: 0;min-width: 80px">
  472. <a href="#" style="min-width: 80px" ng-click="exportXls()" target="_self" title="导出Excel表格" class="blue f14"><i class="fa fa-file-text fa-fw"></i>导出</a>
  473. </li>
  474. <li class="down-purchase" style="margin-right: 0;min-width: 80px">
  475. <a class="text-simple append" style="min-width: 80px" ui-sref="fa_apCheckList" title="新增对账单">
  476. <i class="fa fa-plus-square fa-fw"></i>新增对账单
  477. </a>
  478. </li>
  479. </ul>
  480. </div>
  481. <div class="oder01" style="margin-bottom: 0px">
  482. <ul>
  483. <li ng-class="{'active': active=='all'}" ng-click="setActive('all')"><a> 全部</a></li>
  484. <li ng-class="{'active': active=='done'}" ng-click="setActive('done')"><a>已确认(<em ng-class="{'color-black': !unread.replied }" ng-bind="unread.replied || 0"></em>)</a></li>
  485. <li ng-class="{'active': active=='todo'}" ng-click="setActive('todo')"><a>未对账</a></li>
  486. <li ng-class="{'active': active=='end'}" ng-click="setActive('end')"><a>已作废(<em ng-class="{'color-black': !unread.cancelled }" ng-bind="unread.cancelled || 0"></em>)</a></li>
  487. </ul>
  488. </div>
  489. <div class="screen check-filter">
  490. <div class="radio-block date-radio" style="width: 33%">
  491. 时间:
  492. <label class="com-check-radio">
  493. <input type="radio" id="oneMonth" name="date" ng-click="changeDateZone(1);condition.$open=false" checked>
  494. <label for="oneMonth"></label>
  495. 30天
  496. </label>
  497. <label class="com-check-radio">
  498. <input type="radio" id="threeMonth" name="date" ng-click="changeDateZone(3);condition.$open=false">
  499. <label for="threeMonth"></label>
  500. 90天
  501. </label>
  502. <label class="com-check-radio">
  503. <input type="radio" id="sixMonth" name="date" ng-click="changeDateZone(6);condition.$open=false">
  504. <label for="sixMonth"></label>
  505. 180天
  506. </label>
  507. <label class="com-check-radio">
  508. <input type="radio" id="autoMonth" name="date" ng-click="condition.$open=!condition.$open;changeDateZone(-1)">
  509. <label for="autoMonth"></label>
  510. 自定义
  511. </label>
  512. </div>
  513. <div class="sreach fr">
  514. <div ng-show="condition.$open" class="date fl">
  515. <div class="data-input">
  516. <input type="text" ng-model="condition.dateFrom"
  517. class="form-control select-adder" placeholder="起始时间"
  518. datepicker-popup="yyyy-MM-dd"
  519. is-open="condition.$fromOpened"
  520. max-date="condition.dateTo" current-text="今天" clear-text="清除" close-text="关闭"
  521. ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
  522. datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
  523. style="width: 130px"
  524. />
  525. <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
  526. </div>
  527. <em>–</em>
  528. <div class="data-input">
  529. <input type="text" ng-model="condition.dateTo"
  530. class="form-control select-adder" placeholder="结束时间"
  531. datepicker-popup="yyyy-MM-dd"
  532. is-open="condition.$toOpened"
  533. min-date="condition.dateFrom" current-text="今天" clear-text="清除" close-text="关闭"
  534. ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
  535. datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
  536. style="width: 130px"
  537. />
  538. <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
  539. </div>
  540. </div>
  541. <div class="sreach-input fr">
  542. <input type="search" placeholder="单据编号/客户名称/物料名称" class="form-control" ng-model="keyword" ng-search="onSearch()"/>
  543. <a class="seek" href="javascript:void(0)" ng-click="onSearch()">搜索</a>
  544. </div>
  545. </div>
  546. </div>
  547. <table class="order-table block" ng-table="tableParams">
  548. <thead>
  549. <tr class="header">
  550. <th width="230">对账期间</th>
  551. <th width="180">对账总额</th>
  552. <th width="180">明细条目</th>
  553. <th width="100">商品总数</th>
  554. <th width="100">对账结果</th>
  555. <th width="100">操作</th>
  556. </tr>
  557. </thead>
  558. <tbody ng-repeat="check in $data">
  559. <tr class="order-bd order-hdt">
  560. <td colspan="6" style="text-align: left">
  561. <a href="javascript:void(0)" ng-if="!isUnread(check.id)" class="circle-icon">
  562. 已读
  563. </a>
  564. <a href="javascript:void(0)" ng-if="isUnread(check.id)" class="no-circle-icon">
  565. 未读
  566. </a>
  567. <span class="text-num text-bold;" style="font-weight:bold" title="录单时间">日期:{{::check.recordDate | date:'MM月dd日 HH:mm'}}</span>
  568. &nbsp;&nbsp;&nbsp;
  569. <span>
  570. <!--<i class="fa fa-star" ng-class="{'text-default':check.status==201}"></i>-->
  571. <img src="static/img/user/images/shop_home.png" style="margin-right: 5px">{{::check.custName}}</span>
  572. <span style="margin-left: 100px;">单据编号:</span>
  573. <span class="text-num"><a ui-sref="fa_apCheck_detail({id:check.id})" title="点击查看详情" ng-click="setOrdersRead(check.id)" style="color: #5078cb">{{::check.code}}</a></span>
  574. </td>
  575. </tr>
  576. <tr class="order-bd" style="padding: 15px 0 ">
  577. <td class="first info" colspan="1" style="text-align: left">
  578. <div class="static">
  579. <p><span class="f14 text-num">{{::check.beginDate | date:'yyyy/MM/dd'}} - {{::check.endDate | date:'yyyy/MM/dd'}}</span></p>
  580. </div>
  581. </td>
  582. <td>
  583. <p>
  584. <strong class="text-num">{{::(isUser?'-':(check.checkAmount | number:2))}}</strong>
  585. <span ng-if="!isUser" class="text-number">{{::check.currency}}</span>
  586. </p>
  587. </td>
  588. <td>
  589. <p>
  590. <strong class="text-num">{{::check.items.length}}</strong> 条<br>
  591. </p>
  592. </td>
  593. <td>
  594. <p>
  595. <strong class="text-num">{{getTotalProd(check) | number}}</strong> <i class="fa fa-cubes"></i>
  596. </p>
  597. </td>
  598. <td class="status">
  599. <div ng-if="check.checkStatus == '未对账'" class="text-center text-muted f14"><br>未对账!</div>
  600. <div></div>
  601. <div ng-if="check.checkStatus == '已确认'" class="text-center text-muted f14">
  602. <br> <i class="fa fa-check-square-o"></i> 已确认
  603. </div>
  604. <div ng-if="check.checkStatus == '不同意'" class="text-center text-muted f14">
  605. <br> <i class="fa fa-check-square-o"></i> 不同意
  606. </div>
  607. <div ng-if="check.checkStatus == '已作废'" class="text-center text-muted f14">
  608. <br> <i class="fa fa-check-square-o"></i> 已作废
  609. </div>
  610. </td>
  611. <td>
  612. <div ng-hide="check.status" class="block">
  613. <span class="text-trans error">未提交</span>
  614. </div>
  615. <div ng-show="check.status" class="block">
  616. <span class="text-trans success">已提交</span>
  617. </div>
  618. <div class="" style="margin-top: 33px;margin-right: 20px;">
  619. <a ng-click="print(check)" class="pull-right" title="打印{{check.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !check.print, 'text-muted': check.print}"><i class="fa fa-print fa-lg"></i>&nbsp;打印</a>
  620. </div>
  621. <!-- <a ui-sref="fa.apCheck_detail({id:check.id})" class="operate operate-undo text-center"
  622. target="_blank">查看详情</a> -->
  623. </td>
  624. </tr>
  625. </tbody>
  626. <tbody ng-if="tableParams.total() == 0">
  627. <tr>
  628. <td colspan="6">
  629. <div id="empty">
  630. <div class="left_img">
  631. <a><img src="static/img/all/empty-cart.png"></a>
  632. <a>B2B 商务</a>
  633. </div>
  634. <div class="right_link">
  635. <p ng-if="active != 'all'">暂无对账信息!</p>
  636. <p ng-if="active == 'all'">您还未生成对账单,请立即新增对账!</p>
  637. <a ng-if="active == 'all'" ui-sref="fa_apCheckList"><i class="fa fa-plus-square fa-fw"></i> 新增对账单</a>
  638. </div>
  639. </div>
  640. </td>
  641. </tr>
  642. </tbody>
  643. </table>
  644. <div ng-if="infoCommon.totalElement > 0" class="text-mns text-right" ng-class="infoCommon.totalElement >= 20 ? '': 'Boom18'">
  645. 显示&nbsp;{{(infoCommon .page - 1 ) * infoCommon.size + 1}}-{{infoCommon.all >= 20 ? infoCommon.page * infoCommon.size: (infoCommon.page - 1 ) * infoCommon.size + infoCommon.all}}&nbsp;条,共&nbsp;{{infoCommon.totalElement}}&nbsp;条
  646. </div>
  647. </div>