|
@@ -0,0 +1,231 @@
|
|
|
|
|
+<div class="loading" ng-class="{'in': loading}">
|
|
|
|
|
+ <i></i>
|
|
|
|
|
+</div>
|
|
|
|
|
+<div class="pane base-info">
|
|
|
|
|
+ <div class="pane-header f16">
|
|
|
|
|
+ 采购单<a ng-click="print(order)" class="pull-right text-simple"><i
|
|
|
|
|
+ class="fa fa-print fa-fw"></i>打印</a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pane-body">
|
|
|
|
|
+ <div class="headerline">
|
|
|
|
|
+ <span class="index">1</span> <span class="content">采购资料</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">采购单号</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.code"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">日期</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.date | date:'yyyy-MM-dd'"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
|
+ <span class="title">客户</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.enterprise.enName"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">采购类型</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.type"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">录单人</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.recorder"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">审批人</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.auditor"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">采购员</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.user.userName"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="headerline">
|
|
|
|
|
+ <span class="index">2</span> <span class="content">交易信息</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">币别</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.currency"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">汇率</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.rate"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
|
+ <span class="title">付款方式</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.payments"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-3">
|
|
|
|
|
+ <span class="title">金额</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.total"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-9">
|
|
|
|
|
+ <span class="title">交货地址</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.shipAddress"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="row row-sm item">
|
|
|
|
|
+ <div class="col-xs-12">
|
|
|
|
|
+ <span class="title">备注</span>
|
|
|
|
|
+ <div class="content" ng-bind="::order.remark"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="headerline">
|
|
|
|
|
+ <span class="index">3</span> <span class="content">商品清单</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="block">
|
|
|
|
|
+ <table class="block table table-default table-striped table-hover">
|
|
|
|
|
+ <thead>
|
|
|
|
|
+ <tr class="header">
|
|
|
|
|
+ <th width="50" class="br-r">行号</th>
|
|
|
|
|
+ <th>商品</th>
|
|
|
|
|
+ <th width="80">单价</th>
|
|
|
|
|
+ <th width="100">数量</th>
|
|
|
|
|
+ <th width="120">交货日期</th>
|
|
|
|
|
+ <th width="180">回复状态</th>
|
|
|
|
|
+ <th width="100">操作</th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </thead>
|
|
|
|
|
+ <tbody>
|
|
|
|
|
+ <tr ng-repeat="item in order.orderItems track by item.id">
|
|
|
|
|
+ <td class="text-center text-num text-bold f-16 text-success br-r">
|
|
|
|
|
+ <span ng-bind="::item.number"></span>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ <div class="text-num text-bold">
|
|
|
|
|
+ <span ng-bind="::item.product.code"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span ng-bind="::item.product.title"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-muted" ng-bind="::item.product.spec"></div>
|
|
|
|
|
+ <div class="text-muted text-bold" ng-if="item.vendspec"><span ng-bind="::item.vendspec"></span></div>
|
|
|
|
|
+ <div class="text-bold text-inverse" ng-if="item.factory">送货工厂:<span ng-bind="::item.factory"></span></div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center">
|
|
|
|
|
+ <div class="text-num" ng-bind="::item.price | number:6"></div>
|
|
|
|
|
+ <div class="text-muted">税率:{{::item.taxrate || 0}}%</div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center">
|
|
|
|
|
+ <div class="text-num" ng-bind="::item.qty"></div>
|
|
|
|
|
+ <div class="text-muted" ng-bind="::item.product.unit"></div>
|
|
|
|
|
+ <div style="margin: 0 auto" ng-if="item.$editing">
|
|
|
|
|
+ <input type="text" ng-model="item.reply.qty" min="0" max="{{item.qty}}"
|
|
|
|
|
+ ng-init="item.reply.qty=item.qty-item.replyQty"
|
|
|
|
|
+ class="form-control input-xs" placeholder="0~{{item.qty-item.replyQty}}">
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center">
|
|
|
|
|
+ <div class="text-num"
|
|
|
|
|
+ ng-bind="::item.delivery | date:'yyyy-MM-dd'"></div> <br>
|
|
|
|
|
+ <div style="margin: 0 auto"
|
|
|
|
|
+ class="input-group input-group-xs input-trigger"
|
|
|
|
|
+ ng-if="item.$editing">
|
|
|
|
|
+ <input type="text" ng-model="item.reply.delivery"
|
|
|
|
|
+ ng-init="item.reply.delivery=parseDate(item.delivery)"
|
|
|
|
|
+ class="form-control" placeholder="回复交期"
|
|
|
|
|
+ datepicker-popup="yyyy-MM-dd" is-open="item.$opened"
|
|
|
|
|
+ min-date="order.date" ng-required="true" current-text="今天"
|
|
|
|
|
+ clear-text="清除" close-text="关闭"
|
|
|
|
|
+ datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
|
|
|
|
|
+ ng-focus="openDatePicker($event, item, '$opened')"> <span
|
|
|
|
|
+ class="input-group-btn">
|
|
|
|
|
+ <button type="button" class="btn btn-default"
|
|
|
|
|
+ ng-click="openDatePicker($event, item, '$opened')">
|
|
|
|
|
+ <i class="fa fa-calendar"></i>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td>
|
|
|
|
|
+ <div ng-show="!item.$editing">
|
|
|
|
|
+ <div ng-if="!item.replyQty" class="text-muted text-center">未回复</div>
|
|
|
|
|
+ <div ng-if="item.replyQty > 0 && item.replyQty < item.qty">
|
|
|
|
|
+ <div class="progress progress-sm">
|
|
|
|
|
+ <div class="progress-bar progress-bar-success"
|
|
|
|
|
+ ng-style="{'width': 100*item.replyQty/item.qty + '%'}">
|
|
|
|
|
+ <span class="sr-only"></span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ 已回复 <span class="text-default">{{::item.replyQty}}</span> / <span>{{::item.qty}}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div ng-if="item.replyQty > 0" class="dropdown"
|
|
|
|
|
+ ng-class="{'text-center': item.replyQty>=item.qty}">
|
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
|
+ class="dropdown-toggle text-default"
|
|
|
|
|
+ ng-mouseover="getReply(item)">回复历史<i
|
|
|
|
|
+ class="fa fa-fw fa-angle-down"></i></a>
|
|
|
|
|
+ <div class="dropdown-menu pane" style="width: 270px;">
|
|
|
|
|
+ <div class="pane-body">
|
|
|
|
|
+ <ul class="list-unstyled list-menu">
|
|
|
|
|
+ <li ng-repeat="reply in ::item.replies">
|
|
|
|
|
+ <div class="row row-sm"
|
|
|
|
|
+ ng-class="{'text-inverse': $index==0}">
|
|
|
|
|
+ <div class="col-xs-6">
|
|
|
|
|
+ <span ng-if="reply.qty < 0"> 撤销</span>
|
|
|
|
|
+ 数量 {{::reply.qty}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="col-xs-6">交期{{::reply.delivery |
|
|
|
|
|
+ date:'yyyy-MM-dd'}}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="text-muted">{{::reply.recorder}}{{::reply.date
|
|
|
|
|
+ | date:'yyyy-MM-dd HH:mm:ss'}}回复</div>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="margin: 0 auto" ng-if="item.$editing">
|
|
|
|
|
+ <br> <br> <input type="text"
|
|
|
|
|
+ ng-model="item.reply.remark" class="form-control input-xs"
|
|
|
|
|
+ placeholder="回复备注" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div ng-if="item.acceptQty" class="text-success text-center text-bold f14">
|
|
|
|
|
+ 客户验收:{{::item.acceptQty}}{{::item.product.unit}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div ng-if="item.returnQty" class="text-error text-center text-bold f14">
|
|
|
|
|
+ 客户验退:{{::item.returnQty}}{{::item.product.unit}}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="text-center">
|
|
|
|
|
+ <div ng-if="item.replyQty>=item.qty" class="block">
|
|
|
|
|
+ <span class="text-trans success">已回复</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div ng-if="item.end" class="block">
|
|
|
|
|
+ <span class="text-trans warning">已结案</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ ng-if="(!item.replyQty || item.replyQty<=item.qty) && !item.end">
|
|
|
|
|
+ <br ng-if="item.replyQty>=item.qty">
|
|
|
|
|
+ <br ng-if="item.replyQty>=item.qty">
|
|
|
|
|
+ <div ng-show="!item.$editing">
|
|
|
|
|
+ <a ng-click="item.$editing=!item.$editing">回复</a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div ng-if="item.$editing">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <a ng-click="item.$editing=!item.$editing">取消</a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <br>
|
|
|
|
|
+ <div class="text-left">
|
|
|
|
|
+ <a ng-click="onReplyClick(item)" class="text-inverse">
|
|
|
|
|
+ <i class="fa fa-arrow-up"></i> 确认回复
|
|
|
|
|
+ </a>
|
|
|
|
|
+ <br>
|
|
|
|
|
+ <a ng-click="onReplyClick(item, -1)" class="text-muted" title="减去已回复数量">
|
|
|
|
|
+ <i class="fa fa-arrow-down"></i> 撤销回复</a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </tbody>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</div>
|