|
|
@@ -0,0 +1,429 @@
|
|
|
+<style>
|
|
|
+ .block .product div.text-over {
|
|
|
+ width: 340px;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+ .block .product div.text-flow b{
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+ .block .product div.text-flow span{
|
|
|
+ float: left;
|
|
|
+ display: inline-block;
|
|
|
+ width: 290px;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+ .block .product div.text-overflow span{
|
|
|
+ float: left;
|
|
|
+ display: inline-block;
|
|
|
+ width: 340px;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<style>
|
|
|
+ #order-detail-list {
|
|
|
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
|
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
|
+ -o-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
|
+ -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
|
|
|
+ border-radius: 5px;
|
|
|
+ /*min-height: 1066px;*/
|
|
|
+ background: #fff;
|
|
|
+ width: 1026px;
|
|
|
+ font-size: 14px;
|
|
|
+ float:right;
|
|
|
+ }
|
|
|
+ .pub-com_head, .com_head {
|
|
|
+ width: 100%;
|
|
|
+ height: 35px;
|
|
|
+ line-height: 35px;
|
|
|
+ background: #5078cb;
|
|
|
+ border-radius: 5px 5px 0 0;
|
|
|
+ /* background: url(../img/approvalFlow/comm_bg01.png) no-repeat left; */
|
|
|
+ /* background-color: #f5f5f5; */
|
|
|
+ /* background-size: 100% 100%; */
|
|
|
+ }
|
|
|
+ .pub-com_head span, .com_head span {
|
|
|
+ margin-left: 10px;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ .pub-com_head .p-right {
|
|
|
+ float: right;
|
|
|
+ }
|
|
|
+ .pane .pane-body {
|
|
|
+ /*padding: 15px!important;*/
|
|
|
+ }
|
|
|
+ com_title01, .title-div {
|
|
|
+ /*border-bottom: 1px dashed #3f84f6 !important;*/
|
|
|
+ }
|
|
|
+ .title-div {
|
|
|
+ color: #5078cb;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 600;
|
|
|
+ /*padding-left: 20px !important;*/
|
|
|
+ height: 50px;
|
|
|
+ padding-top: 11px;
|
|
|
+ position: relative;
|
|
|
+ padding-left:18px;
|
|
|
+ }
|
|
|
+ .f14 {
|
|
|
+ font-size: 14px !important;
|
|
|
+ }
|
|
|
+ #order-detail-list .row {
|
|
|
+ width: 96%;
|
|
|
+ margin: 0 auto;
|
|
|
+ line-height: 30px;
|
|
|
+ }
|
|
|
+ .base-info .item {
|
|
|
+ line-height: 26px;
|
|
|
+ /* border-bottom: 1px dotted #e8e8e8; */
|
|
|
+ padding: 5px 0;
|
|
|
+ }
|
|
|
+ #order-detail-list .title {
|
|
|
+ font-weight: inherit;
|
|
|
+ }
|
|
|
+ .base-info .title {
|
|
|
+ float: left;
|
|
|
+ width: 92px;
|
|
|
+ color: #333;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ #order-detail-list .content {
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+ .base-info .content {
|
|
|
+ float: left;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .title-div .end {
|
|
|
+ position: absolute;
|
|
|
+ top: 10px;
|
|
|
+ right: 0;
|
|
|
+ line-height: 24px;
|
|
|
+ padding-left: 15px;
|
|
|
+ background: #fff;
|
|
|
+ z-index: 2;
|
|
|
+ }
|
|
|
+ .block {
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 5px;
|
|
|
+ width: 100%;
|
|
|
+ position: relative;
|
|
|
+ margin-bottom: 0px;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default .header {
|
|
|
+ box-shadow: none;
|
|
|
+ border: none;
|
|
|
+ background: none;
|
|
|
+ background: #f9f9f9;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default .header th {
|
|
|
+ display: inline-block;
|
|
|
+ border-bottom: none;
|
|
|
+ font-weight: normal;
|
|
|
+ color: #999;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default th, #order-detail-list .table-default td {
|
|
|
+ /*border-top: #ddd 1px dotted;*/
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default tbody tr {
|
|
|
+ background: none;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default tbody tr td {
|
|
|
+ vertical-align: middle;
|
|
|
+ color: #323232;
|
|
|
+ min-height: 140px;
|
|
|
+ position: relative;
|
|
|
+ padding-top: 25px
|
|
|
+ }
|
|
|
+ [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide:not(.ng-hide-animate) {
|
|
|
+ display: none !important;
|
|
|
+ }
|
|
|
+ .text-bold {
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text-num {
|
|
|
+ font-style: normal;
|
|
|
+ word-break: break-all;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .text-muted {
|
|
|
+ color: #333;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ .bottomB {
|
|
|
+ border-bottom: 2px solid #f5f5f5;
|
|
|
+ padding: 15px 30px 15px 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title-div .f14{
|
|
|
+ border-left: 5px solid #5078cb;padding-left: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-number {
|
|
|
+ position: absolute;
|
|
|
+ top: -1px;
|
|
|
+ left: -1px;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ line-height: 20px;
|
|
|
+ text-align: center;
|
|
|
+ background: #f9f9f9;
|
|
|
+ font-weight: 500;
|
|
|
+ border: solid 1px #d5d5d5;
|
|
|
+ border-radius: 0 0 10px 0;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default tbody tr td.product {
|
|
|
+ padding-left: 30px;
|
|
|
+ }
|
|
|
+ #order-detail-list .table-default tbody tr td{
|
|
|
+ border-right: 1px solid #e8e8e8;
|
|
|
+ }
|
|
|
+ .text-trans {
|
|
|
+ top: -20px;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<!--<div class="loading" ng-class="{'in': loading}">
|
|
|
+ <i></i>
|
|
|
+</div>-->
|
|
|
+<div class="pane base-info" id="order-detail-list">
|
|
|
+ <div class="pub-com_head">
|
|
|
+ <span>采购单</span>
|
|
|
+ <div class="p-right">
|
|
|
+ <!-- <a ng-click="print(order)" class="pull-right text-simple"><i
|
|
|
+ class="fa fa-print fa-fw"></i>打印</a> -->
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="pane-body">
|
|
|
+ <div class="title-div" style="border-bottom: 1px dashed #3f84f6;">
|
|
|
+ <span class="f14">采购资料</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.receiveName"></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="title-div" style="border-bottom: 1px dashed #3f84f6;">
|
|
|
+ <span class="f14">交易信息</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 ng-if="!isUser" class="content" ng-bind="::order.total | number:2"></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-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-hide content" ng-bind="::order.remark"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="title-div" style="border-bottom: 1px dashed #3f84f6;">
|
|
|
+ <span class="f14">物料清单</span>
|
|
|
+ </div>
|
|
|
+ <div class="block">
|
|
|
+ <table class="block table table-default table-striped table-hover" style="margin-bottom: 0;">
|
|
|
+ <thead>
|
|
|
+ <tr class="header">
|
|
|
+ <th width="50">序号</th>
|
|
|
+ <th width="270">物料</th>
|
|
|
+ <th width="110">单价</th>
|
|
|
+ <th width="100">数量</th>
|
|
|
+ <th width="120">交货日期</th>
|
|
|
+ <th width="160">回复状态</th>
|
|
|
+ <th width="100"></th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ </table>
|
|
|
+ <table class="block table table-default table-striped table-hover" ng-class="{'scoroll':order.orderItems.length>10}">
|
|
|
+ <tbody>
|
|
|
+ <tr ng-repeat="item in order.orderItems track by item.id">
|
|
|
+ <td class="text-center text-num f-16 text-success " width="50">
|
|
|
+ <span ng-bind="::item.number"></span>
|
|
|
+ </td>
|
|
|
+ <td width="270" class="product">
|
|
|
+ <div class="text-num text-bold text-overflow" title="{{::item.product.code}}">
|
|
|
+ <span ng-bind="::item.product.code"></span>
|
|
|
+ </div>
|
|
|
+ <div class="text-overflow" title="{{::item.product.title}}">
|
|
|
+ <span ng-bind="::item.product.title"></span>
|
|
|
+ </div>
|
|
|
+ <div class="text-muted text-over" ng-bind="::item.product.spec" title="{{::item.product.spec}}"></div>
|
|
|
+ <div class="text-muted text-bold text-overflow" ng-if="item.vendspec" title="{{item.vendspec}}"><span ng-bind="::item.vendspec"></span></div>
|
|
|
+ <div class="text-bold text-inverse text-flow" ng-if="item.factory" title="{{item.factory}}"><b>送货工厂:</b><span ng-bind="::item.factory"></span></div>
|
|
|
+ <div class="text-bold text-inverse text-flow" ng-if="item.remark" title="{{item.remark}}"><b>备注:</b><span ng-bind="::item.remark"></span></div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center" width="110">
|
|
|
+ <div ng-if="!isUser" class="text-num" ng-bind="::item.price | number:6"></div>
|
|
|
+ <div class="text-muted">税率:{{::item.taxrate || 0}}%</div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center" width="100">
|
|
|
+ <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" width="120">
|
|
|
+ <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 width="160">
|
|
|
+ <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>
|
|
|
+ <div class="text-muted" ng-if="reply.remark != null">备注:{{::reply.remark}}</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" width="100">
|
|
|
+ <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>
|