|
|
@@ -0,0 +1,684 @@
|
|
|
+<style>
|
|
|
+ .order-table .header>th {
|
|
|
+ height: 38px;
|
|
|
+ text-align: center;
|
|
|
+ background: #f5f5f5;
|
|
|
+ border-top: 1px solid #e8e8e8;
|
|
|
+ border-bottom: 1px solid #e8e8e8;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .sep-row {
|
|
|
+ height: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .selector {
|
|
|
+ vertical-align: middle;
|
|
|
+ margin: 0 0 2px 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .toolbar label {
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .toolbar .select_all {
|
|
|
+ margin: 0 6px 0 10px;
|
|
|
+ line-height: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .toolbar .btn {
|
|
|
+ -moz-border-radius: 2px;
|
|
|
+ margin-right: 5px;
|
|
|
+ border: 1px solid #dcdcdc;
|
|
|
+ border-radius: 2px;
|
|
|
+ -webkit-border-radius: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-hd {
|
|
|
+ background: #f5f5f5;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-hd td.first {
|
|
|
+ padding-left: 20px;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-hd .order-main span {
|
|
|
+ margin-right: 8px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333;
|
|
|
+ font-weight: normal;
|
|
|
+ }
|
|
|
+ .order-table .order-hd .order-main span.text-num{
|
|
|
+ margin-left: 20px;
|
|
|
+ }
|
|
|
+ .order-table .order-hd .order-main span img{
|
|
|
+ margin: 0px 5px 0 11px;
|
|
|
+ vertical-align: sub;
|
|
|
+ }
|
|
|
+ .order-table .order-hd .order-main span a.text-num {
|
|
|
+ color: #3f84f6;
|
|
|
+ }
|
|
|
+ .dropdown>.dropdown-toggle.text-default {
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+ .dropdown>.dropdown-toggle:hover{
|
|
|
+ display: inline-block;
|
|
|
+ width: 78px;
|
|
|
+ height: 21px;
|
|
|
+ line-height: 21px;
|
|
|
+ color: #ff0101;
|
|
|
+ font-size: 13px;
|
|
|
+ background-color: #e8e8e8;
|
|
|
+ }
|
|
|
+ .order-table .order-hd .order-code {
|
|
|
+ font-style: normal;
|
|
|
+ font-family: verdana;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-hd .order-sum {
|
|
|
+ padding: 0 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table>tbody {
|
|
|
+ border: 1px solid transparent;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table>tbody:hover {
|
|
|
+ border-color: #3c7cf5;
|
|
|
+ border-width: 2px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .operates {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table>tbody:hover .operates {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-bd {
|
|
|
+ border-bottom: 1px solid #e6e6e6;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-bd>td {
|
|
|
+ padding: 10px 5px;
|
|
|
+ vertical-align: top;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-table .order-bd .product {
|
|
|
+ padding-left: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input-xs,.input-group-xs>.form-control,.input-group-xs>.input-group-addon,.input-group-xs>.input-group-btn>.btn
|
|
|
+ {
|
|
|
+ height: 26px;
|
|
|
+ padding: 0 5px;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 1.5;
|
|
|
+ border-radius: 3px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input-group-xs .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn {
|
|
|
+ border-top-left-radius: 0;
|
|
|
+ border-bottom-left-radius: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @media ( min-width : 768px) {
|
|
|
+ .form-horizontal .form-group-xs .control-label {
|
|
|
+ padding-top: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .info-container .info:hover {
|
|
|
+ color: #CC3333;
|
|
|
+ }
|
|
|
+ .input-error{
|
|
|
+ background-color: #fff8ee;
|
|
|
+ border-color: #CC0033;
|
|
|
+ }
|
|
|
+ input.input-error:focus {
|
|
|
+ background-color: #fff8ee;
|
|
|
+ border-color: #CC0033;
|
|
|
+ }
|
|
|
+ .block{
|
|
|
+ /*background: #f5f5f5;*/
|
|
|
+ }
|
|
|
+ .order-table{
|
|
|
+ background: #fff;
|
|
|
+ }
|
|
|
+ .menu .new-dot{
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ line-height: 20px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #fff;
|
|
|
+ font-weight: inherit;
|
|
|
+ top: -2px;
|
|
|
+ }
|
|
|
+ #public .menu .btn-group-justified{
|
|
|
+ width: 100%;
|
|
|
+ margin: 0 auto;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ background: #fff;
|
|
|
+ border-bottom: 1px solid #f15601;
|
|
|
+ }
|
|
|
+ #public .menu .btn-group-justified .btn-group {
|
|
|
+ min-width: 100px;
|
|
|
+ height: 40px;
|
|
|
+ text-align: center;
|
|
|
+ float: left;
|
|
|
+ margin-left: 25px;
|
|
|
+ }
|
|
|
+ #public .menu .btn-group-justified .btn-group button {
|
|
|
+ height: 40px;
|
|
|
+ font-size: 13px;
|
|
|
+ font-weight: bold;
|
|
|
+ border-top: 3px solid #fff;
|
|
|
+ min-width: 110px;
|
|
|
+ outline: none;
|
|
|
+ }
|
|
|
+ #public .menu .btn-group-justified .btn-group button.btn-info{
|
|
|
+ border-top: 3px solid #f15601;
|
|
|
+ border-left: 1px solid #f15601;
|
|
|
+ border-right: 1px solid #f15601;
|
|
|
+ border-bottom: 1px solid #fff !important;
|
|
|
+ color: #f15601;
|
|
|
+ height: 42px;
|
|
|
+ line-height: 29px;
|
|
|
+ }
|
|
|
+ #public .form-group-sm .form-control {
|
|
|
+ width: 215px;
|
|
|
+ border: #5078cb 1px solid;
|
|
|
+ height: 32px;
|
|
|
+ box-shadow: none;
|
|
|
+ }
|
|
|
+ #public .screen .sreach a.input-group-addon {
|
|
|
+ width: 58px;
|
|
|
+ height: 32px;
|
|
|
+ background: #5078cb;
|
|
|
+ color: #fff;
|
|
|
+ line-height: 18px;
|
|
|
+ float: none;
|
|
|
+ broder-radius: 2px;
|
|
|
+ vertical-align: unset;
|
|
|
+ }
|
|
|
+ #public .screen .sreach .sreach-input >.form-control{
|
|
|
+ width: 220px;
|
|
|
+ }
|
|
|
+ #public .order-table, #public .inquiry-table {
|
|
|
+ width: 1026px;
|
|
|
+ }
|
|
|
+ #public .ng-table-pager{
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ .order-table .order-hd .order-main span.icon{
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ }
|
|
|
+ .no-circle-icon {
|
|
|
+ display: inline-block;
|
|
|
+ padding: 0 5px;
|
|
|
+ line-height: 20px;
|
|
|
+ height: 20px;
|
|
|
+ color: #fff !important;
|
|
|
+ background: #ea5a60;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .circle-icon {
|
|
|
+ display: inline-block;
|
|
|
+ padding: 0 5px;
|
|
|
+ line-height: 20px;
|
|
|
+ height: 20px;
|
|
|
+ color: #fff !important ;
|
|
|
+ background: #15b262;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .tab_top ul li.down-purchase{
|
|
|
+ float: right;
|
|
|
+ margin-right: 24px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #5078cb;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<link rel="stylesheet" href="static/css/b2bPublic.css">
|
|
|
+<div class="block user_right fr" id="public">
|
|
|
+ <!--<div class="pub-com_head">-->
|
|
|
+ <!--<span>客户采购询价</span>-->
|
|
|
+ <!--<div class="p-right">-->
|
|
|
+ <!--<a ng-click="exportXls()" target="_self" class="text-simple" title="导出Excel表格"><i class="fa fa-file-text fa-fw"></i>导出</a>-->
|
|
|
+ <!--</div>-->
|
|
|
+ <!--</div>-->
|
|
|
+ <div class="tab_top" style="margin-bottom: 10px">
|
|
|
+ <ul class="fl" style="width: 100%">
|
|
|
+ <li ng-class="{'active': storeType=='seekPurchase'}"><a ui-sref="vendorSeekPurchase">公共询价</a></li>
|
|
|
+ <li ng-class="{'active': storeType=='purchase'}"><a ui-sref="saleInquiry">客户采购询价</a></li>
|
|
|
+ <li ng-class="{'active': storeType=='mould'}"><a ui-sref="saleInquiryMould">客户模具询价</a></li>
|
|
|
+ <li ng-class="{'active': storeType=='quotation'}"><a ui-sref="saleQuotationList">主动报价</a></li>
|
|
|
+ <li ng-class="{'active': storeType=='tender'}"><a ui-sref="saleTenderList">客户招标</a></li>
|
|
|
+ <li ng-class="{'active': storeType=='attend'}"><a ui-sref="purchasAttendtion">商机关注</a></li>
|
|
|
+ <li class="down-purchase">
|
|
|
+ <span ng-click="exportXls()">
|
|
|
+ <i class="fa fa-file-excel-o fa-fw"></i>导出Excel
|
|
|
+ </span>
|
|
|
+ <form style="display: none;" id="down-load-purchase" method="get">
|
|
|
+ <input type="hidden" name="ids" ng-value="localInfo.ids">
|
|
|
+ </form>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ <div class="menu condition block">
|
|
|
+ <div class="btn-group btn-group-sm btn-group-justified">
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ 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>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ 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>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ 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>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ ng-class="{'btn-info':active=='agreed'}" ng-click="setActive('agreed')">已采纳</button>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ ng-class="{'btn-info':active=='refused'}" ng-click="setActive('refused')">未采纳</button>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group btn-group-sm">
|
|
|
+ <button type="button" class="btn btn-default btn-line"
|
|
|
+ ng-class="{'btn-info':active=='invalid'}" ng-click="setActive('invalid')">已失效</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="condition block">
|
|
|
+ <!--搜索时间筛选-->
|
|
|
+ <div class="screen check-filter">
|
|
|
+ <div class="radio-block date-radio">
|
|
|
+ 时间筛选:
|
|
|
+ <label class="com-check-radio">
|
|
|
+ <input type="radio" id="oneMonth" name="date" ng-click="autoMonth = false;changeDateZone(1);condition.$open=false" checked>
|
|
|
+ <label for="oneMonth"></label>
|
|
|
+ 30天
|
|
|
+ </label>
|
|
|
+ <label class="com-check-radio">
|
|
|
+ <input type="radio" id="threeMonth" name="date" ng-click="autoMonth = false;changeDateZone(3);condition.$open=false">
|
|
|
+ <label for="threeMonth"></label>
|
|
|
+ 90天
|
|
|
+ </label>
|
|
|
+ <label class="com-check-radio">
|
|
|
+ <input type="radio" id="sixMonth" name="date" ng-click="autoMonth = false;changeDateZone(6);condition.$open=false">
|
|
|
+ <label for="sixMonth"></label>
|
|
|
+ 180天
|
|
|
+ </label>
|
|
|
+ <label class="com-check-radio">
|
|
|
+ <input type="radio" id="autoMonth" name="date" ng-click="autoMonth = true;condition.$open=!condition.$open;changeDateZone(-1)">
|
|
|
+ <label for="autoMonth"></label>
|
|
|
+ 自定义
|
|
|
+ </label>
|
|
|
+ </div>
|
|
|
+ <div class="sreach fr">
|
|
|
+ <div ng-show="autoMonth" class="date fl">
|
|
|
+ <div class="data-input">
|
|
|
+ <input type="text" ng-model="condition.dateFrom"
|
|
|
+ class="form-control select-adder" placeholder="起始时间"
|
|
|
+ datepicker-popup="yyyy-MM-dd"
|
|
|
+ is-open="condition.$fromOpened"
|
|
|
+ max-date="condition.dateTo" current-text="今天" clear-text="清除" close-text="关闭"
|
|
|
+ ng-click="openFilterDatePicker($event, condition, '$fromOpened')"
|
|
|
+ ng-focus="openFilterDatePicker($event, condition, '$fromOpened')"
|
|
|
+ datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
|
|
|
+ />
|
|
|
+ <button class="open" ng-click="openFilterDatePicker($event, condition, '$fromOpened')"></button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <em>–</em>
|
|
|
+ <div class="data-input">
|
|
|
+ <input type="text" ng-model="condition.dateTo"
|
|
|
+ class="form-control select-adder" placeholder="结束时间"
|
|
|
+ datepicker-popup="yyyy-MM-dd"
|
|
|
+ is-open="condition.$toOpened"
|
|
|
+ min-date="condition.dateFrom" current-text="今天" clear-text="清除" close-text="关闭"
|
|
|
+ ng-click="openFilterDatePicker($event, condition, '$toOpened')"
|
|
|
+ ng-focus="openFilterDatePicker($event, condition, '$toOpened')"
|
|
|
+ datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
|
|
|
+ />
|
|
|
+ <button class="open" ng-click="openFilterDatePicker($event, condition, '$toOpened')"></button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="sreach-input fr">
|
|
|
+ <input type="search" class="form-control input-sm" ng-model="keyword"
|
|
|
+ ng-search="onSearch(keyword)" placeholder="输入单据编号、客户名称、物料名称搜索"/>
|
|
|
+ <a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <table class="order-table block" ng-table="tableParams">
|
|
|
+ <thead>
|
|
|
+ <tr class="header">
|
|
|
+ <th>产品</th>
|
|
|
+ <th width="60">单位</th>
|
|
|
+ <th width="110"><span class="text-default">≥</span>分段数</th>
|
|
|
+ <th width="90">价格</th>
|
|
|
+ <th width="80">最小订购</th>
|
|
|
+ <th width="80">最小包装</th>
|
|
|
+ <th width="120">有效期</th>
|
|
|
+ <th width="75">操作</th>
|
|
|
+ </tr>
|
|
|
+ <tr class="sep-row">
|
|
|
+ <td colspan="8"></td>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ <tbody ng-if="tableParams.total() == 0">
|
|
|
+ <tr>
|
|
|
+ <td colspan="8">
|
|
|
+ <div id="empty">
|
|
|
+ <div class="left_img">
|
|
|
+ <a href="http://www.ubtob.com/" target="_blank" title="优软云首页"><img src="static/img/empty/uas_empty.png"></a>
|
|
|
+ <a href="#/index" title="B2B商务首页">B2B 商务</a>
|
|
|
+ </div>
|
|
|
+ <div class="right_link">
|
|
|
+ <p>暂无对应的采购询价信息</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="8">
|
|
|
+ <div id="empty_info">
|
|
|
+ <div class="f16 text-center empty_title">
|
|
|
+ <p>为什么我没有接收到客户的询价单?</p>
|
|
|
+ </div>
|
|
|
+ <div class="f14 empty_explain">
|
|
|
+ <div class="info">
|
|
|
+ <p>1、您的客户还没有提交审核询价单<br>
|
|
|
+ 解决:与您的客户沟通确认单据是否已经审核(只有客户ERP中已经审核的单据才能接收到)</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p>2、客户ERP中供应商信息有误<br>
|
|
|
+ 解决:与您的客户沟通确认您的信息在客户的供应商资料中是否维护正确,尤其是企业UU号</p>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <p>3、您的客户正在使用旧版本的UAS商务平台<br>
|
|
|
+ 解决:我们仍有部分用户在使用旧版本UAS商务平台系统,你可以用您的企业UU号和管理员个人UU号 <a href="http://www.usoftchina.com" class="text-bold text-link" title="http://www.usoftchina.com" target="_blank">登陆旧版本UAS商务平台</a></p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ <tbody ng-repeat="inquiryItem in $data track by inquiryItem.id">
|
|
|
+ <tr class="order-hd">
|
|
|
+ <td class="first" colspan="4">
|
|
|
+ <div class="order-main">
|
|
|
+ <span class="no-circle-icon icon" ng-if="isUnread(inquiryItem.id)" title="标记为未查看">未读</span>
|
|
|
+ <span class="circle-icon icon" ng-if="!isUnread(inquiryItem.id)" title="标记为已查看">已读</span>
|
|
|
+ <span class="text-num text-bold" title="{{inquiryItem.inquiry.date}}"
|
|
|
+ ng-bind="::inquiryItem.inquiry.date | date:'yyyy-MM-dd'"></span>
|
|
|
+ <span><img src="static/img/user/images/shop_home.png"><span ng-bind="::inquiryItem.inquiry.enterprise.enName"></span></span>
|
|
|
+ <span>流水号:<a title="查看详情"
|
|
|
+ class="text-num order-detail" ng-bind="::inquiryItem.inquiry.code" ui-sref="sale_inquiry_detail({id:inquiryItem.inquiry.id})" target="_self"
|
|
|
+ ng-click="setOrdersRead(inquiryItem.id)"></a>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ 币别:<span ng-bind="::(isUser?'-':inquiryItem.currency)"></span>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ 税率:<input type="text" ng-pattern="/^\+?[1-9]\d*$/" ng-model="inquiryItem.taxrate" style="width: 25px" ng-readonly="!inquiryItem.$editing">%
|
|
|
+ </td>
|
|
|
+ <td class="text-right" colspan="1" class="order-sum">
|
|
|
+ <div ng-if="inquiryItem.replyable">
|
|
|
+ <span class="text-inverse text-bold" ng-bind-html="inquiryItem.inquiry.endDate | date:'yyyy-MM-dd'"></span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center">
|
|
|
+ <div class="">
|
|
|
+ 类型: <span ng-bind="::inquiryItem.inquiry.inquirytype || '无'"></span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr class="order-bd">
|
|
|
+ <td class="product">
|
|
|
+ <div class="text-num text-bold" ng-bind="::inquiryItem.product.code"></div>
|
|
|
+ <div ng-bind="::inquiryItem.product.title"></div>
|
|
|
+ <div class="text-muted" ng-bind="::inquiryItem.product.spec"></div>
|
|
|
+ <div ng-if="::inquiryItem.brand && !inquiryItem.$editing" class="text-muted">
|
|
|
+ 品牌:<span ng-bind="::inquiryItem.brand"></span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="::inquiryItem.vendorprodcode && !inquiryItem.$editing" class="text-muted">
|
|
|
+ 供应商物料编号:<span ng-bind="::inquiryItem.vendorprodcode"></span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="::inquiryItem.needquantity" class="text-num text-bold">
|
|
|
+ 需求数量:<span ng-bind="::inquiryItem.needquantity"></span>
|
|
|
+ </div>
|
|
|
+ <div ng-show="inquiryItem.remark">
|
|
|
+ 备注:{{::inquiryItem.remark}}
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.inquiry.attachs.length" class="text-muted">
|
|
|
+ <i class="fa fa-paperclip fa-fw" style="color: #ffa340; font-size: 18px;"></i>附件:<a class="file" ng-repeat="attach in inquiryItem.inquiry.attachs" href="file/{{attach.id}}">{{::attach.name}}</a>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.attaches.length" class="text-muted">
|
|
|
+ <i class="fa fa-paperclip fa-fw" style="color: #ffa340; font-size: 18px;"></i>报价附件:
|
|
|
+ <div ng-repeat="attach in inquiryItem.attaches">
|
|
|
+ <a class="file" href="file/{{attach.id}}">{{::attach.name}} </a>
|
|
|
+ <a ng-show="inquiryItem.$editing" ng-click="deleteAttach(inquiryItem.attaches, $index)" title="删除附件"><i class="fa fa-trash-o fa-lg"></i></a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group" ng-if="inquiryItem.$editing" style="width: 180px;">
|
|
|
+ <input type="text" class="form-control input-xs"
|
|
|
+ ng-model="inquiryItem.brand" placeholder="物料品牌">
|
|
|
+ </div>
|
|
|
+ <div class="form-group" ng-if="inquiryItem.$editing" style="width: 180px;">
|
|
|
+ <input type="text" class="form-control input-xs"
|
|
|
+ ng-model="inquiryItem.vendorprodcode" placeholder="供应商物料编号">
|
|
|
+ </div>
|
|
|
+ <div class="form-group" ng-if="inquiryItem.$editing" style="width: 220px;">
|
|
|
+ <input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.leadtime,'leadtime')" ng-pattern="/^\+?[1-9]\d*$/"
|
|
|
+ ng-model="inquiryItem.leadtime" placeholder="交货周期(确切天数)" style="display: inline-block;width: 180px;">
|
|
|
+ <span ng-if="!inquiryItem.leadtime" class="text-inverse"> 必填*</span>
|
|
|
+ <div style="margin-left: 50px;"class="text-bold text-inverse" ng-show="!leadtimeVerify">请填数字!</div>
|
|
|
+ </div>
|
|
|
+ <div class="input-group form-group" ng-if="inquiryItem.$editing" style="width: 300px;">
|
|
|
+ <div class="input-group-addon">上传附件:</div>
|
|
|
+ <input type="file" ng-model="inquiryItem.myFiles" ng-file-select
|
|
|
+ ng-multiple="false" class="form-control input-sm input-group" name="file">
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center">
|
|
|
+ <span ng-bind="::inquiryItem.product.unit"></span>
|
|
|
+ </td>
|
|
|
+ <td class="text-center">
|
|
|
+ <div ng-show="!inquiryItem.$editing">
|
|
|
+ <div ng-repeat="reply in inquiryItem.replies">
|
|
|
+ <span ng-bind="reply.lapQty"></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="margin: 0 auto;" ng-if="inquiryItem.$editing">
|
|
|
+ <div ng-repeat="reply in inquiryItem.replies">
|
|
|
+ <div class="form-group input-group input-group-xs">
|
|
|
+ <input type="text" class="form-control input-xs" ng-class="{'input-error': !replylapQtys[$index]}" ng-change="verifylapQty(reply.lapQty,$index, inquiryItem)"
|
|
|
+ ng-model="reply.lapQty" min="{{$index == 0 ? 0 :(inquiryItem.replies[$index - 1].lapQty + 1)}}" ng-pattern="/^\+?[1-9]\d*$/"
|
|
|
+ ng-Readonly="$index == 0" placeholder="数量" />
|
|
|
+ <span class="input-group-btn" ng-show="$index != 0">
|
|
|
+ <button class="btn btn-default" type="button"
|
|
|
+ ng-click="removeStep(inquiryItem, $index)">
|
|
|
+ <i class="fa fa-trash-o"></i>
|
|
|
+ </button>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div class="text-bold text-inverse" style="margin-top:-15px" ng-show="!replylapQtys[$index]">分段数量递增!</div>
|
|
|
+ </div>
|
|
|
+ <a ng-click="addStep(inquiryItem)" class="btn btn-default btn-xs"
|
|
|
+ ng-show="!inquiryItem.custLap">添加分段</a>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center br-l">
|
|
|
+ <div ng-show="!inquiryItem.$editing">
|
|
|
+ <div ng-repeat="reply in inquiryItem.replies">
|
|
|
+ <span ng-bind="isUser?'':(reply.price | number:6)"></span> <span
|
|
|
+ ng-show="reply.price == null || isUser" class="text-muted">-</span>
|
|
|
+ </div>
|
|
|
+ <div class="dropdown">
|
|
|
+ <a href="javascript:void(0);" class="dropdown-toggle text-default"
|
|
|
+ ng-mouseover="getHistory(inquiryItem)">历史报价<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="historyItem in ::inquiryItem.history">
|
|
|
+ <div ng-class="{'text-inverse': $index==0}">
|
|
|
+ <div class="row row-sm"
|
|
|
+ ng-repeat="historyReply in historyItem.replies">
|
|
|
+ <div class="col-xs-5">≥{{historyReply.lapQty}}</div>
|
|
|
+ <div class="col-xs-5">价格{{historyReply.price | number:6}}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="text-muted">{{historyItem.inquiry.date |
|
|
|
+ date:'yyyy-MM-dd'}}{{historyItem.inquiry.enterprise.enName}}
|
|
|
+ </div>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div ng-if="historyShow">
|
|
|
+ <div ng-show="!inquiryItem.history || inquiryItem.history.length == 0"
|
|
|
+ class="text-center text-muted">暂无历史报价</div></div>
|
|
|
+ <div ng-if="!historyShow">
|
|
|
+ <div class="text-center text-muted">无法访问,没有客户询价-查看历史报价权限!</div></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="margin: 0 auto;" ng-if="inquiryItem.$editing">
|
|
|
+ <div ng-repeat="reply in inquiryItem.replies">
|
|
|
+ <div class="form-group">
|
|
|
+ <input type="text" class="form-control input-xs " ng-class="{'input-error': !replyPrices[$index]}" ng-model="reply.price"
|
|
|
+ ng-change="verify(reply.price,$index)" placeholder="单价(必填)" ng-init="reply.price = isUser?'-':reply.price"/>
|
|
|
+ <div class="text-bold text-inverse" style="margin-bottom:-15px" ng-show="!replyPrices[$index]">请填数字!</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center br-l">
|
|
|
+ <div ng-show="!inquiryItem.$editing">
|
|
|
+ <span ng-bind="inquiryItem.minOrderQty"></span> <span
|
|
|
+ ng-show="inquiryItem.minOrderQty == null" class="text-muted">-</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.$editing">
|
|
|
+ <input type="text" class="form-control input-xs" ng-change="verify(inquiryItem.minOrderQty,'minOrderQty')"
|
|
|
+ ng-class="{'input-error': !minOrderQtyVerify}" ng-model="inquiryItem.minOrderQty" placeholder="最小订购" >
|
|
|
+ <div class="text-bold text-inverse" ng-show="!minOrderQtyVerify">请填数字!</div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center br-l">
|
|
|
+ <div ng-show="!inquiryItem.$editing">
|
|
|
+ <span ng-bind="inquiryItem.minPackQty"></span> <span
|
|
|
+ ng-show="inquiryItem.minPackQty == null" class="text-muted">-</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.$editing">
|
|
|
+ <input type="text" class="form-control input-xs"
|
|
|
+ ng-model="inquiryItem.minPackQty" placeholder="最小包装"
|
|
|
+ ng-change="verify(inquiryItem.minPackQty,'minPackQty')" ng-class="{'input-error': !minPackQtyVerify}" >
|
|
|
+ <div class="text-bold text-inverse" ng-show="!minPackQtyVerify">请填数字!</div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center br-l">
|
|
|
+ <div ng-init="parseDate(inquiryItem)">
|
|
|
+ <div ng-show="inquiryItem.toDate">
|
|
|
+ <span class="text-muted">从 </span><span
|
|
|
+ ng-bind="inquiryItem.fromDate | date:'yyyy-MM-dd'"></span> <span
|
|
|
+ class="text-muted">到 </span><span
|
|
|
+ ng-bind="inquiryItem.toDate | date:'yyyy-MM-dd'"></span>
|
|
|
+ </div>
|
|
|
+ <div ng-show="!inquiryItem.toDate">
|
|
|
+ <span class="text-muted">-</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td class="text-center br-l">
|
|
|
+ <div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == null && inquiryItem.invalid != 1" class="block">
|
|
|
+ <span class="text-trans warning">已报价</span>
|
|
|
+ <div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check != 1" style="padding-top: 50px;">
|
|
|
+ <div ng-show="!inquiryItem.$editing && inquiryItem.replyable">
|
|
|
+ <a ng-click="inquiryItem.$editing=!inquiryItem.$editing; getToken();">修改报价</a>
|
|
|
+ </div>
|
|
|
+ <div ng-show="inquiryItem.$editing">
|
|
|
+ <div>
|
|
|
+ <a ng-click="inquiryItem.$editing=!inquiryItem.$editing; cancel()">取消</a>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <button ng-click="onReplyClick(inquiryItem, true);setOrdersRead(inquiryItem.id)"
|
|
|
+ ng-disabled="!isValid(inquiryItem, true)"
|
|
|
+ class="btn btn-link btn-xs text-inverse">
|
|
|
+ 保存并<br>确认报价
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.inquiry.check == 1" class="text-muted" style="padding-top: 50px;">客户正在<br>审批...</div>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == 1 && inquiryItem.invalid != 1" class="block">
|
|
|
+ <span class="text-trans success">已采纳</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.status == 201 && inquiryItem.invalid == 1" class="block">
|
|
|
+ <span class="text-trans text-light">已失效</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.status == 314" class="block">
|
|
|
+ <span class="text-trans text-light">已作废</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.status == 201 && inquiryItem.agreed == 0" class="block">
|
|
|
+ <span class="text-trans error">未采纳</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.status == 200">
|
|
|
+ <div ng-if="inquiryItem.overdue == 0 && inquiryItem.inquiry.check != 1 && inquiryItem.invalid == 0">
|
|
|
+ <div ng-show="!inquiryItem.$editing">
|
|
|
+ <a ng-click="inquiryItem.$editing=!inquiryItem.$editing; getToken()">报 价</a>
|
|
|
+ </div>
|
|
|
+ <div ng-show="inquiryItem.$editing">
|
|
|
+ <div>
|
|
|
+ <a ng-click="inquiryItem.$editing=!inquiryItem.$editing; cancel()">取消</a>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <button ng-click="onReplyClick(inquiryItem);setOrdersRead(inquiryItem.id)"
|
|
|
+ ng-disabled="!isValid(inquiryItem)"
|
|
|
+ class="btn btn-link btn-xs text-default">保存</button>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <button ng-click="onReplyClick(inquiryItem, true);setOrdersRead(inquiryItem.id)"
|
|
|
+ ng-disabled="!isValid(inquiryItem, true)"
|
|
|
+ class="btn btn-link btn-xs text-inverse">
|
|
|
+ 保存并<br>确认报价
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.inquiry.overdue == 0 && inquiryItem.inquiry.check == 1 && inquiryItem.invalid != 1">
|
|
|
+ <span class="text-trans half">未报价</span>
|
|
|
+ <div class="text-muted" style="padding-top: 50px;">询价单已<br>被提交...</div>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.overdue == 1 && inquiryItem.invalid != 1" class="block">
|
|
|
+ <span class="text-trans error">已过期</span>
|
|
|
+ </div>
|
|
|
+ <div ng-if="inquiryItem.invalid == 1" class="block">
|
|
|
+ <span class="text-trans text-light">已失效</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div ng-if="(inquiryItem.status == 201 && (inquiryItem.agreed != null) || inquiryItem.overdue == 1) && inquiryItem.inquiry.check != 1">
|
|
|
+ <br><br>
|
|
|
+ <a ui-sref="sale_quotation_new({inquiryItem:inquiryItem})">主动报价</a>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+</div>
|