order.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. <style>
  2. .condition .more.open {
  3. margin-top: 10px;
  4. height: 36px;
  5. opacity: 1;
  6. }
  7. .condition .more .form-group {
  8. /*margin-bottom: 10px;*/
  9. }
  10. .order-table .header>th {
  11. height: 38px;
  12. text-align: center;
  13. background: #f5f5f5;
  14. border-top: 1px solid #e8e8e8;
  15. border-bottom: 1px solid #e8e8e8;
  16. }
  17. .order-table .sep-row {
  18. height: 10px;
  19. }
  20. .order-table .selector {
  21. vertical-align: middle;
  22. margin: 0 0 2px 0;
  23. }
  24. .toolbar label {
  25. margin-right: 10px;
  26. margin-bottom: 0;
  27. }
  28. .toolbar .select_all {
  29. margin: 0 6px 0 10px;
  30. line-height: 20px;
  31. }
  32. .toolbar .btn {
  33. -moz-border-radius: 2px;
  34. margin-right: 5px;
  35. border: 1px solid #dcdcdc;
  36. border-radius: 2px;
  37. -webkit-border-radius: 2px;
  38. }
  39. .order-table .order-hd {
  40. background: #f5f5f5;
  41. height: 40px;
  42. line-height: 40px;
  43. }
  44. .order-table .order-hd td.first {
  45. padding-left: 20px;
  46. }
  47. .order-table .order-hd .order-main span {
  48. margin-right: 8px;
  49. }
  50. .order-table .order-hd .order-code {
  51. font-style: normal;
  52. font-family: verdana;
  53. }
  54. .order-table .order-hd .order-sum {
  55. padding: 0 5px;
  56. }
  57. .order-table>tbody {
  58. border: 1px solid transparent;
  59. }
  60. .order-table>tbody:hover {
  61. border-color: #d32526;
  62. border-width: 2px;
  63. }
  64. .order-table .operates {
  65. display: none;
  66. }
  67. .order-table .operates i {
  68. padding: 0 2px;
  69. }
  70. .order-table>tbody:hover .operates {
  71. display: block;
  72. }
  73. .order-table>tbody:hover .operates-status {
  74. display: none;
  75. }
  76. .order-table .order-bd {
  77. border-bottom: 1px solid #e6e6e6;
  78. }
  79. .order-table .order-bd>td {
  80. padding: 10px 5px;
  81. vertical-align: top;
  82. position: relative;
  83. }
  84. .order-table .order-bd .product {
  85. padding-left: 20px;
  86. }
  87. .order-table .order-bd .order-number {
  88. position: absolute;
  89. top: -1px;
  90. left: -1px;
  91. width: 20px;
  92. height: 20px;
  93. line-height: 20px;
  94. text-align: center;
  95. background: #f5f5f5;
  96. font-weight: 500;
  97. border: solid 1px #d5d5d5;
  98. border-radius: 0 0 10px 0;
  99. }
  100. .order-table .order-bd .order-number.key {
  101. background: #56a022;
  102. color: #ffffff;
  103. }
  104. .unPrinted {
  105. color: #56a022;
  106. }
  107. .info-container .info:hover {
  108. color: #CC3333;
  109. }
  110. .order-table{
  111. background: #fff;
  112. }
  113. .menu .new-dot{
  114. width: 20px;
  115. height: 20px;
  116. line-height: 20px;
  117. font-size: 12px;
  118. color: #fff;
  119. font-weight: inherit;
  120. top: -2px;
  121. }
  122. .order-table .product div.text-over {
  123. width: 340px;
  124. white-space: nowrap;
  125. text-overflow: ellipsis;
  126. overflow: hidden;
  127. }
  128. .order-table .product div.text-flow b{
  129. float: left;
  130. }
  131. .order-table .product div.text-flow span{
  132. float: left;
  133. display: inline-block;
  134. width: 290px;
  135. white-space: nowrap;
  136. text-overflow: ellipsis;
  137. overflow: hidden;
  138. }
  139. .order-table .product div.text-overflow span{
  140. float: left;
  141. display: inline-block;
  142. width: 340px;
  143. white-space: nowrap;
  144. text-overflow: ellipsis;
  145. overflow: hidden;
  146. }
  147. </style>
  148. <link rel="stylesheet" href="static/css/public.css">
  149. <div class="block" id="public">
  150. <div class="loading in" ng-class="{'in': loading}">
  151. <!--<i></i>-->
  152. <div class="wrap">
  153. <div class="outer"></div>
  154. </div>
  155. </div>
  156. <div class="pub-com_head">
  157. <span>客户采购订单</span>
  158. <div class="p-right">
  159. <a href="#" ng-click="exportXls()"
  160. target="_self" class="text-simple" title="导出Excel表格"><i class="fa fa-file-text fa-fw"></i>导出</a>
  161. </div>
  162. </div>
  163. <div class="menu condition block">
  164. <div class="row">
  165. <div class="col-xs-4">
  166. <div class="btn-group btn-group-sm btn-group-justified">
  167. <div class="btn-group btn-group-sm">
  168. <button type="button" class="btn btn-default btn-line"
  169. ng-class="{'btn-info':active=='all'}" ng-click="setActive('all')">全部<b class="new-dot" ng-if="unread.all > 0">{{unread.all>99?'99+':unread.all}}</b></button>
  170. </div>
  171. <div class="btn-group btn-group-sm">
  172. <button type="button" class="btn btn-default btn-line"
  173. ng-class="{'btn-info':active=='done'}" ng-click="setActive('done');setOrdersReadByState()">已回复<b class="new-dot" ng-if="unread.replied > 0">{{unread.replied>99?'99+':unread.replied}}</b></button>
  174. </div>
  175. <div class="btn-group btn-group-sm">
  176. <button type="button" class="btn btn-default btn-line"
  177. ng-class="{'btn-info':active=='todo'}" ng-click="setActive('todo')">待回复<b class="new-dot" ng-if="unread.notReply > 0">{{unread.notReply>99?'99+':unread.notReply}}</b></button>
  178. </div>
  179. <div class="btn-group btn-group-sm">
  180. <button type="button" class="btn btn-default btn-line"
  181. ng-class="{'btn-info':active=='received'}" ng-click="setActive('received')">已收货</button>
  182. </div>
  183. <div class="btn-group btn-group-sm">
  184. <button type="button" class="btn btn-default btn-line"
  185. ng-class="{'btn-info':active=='waiting'}" ng-click="setActive('waiting')">待交货</button>
  186. </div>
  187. <div class="btn-group btn-group-sm">
  188. <button type="button" class="btn btn-default btn-line"
  189. ng-class="{'btn-info':active=='end'}" ng-click="setActive('end')">已结案</button>
  190. </div>
  191. </div>
  192. </div>
  193. <!--<div class="col-xs-5">
  194. <div class="search">
  195. <div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
  196. <input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入商品、客户名称或单据流水号搜索" />
  197. <div class="search-advance text-link" ng-class="{'active': searchAdvance}" dropdown-toggle>高级搜索</div>
  198. <div id="searchContainer" class="dropdown-menu">
  199. &lt;!&ndash; <div class="block">
  200. <form action="" class="form-horizontal">
  201. <div class="form-group">
  202. <label for="" class="col-xs-3 text-right control-label">关键词:</label>
  203. <div class="col-xs-6"><input type="text" class="form-control" /></div>
  204. </div>
  205. <div class="form-group">
  206. <label for="" class="col-xs-3 text-right control-label">交货日期:</label>
  207. <div class="col-xs-6"><input type="text" class="form-control" /></div>
  208. </div>
  209. <div class="form-group">
  210. <label for="orderDate" class="col-xs-3 text-right control-label">订单日期:</label>
  211. <div class="col-xs-6"><input id="orderDate" type="text" class="form-control" /></div>
  212. </div>
  213. <div class="form-group">
  214. <label for="" class="col-xs-3 text-right control-label">单价:</label>
  215. <div class="col-xs-6"><input type="text" class="form-control" /></div>
  216. </div>
  217. <div class="form-group">
  218. <label for="" class="col-xs-3 text-right control-label">
  219. 金额:
  220. </label>
  221. <div class="col-xs-6"><input type="text" class="form-control" /></div>
  222. </div>
  223. <div class="form-group">
  224. <div for="" class="col-xs-12 text-right">
  225. <button class="btn btn-info btn-xs">确定</button>
  226. </div>
  227. </div>
  228. </form>
  229. </div> &ndash;&gt;
  230. </div>
  231. <span class="form-control-feedback text-simple"><i class="fa fa-search"></i></span>
  232. </div>
  233. </div>
  234. </div>
  235. <div class="col-xs-1">
  236. <div class="text-default f14 total">
  237. 共 <span ng-bind="tableParams.total()" class="text-num"></span>
  238. </div>
  239. </div>
  240. <div class="col-xs-2 toggle">
  241. <a ng-click="condition.$open=!condition.$open" class="text-simple"><span ng-bind="condition.$open ? '简化筛选条件' : '更多筛选条件'"></span><i class="fa fa-fw" ng-class="{'fa-angle-up': condition.$open, 'fa-angle-down': !condition.$open}"></i></a>
  242. </div>-->
  243. </div>
  244. </div>
  245. <!--<div class="height10">&nbsp;</div>-->
  246. <div class="condition block">
  247. <div class="search-bg condition block" style="padding: 10px 15px;">
  248. <div class="row">
  249. <div id="topSearch" style="float: left">
  250. <a ng-click="changeDateZone(1);condition.$open=false" title="最近一个月" ng-class="{'active':condition.dateZone=='1'}">最近一个月</a>
  251. <a ng-click="changeDateZone(3);condition.$open=false" title="最近三个月" ng-class="{'active':condition.dateZone=='3'}">最近三个月</a>
  252. <a ng-click="changeDateZone(6);condition.$open=false" title="最近六个月" ng-class="{'active':condition.dateZone=='6'}">最近六个月</a>
  253. <a ng-click="condition.$open=!condition.$open;changeDateZone(-1)" title="自定义" ng-class="{'active':condition.dateZone=='-1'}" >自定义</a>
  254. </div>
  255. <div class="col-xs-6" style="float: right;">
  256. <div class="search">
  257. <div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick"
  258. on-toggle="searchAdvance=open">
  259. <input type="search" class="form-control input-sm" ng-model="keyword"
  260. ng-search="onSearch(keyword)" placeholder="输入单据编号、客户名称、物料名称搜索" style="width: 100%"/>
  261. <a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
  262. </div>
  263. </div>
  264. </div>
  265. </div>
  266. <div class="more-list more" ng-class="{'open': condition.$open}">
  267. <form class="form-inline">
  268. <div class="form-group ">
  269. <label>日期:</label>
  270. <div class="btn-group btn-menu" dropdown is-open="condition.$dateZoneOpen">
  271. <ul class="dropdown-menu">
  272. <li><a ng-click="changeDateZone(1)">一个月内</a></li>
  273. <li><a ng-click="changeDateZone(6)">半年内</a></li>
  274. <li><a ng-click="changeDateZone()">半年前</a></li>
  275. </ul>
  276. </div>
  277. <div class="form-group input-group input-group-xs input-trigger">
  278. <input type="text" ng-model="condition.dateFrom"
  279. class="form-control" placeholder="从"
  280. datepicker-popup="yyyy-MM-dd" is-open="condition.$fromOpened"
  281. ng-required="true" max-date = "condition.dateTo"
  282. current-text="今天" clear-text="清除" close-text="关闭"
  283. datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
  284. ng-focus="openFilterDatePicker($event, condition, '$fromOpened')">
  285. <span class="input-group-btn">
  286. <button type="button" class="btn btn-default"
  287. ng-click="openFilterDatePicker($event, condition, '$fromOpened')">
  288. <i class="fa fa-calendar"></i>
  289. </button>
  290. </span>
  291. </div>
  292. <div class="form-group input-group input-group-xs input-trigger">
  293. <input type="text" ng-model="condition.dateTo"
  294. class="form-control" placeholder="到"
  295. datepicker-popup="yyyy-MM-dd" is-open="condition.$toOpened"
  296. ng-required="true" min-date = "condition.dateFrom"
  297. current-text="今天" clear-text="清除" close-text="关闭"
  298. datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
  299. ng-focus="openFilterDatePicker($event, condition, '$toOpened')">
  300. <span class="input-group-btn">
  301. <button type="button" class="btn btn-default"
  302. ng-click="openFilterDatePicker($event, condition, '$toOpened')">
  303. <i class="fa fa-calendar"></i>
  304. </button>
  305. </span>
  306. </div>
  307. </div>
  308. </form>
  309. </div>
  310. </div>
  311. </div>
  312. <table class="order-table block" ng-table="tableParams">
  313. <thead>
  314. <tr class="header">
  315. <th width="400">产品</th>
  316. <th width="100">单价</th>
  317. <th width="100">数量</th>
  318. <th width="120">交货日期</th>
  319. <th width="180">单据状态</th>
  320. <th width="100">操作</th>
  321. </tr>
  322. <tr class="sep-row">
  323. <td colspan="6"></td>
  324. </tr>
  325. <tr class="toolbar toolbar-top">
  326. <td colspan="5">
  327. <div>
  328. <label><input type="checkbox" class="selector select_all"
  329. ng-model="checkboxes.checked" ng-click="checkAll()">全选</label> <a ng-if="active=='todo'" href="javascript:void(0)"
  330. class="btn btn-default btn-xs" ng-click="replyByBatch();setOrdersReadByBatch()" title="选中的单据按照客户需求的数量和交期默认回复">&nbsp;批量回复&nbsp;</a>
  331. <!--<div class="btn-group dropdown">
  332. <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-expanded="true">
  333. &nbsp;&nbsp;标记为&nbsp;&nbsp;<span class="caret"></span>&nbsp;
  334. </button>
  335. <ul class="dropdown-menu" role="menu">
  336. <li><a href="javascript:void(0)" ng-click="setDisplay('setRead')">已查看</a></li>
  337. <li><a href="javascript:void(0)" ng-click="setDisplay('setUnRead')">未查看</a></li>
  338. <li><a href="javascript:void(0)" ng-click="setDisplay('setTop')">置顶</a></li>
  339. </ul>
  340. </div>-->
  341. <span class="text-muted">
  342. &nbsp;&nbsp;<i class="fa fa-exclamation-triangle"></i> 批量回复是对选中的单据按照满足客户需求的数量和交期默认回复。
  343. </span>
  344. </div> <!-- 分页 -->
  345. </td>
  346. <td class="text-center">
  347. </td>
  348. </tr>
  349. <tr class="sep-row">
  350. <td colspan="6"></td>
  351. </tr>
  352. </thead>
  353. <tbody ng-if="tableParams.total() == 0">
  354. <tr>
  355. <td colspan="6">
  356. <div id="empty">
  357. <div class="left_img">
  358. <a href="http://www.usoftchina.com/" target="_blank" title="优软云首页"><img src="static/img/empty/uas_empty.png"></a>
  359. <a href="#/index" title="B2B商务首页">B2B 商务</a>
  360. </div>
  361. <div class="right_link">
  362. <p>暂无对应的采购订单</p>
  363. </div>
  364. </div>
  365. </td>
  366. </tr>
  367. <tr>
  368. <td colspan="6">
  369. <div id="empty_info">
  370. <div class="f16 text-center empty_title">
  371. <p>为什么我没有接收到客户的采购订单?</p>
  372. </div>
  373. <div class="f14 empty_explain">
  374. <div class="info">
  375. <p>1、您的客户还没有提交审核采购订单<br>
  376. 解决:与您的客户沟通确认单据是否已经审核(只有客户ERP中已经审核的单据才能接收到)</p>
  377. </div>
  378. <div class="info">
  379. <p>2、客户ERP中供应商信息有误<br>
  380. 解决:与您的客户沟通确认您的信息在客户的供应商资料中是否维护正确,尤其是企业UU号</p>
  381. </div>
  382. <div class="info">
  383. <p>3、您的客户正在使用旧版本的UAS商务平台<br>
  384. 解决:我们仍有部分用户在使用旧版本UAS商务平台系统,你可以用您的企业UU号和管理员个人UU号 <a href="http://www.usoftchina.com" class="text-bold text-link" title="http://www.usoftchina.com" target="_blank">登陆旧版本UAS商务平台</a></p>
  385. </div>
  386. </div>
  387. </div>
  388. </td>
  389. </tr>
  390. </tbody>
  391. <tbody ng-repeat="order in $data track by order.id">
  392. <tr class="order-hd" ng-dblclick="order.$collapsed=!order.$collapsed" ng-class="{'text-bold': order.display>0}">
  393. <td class="first" colspan="4">
  394. <div class="order-main">
  395. <span> <input type="checkbox" class="selector"
  396. ng-model="order.$selected" ng-click="checkOne(order)">
  397. </span>
  398. <a href="javascript:void(0)" ng-if="!order.display && !isUnread(order.id)" title="标记为未查看" ng-click="setDisplay('setUnRead', order.id)">
  399. <i class="fa fa-circle-thin"></i>
  400. </a>
  401. <a href="javascript:void(0)" ng-if="order.display==1 || isUnread(order.id)" title="标记为已查看" ng-click="setDisplay('setRead', order.id)">
  402. <i class="fa fa-circle" style="color: #f40;"></i>
  403. </a>
  404. <a href="javascript:void(0)" ng-if="order.display>1 || isUnread(order.id)" title="标记为已查看" ng-click="setDisplay('setRead', order.id)">
  405. <i class="fa fa-tags" style="color: #f40;"></i>
  406. </a>
  407. &nbsp;&nbsp;<span class="text-num text-bold"
  408. ng-bind="::order.date | date:'yyyy-MM-dd'"></span>
  409. <span ng-bind="::order.enterprise.enName"></span>
  410. <span>订单号:<a class="text-num order-detail" ng-bind="::order.code" ui-sref="sale.order_detail({id:order.id})" target="_self" title="查看详情" ng-click="setOrdersRead(order.id)"></a></span>
  411. </div>
  412. </td>
  413. <td ng-if="!isUser" colspan="1" class="order-sum">{{::order.currency}}: <span
  414. ng-bind="getOrderTotal(order.orderItems) | number : 2"
  415. class="text-num text-bold"></span>
  416. </td>
  417. <td ng-if="isUser" colspan="1" class="order-sum"></td>
  418. <td colspan="1" class="text-center">
  419. <span ng-if="order.print" class="label ng-scope operates-status" style="margin-right: 5px;background-color: #5D6C79">已打印</span>
  420. <span ng-if="!order.print" class="label ng-scope operates-status" style="margin-right: 5px;background-color: #CA3955">未打印</span>
  421. <div class="operates">
  422. <a ng-click="print(order);" title="打印{{order.print? '(已打印)':'(未打印)'}}" ng-class="{'unPrinted' : !order.print, 'text-muted': order.print}"><i
  423. class="fa fa-print fa-lg"></i></a> <a
  424. ng-click="order.$collapsed=!order.$collapsed" class="text-muted"
  425. title="收拢"><i class="fa fa-toggle-down fa-lg"></i></a>
  426. </div>
  427. </td>
  428. </tr>
  429. <tr class="order-bd" ng-repeat="item in order.orderItems track by item.id"
  430. ng-if="!order.$collapsed ">
  431. <td class="product">
  432. <div class="text-num order-number" ng-class="{'key': item.key&&order.$showAll}" title="第{{::item.number}}行">{{::item.number}}</div>
  433. <div class="text-num text-bold text-overflow" title="{{::item.product.code}}">
  434. <span ng-bind="::item.product.code"></span>
  435. </div>
  436. <div class="text-overflow" title="{{::item.product.title}}">
  437. <span ng-bind="::item.product.title"></span>
  438. </div>
  439. <div class="text-muted text-over"
  440. title="{{::item.product.spec}}"
  441. ng-bind="::item.product.spec"></div>
  442. <div class="text-bold text-inverse text-flow" ng-if="item.custPurchaseCode" ><b>客户采购单号:</b><div ng-bind="::item.custPurchaseCode"></div></div>
  443. <div class="text-bold text-inverse text-flow" ng-if="item.acceptCustName" ><b>收货客户:</b><div ng-bind="::item.acceptCustName"></div></div>
  444. <div class="text-bold text-inverse text-flow" ng-if="item.acceptCustAddress" ><b>客户收货地址:</b><div ng-bind="::item.acceptCustAddress"></div></div>
  445. <div class="text-muted text-bold text-overflow" ng-if="item.vendspec" title="{{item.vendspec}}"><span ng-bind="::item.vendspec"></span></div>
  446. <div class="text-bold text-inverse text-flow" ng-if="item.factory" title="{{item.factory}}"><b>送货工厂:</b><span ng-bind="::item.factory"></span></div>
  447. <div class="text-bold text-inverse text-flow" ng-if="item.remark" title="{{item.remark}}"><b>备注:</b><span ng-bind="::item.remark"></span></div>
  448. </td>
  449. <td class="text-center">
  450. <div ng-if="!isUser" class="text-num" ng-bind="::item.price | number:6"></div>
  451. <div class="text-muted">税率:{{::item.taxrate || 0}}%</div>
  452. </td>
  453. <td class="text-center">
  454. <div class="text-num" ng-bind="::item.qty"></div>
  455. <div class="text-muted" ng-bind="::item.product.unit"></div>
  456. <div style="margin: 0 auto" ng-if="item.$editing">
  457. <input type="number" ng-model="item.reply.qty" min="0"
  458. ng-init="item.reply.qty=item.qty-item.replyQty"
  459. class="form-control input-xs" placeholder="0~{{item.qty-item.replyQty}}">
  460. </div>
  461. </td>
  462. <td class="text-center br-l">
  463. <div class="text-num" ng-bind="::item.delivery | date:'yyyy-MM-dd'"></div>
  464. <br>
  465. <div style="margin: 0 auto"
  466. class="input-group input-group-xs input-trigger"
  467. ng-if="item.$editing">
  468. <input type="text" ng-model="item.reply.delivery" ng-init="item.reply.delivery= ''"
  469. class="form-control" placeholder="回复交期" readonly
  470. datepicker-popup="yyyy-MM-dd" is-open="item.$opened"
  471. min-date="nowdate" ng-required="true" current-text="今天"
  472. clear-text="清除" close-text="关闭"
  473. datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
  474. ng-click="openDatePicker($event, item, '$opened')"> <span
  475. class="input-group-btn">
  476. <button type="button" class="btn btn-default"
  477. ng-click="openDatePicker($event, item, '$opened')">
  478. <i class="fa fa-calendar"></i>
  479. </button>
  480. </span>
  481. </div>
  482. </td>
  483. <td class="br-l">
  484. <div ng-if="!item.$editing">
  485. <div ng-if="!item.replyQty" class="text-muted text-center">未回复</div>
  486. <div ng-if="item.replyQty > 0 && item.replyQty < item.qty">
  487. <!--<div class="progress progress-sm">
  488. <div class="progress-bar progress-bar-success"
  489. ng-style="{'width': 100*item.replyQty/item.qty + '%'}">
  490. <span class="sr-only"></span>
  491. </div>
  492. </div>
  493. 已回复 <span class="text-default">{{::item.replyQty}}</span> /
  494. <span>{{::item.qty}}</span>-->
  495. 已回复 <span class="text-default">{{::item.latestReplyQty}}</span>
  496. </div>
  497. <div ng-if="item.replyQty > 0" class="dropdown" ng-class="{'text-center': item.replyQty>=item.qty}">
  498. <a href="javascript:void(0);" class="dropdown-toggle text-default"
  499. ng-mouseover="getReply(item)">回复历史<i class="fa fa-fw fa-angle-down"></i></a>
  500. <div class="dropdown-menu pane" style="width: 270px;">
  501. <div class="pane-body">
  502. <ul class="list-unstyled list-menu">
  503. <li ng-repeat="reply in ::item.replies">
  504. <div class="row row-sm"
  505. ng-class="{'text-inverse': $index==0}">
  506. <div class="col-xs-6">
  507. <span ng-if="reply.qty < 0"> 撤销</span>
  508. 数量 {{::reply.qty}}
  509. </div>
  510. <div class="col-xs-6">交期{{::reply.delivery |
  511. date:'yyyy-MM-dd'}}</div>
  512. </div>
  513. <div class="text-muted">{{::reply.recorder}}&nbsp;&nbsp;{{::reply.date
  514. | date:'MM-dd HH:mm'}}&nbsp;回复</div>
  515. <div class="text-muted" ng-if="reply.remark != null">备注:{{::reply.remark}}</div>
  516. </li>
  517. </ul>
  518. </div>
  519. </div>
  520. </div>
  521. <div ng-if="item.acceptQty" class="text-success text-center text-bold f14">
  522. 客户验收:{{::item.acceptQty}}{{::item.product.unit}}
  523. </div>
  524. <div ng-if="item.returnQty" class="text-error text-center text-bold f14">
  525. 客户验退:{{::item.returnQty}}{{::item.product.unit}}
  526. </div>
  527. </div>
  528. <div style="margin: 0 auto" ng-if="item.$editing">
  529. <br><br><input type="text" ng-model="item.reply.remark" ng-init="item.reply.remark = ''"
  530. class="form-control input-xs" placeholder="回复备注" />
  531. </div>
  532. </td>
  533. <td class="text-center br-l">
  534. <div ng-if="item.replyQty>=item.qty && !item.$editing" class="block">
  535. <span class="text-trans success">已回复</span>
  536. </div>
  537. <div ng-if="item.end" class="block">
  538. <span class="text-trans warning">已结案</span>
  539. </div>
  540. <div ng-if="!item.end">
  541. <br ng-if="item.replyQty>=item.qty">
  542. <br ng-if="item.replyQty>=item.qty">
  543. <div ng-show="!item.$editing">
  544. <a ng-click="item.$editing=true; getToken()" ng-if="item.acceptQty - item.returnQty < item.qty">回复</a>
  545. </div>
  546. <div ng-if="item.$editing">
  547. <div>
  548. <a ng-click="item.$editing=false">取消</a>
  549. </div>
  550. <br>
  551. <div class="text-left">
  552. <a ng-click="onReplyClick(item);setOrdersRead(order.id)" class="text-inverse">
  553. <i class="fa fa-arrow-up"></i> 确认回复
  554. </a>
  555. <br>
  556. <a ng-if="item.replyQty" ng-click="onReplyClick(item, -1);setOrdersRead(order.id)" class="text-muted" title="减去已回复数量">
  557. <i class="fa fa-arrow-down"></i> 撤销回复</a>
  558. </div>
  559. </div>
  560. </div>
  561. </td>
  562. </tr>
  563. <!-- <tr ng-if="!order.$collapsed && searchFilterXls.keyword" style="cursor: pointer;padding: 10px 0;">
  564. <td colspan="6" class="text-center text-simple" ng-if="!order.$showAll" style="cursor: pointer;padding: 10px 0;" ng-click="order.$showAll = true">
  565. 展开所有明细(包括不含关键词的) <i class="fa fa-angle-down"></i>
  566. </td>
  567. <td colspan="6" class="text-center text-simple" ng-if="order.$showAll" style="cursor: pointer;padding: 10px 0;" ng-click="order.$showAll = true">
  568. 收起不含关键词的明细 <i class="fa fa-angle-up"></i>
  569. </td>
  570. </tr> -->
  571. </tbody>
  572. </table>
  573. </div>