Browse Source

修改配置

shenjunjie 7 years ago
parent
commit
dbd8fb0ffb

+ 36 - 1
components/mobile/base/ModalWrapper.vue

@@ -2,7 +2,13 @@
   <div class="mobile-modal" v-if="showModal" @click="$emit('closeAction')">
     <div class="mobile-modal-box mobile-modal-wrapper" @click="stopPropagation($event)">
       <div class="mobile-modal-header" v-if="!noHeader">{{title}}<i @click="$emit('closeAction')" class="icon-guanbi iconfont"></i></div>
-      <div ref="mobileModalBox" class="mobile-scroll-wrap"><div><slot></slot></div></div>
+      <slot name="header"></slot>
+      <div ref="mobileModalBox" class="mobile-scroll-wrap" :style="[ComputedStyle]" >
+        <div>
+          <slot></slot>
+        </div>
+      </div>
+      <slot name="footer"></slot>
     </div>
   </div>
 </template>
@@ -20,6 +26,18 @@
       noHeader: {
         type: Boolean,
         default: false
+      },
+      bgColor: {
+        type: String,
+        default: '#fff'
+      },
+      hasFooter: {
+        type: Boolean,
+        default: false
+      },
+      hasHeader: {
+        type: Boolean,
+        default: false
       }
     },
     watch: {
@@ -41,6 +59,23 @@
         })
       }
     },
+    computed: {
+      ComputedStyle() {
+        if (this.hasFooter) {
+          return {
+            height: '80%',
+            background: this.bgColor,
+            borderBottomLeftRadius: 0,
+            borderBottomRightRadius: 0
+          }
+        } else {
+          return {
+            height: '100%',
+            background: this.bgColor
+          }
+        }
+      }
+    },
     mounted() {
       this.init()
     }

+ 2 - 0
components/mobile/common/PullUp.vue

@@ -4,6 +4,7 @@
 </template>
 <script>
 //  import { scrollTo } from '~utils/scroll'
+function hanlder() {}
   export default {
     data () {
       return {
@@ -38,6 +39,7 @@
       _this.$nextTick(function () {
         let obj = this.fixId ? document.getElementById(this.fixId) : window
         if (obj) {
+          obj.removeEventListener('scroll', hanlder(), false)
           obj.addEventListener('scroll', function () {
             if (_this.isValid) {
               _this.scroll()

+ 7 - 7
nuxt.config.js

@@ -1,19 +1,19 @@
 const path = require('path')
 const isProdMode = Object.is(process.env.NODE_ENV, 'production')
 // b2c后台
-const baseUrl = process.env.BASE_URL || (isProdMode ? 'http://api.usoftchina.com/' : 'http://10.1.51.101:8090/')
+const baseUrl = process.env.BASE_URL || (isProdMode ? 'http://api.usoftchina.com/' : 'https://tb2c.usoftchina.com')
 // 公共询价
-const commonUrl = process.env.COMMON_URL || (isProdMode ? 'https://api-inquiry.usoftchina.com/' : 'http://218.17.158.219:24000/')
+const commonUrl = process.env.COMMON_URL || (isProdMode ? 'https://api-inquiry.usoftchina.com/' : 'http://10.1.51.92:24000/')
 // 公共物料
-const materialUrl = process.env.MATERIAL_URL || (isProdMode ? 'https://api-product.usoftchina.com/' : 'http://218.17.158.219:24000/')
+const materialUrl = process.env.MATERIAL_URL || (isProdMode ? 'https://api-product.usoftchina.com/' : 'http://10.1.51.92:24002/')
 // 公共cms
-const cmsUrl = process.env.CMS_URL || (isProdMode ? 'http://cms.usoftchina.com' : 'http://cms.usoftchina.com')
+const cmsUrl = process.env.CMS_URL || (isProdMode ? 'http://cms.usoftchina.com' : 'http://tcms.usoftchina.com')
 // 消息
-const messageUrl = process.env.MESSAGE_URL || (isProdMode ? 'https://api-message.ubtob.com/' : 'http://192.168.253.6:24000/message')
+const messageUrl = process.env.MESSAGE_URL || (isProdMode ? 'https://api-message.ubtob.com/' : 'http://10.1.51.92:24001/')
 // B2B
-const uasUrl = process.env.uasUrl || (isProdMode ? 'http://uas.ubtob.com/' : 'http://192.168.253.12:9000/b2b-test/')
+const uasUrl = process.env.uasUrl || (isProdMode ? 'http://uas.ubtob.com/' : 'http://10.1.51.125:8090/platform-b2b/')
 // 帐户中心
-const ssoUrl = process.env.ssoUrl || (isProdMode ? 'https://sso.ubtob.com/' : 'http://192.168.253.6:32323')
+const ssoUrl = process.env.ssoUrl || (isProdMode ? 'https://sso.ubtob.com/' : 'https://tsso.usoftchina.com/')
 // pcb展示ID
 const pcbId = process.env.pcbId || (isProdMode ? '9612c0a894894c1aabbfe9192749bbfa' : 'shengfang')
 

+ 292 - 56
pages/mobile/center/vendor/btobapCheck.vue

@@ -17,58 +17,158 @@
         </div>
       </div>
       <div class="order-nav">
-        <div :class="activeType === 'all' ? 'active': ''" @click="ChangeList('all')"><span>全部</span></div>
+        <div :class="activeType === 'all' ? 'active': ''" @click="ChangeList('all')"><span>未对账</span></div>
+        <div :class="activeType === 'todo' ? 'active' : ''" @click="ChangeList('todo')"><span>待确认</span></div>
         <div :class="activeType === 'done' ? 'active': ''" @click="ChangeList('done')"><span>已确认</span></div>
-        <div :class="activeType === 'todo' ? 'active' : ''" @click="ChangeList('todo')"><span>未对账</span></div>
         <div :class="activeType === 'end' ? 'active' : ''" @click="ChangeList('end')"><span>已作废</span></div>
       </div>
-      <div class="search-content mi-search-content">
-        <input type="text" v-model="filterParams.keyword" @keyup.13="onFilter" placeholder="单据编号/客户名称/物料名称">
-        <span @click="onFilter"><i class="iconfont icon-sousuo"></i></span>
-      </div>
-      <div class="btobapCheck-wrapper-scroll" id="btobapCheck-wrapper-scroll">
-        <div class="filter-wrapper">
-          <base-filter
-            v-for="filterOption in filterOptions"
-            :key="filterOption.selectOption"
-            :selectItems="filterOption.selectItems"
-            :defaultVal="filterOption.defaultVal"
-            :selectOption="filterOption.selectOption"
-            @selectAction="onSelectAction"
-            @valueAction="onValueAction"
-            :title="filterOption.title">
-          </base-filter>
+      <div v-show="activeType !== 'all'">
+        <div class="search-content mi-search-content">
+          <input type="text" v-model="filterParams.keyword" @keyup.13="onFilter" placeholder="单据编号/客户名称/物料名称">
+          <span @click="onFilter"><i class="iconfont icon-sousuo"></i></span>
         </div>
-        <div v-if="resourceList.content && resourceList.content.length > 0">
-          <div class="invoice-btob-list" v-for="item in resourceList.content" :key="item.id">
-            <div class="invoice-btob-wrapper-top">
-              <span class="read" v-if="!isUnread(item.id)" style="margin-right: 0.3rem">已读</span>
-              <span class="noread" v-if="isUnread(item.id)" style="margin-right: 0.3rem">未读</span>
-              <span  style="margin-right: 0.3rem">{{item.recordDate | time}}</span>
-              <span class="isPut" v-if="item.status">已提交</span>
-              <span class="noPut" v-else>未提交</span>
-            </div>
-            <div class="invoice-btob-wrapper-middle">
-              <div class="invoice-btob-wrapper-middle-title">{{item.custName}}</div>
-              <div @click="lookDetails(item.id)"><span>单据编号:</span><a>{{item.code}}</a></div>
+        <div class="btobapCheck-wrapper-scroll" id="btobapCheck-wrapper-scroll">
+          <div class="filter-wrapper">
+            <base-filter
+              v-for="filterOption in filterOptions"
+              :key="filterOption.selectOption"
+              :selectItems="filterOption.selectItems"
+              :defaultVal="filterOption.defaultVal"
+              :selectOption="filterOption.selectOption"
+              @selectAction="onSelectAction"
+              @valueAction="onValueAction"
+              :title="filterOption.title">
+            </base-filter>
+          </div>
+          <div v-if="resourceList.content && resourceList.content.length > 0">
+            <div class="invoice-btob-list" v-for="item in resourceList.content" :key="item.id">
+              <div class="invoice-btob-wrapper-top">
+                <span class="read" v-if="!isUnread(item.id)" style="margin-right: 0.3rem">已读</span>
+                <span class="noread" v-if="isUnread(item.id)" style="margin-right: 0.3rem">未读</span>
+                <span  style="margin-right: 0.3rem">{{item.recordDate | time}}</span>
+                <span class="isPut" v-if="item.status">已提交</span>
+                <span class="noPut" v-else>未提交</span>
+              </div>
+              <div class="invoice-btob-wrapper-middle">
+                <div class="invoice-btob-wrapper-middle-title">{{item.custName}}</div>
+                <div @click="lookDetails(item.id)"><span>单据编号:</span><a>{{item.code}}</a></div>
+              </div>
+              <div class="invoice-btob-wrapper-content">
+                <div><span>对账期间:</span>{{item.beginDate | time}} - {{item.endDate | time}}</div>
+                <div><span>对账金额:</span>{{isUser ? '-' : item.checkAmount}}</div>
+                <div><span>明细条目:</span>{{item.items && item.items.length}}条</div>
+                <div><span>商品总数:</span>{{item.getTotalProd}}</div>
+                <div><span>对账结果:</span>{{item.checkStatus}}</div>
+              </div>
             </div>
-            <div class="invoice-btob-wrapper-content">
-              <div><span>对账期间:</span>{{item.beginDate | time}} - {{item.endDate | time}}</div>
-              <div><span>对账金额:</span>{{isUser ? '-' : item.checkAmount}}</div>
-              <div><span>明细条目:</span>{{item.items.length}}条</div>
-              <div><span>商品总数:</span>{{item.getTotalProd}}</div>
-              <div><span>对账结果:</span>{{item.checkStatus}}</div>
+          </div>
+          <empty-status
+            v-else
+            :text="'暂无对账信息'"
+            :showLink="false"
+          ></empty-status>
+          <pull-up :fixId="'btobapCheck-wrapper-scroll'" :allPage="allPage" :page="filterParams.page" @pullUpAction="onPullUpAction"></pull-up>
+        </div>
+      </div>
+
+      <div v-show="activeType === 'all'">
+        <div class="search-content mi-search-content">
+          <input type="text" v-model="filterParams.keyword" @keyup.13="onFilter" placeholder="客户名称">
+          <span @click="onFilter"><i class="iconfont icon-sousuo"></i></span>
+        </div>
+        <div class="btobapCheck-wrapper-scroll" id="btobapCheck-wrapper-scroll2">
+          <div v-if="resourceList.content && resourceList.content.length > 0">
+            <div class="invoice-btob-list" v-for="item in resourceList.content" :key="item.id">
+              <div class="invoice-btob-wrapper-middle" style="border-top: 0">
+                <div class="invoice-btob-wrapper-middle-title">{{item.myEnterprise.enName}}</div>
+              </div>
+              <div class="invoice-btob-wrapper-middle">
+                <div v-if="item.lastCheckDate"><span>上次对账日期:{{item.lastCheckDate | time}}</span></div>
+                <div v-else><span>上次对账日期:-</span></div>
+                <div><span>未对账总额:{{item.uncheckedCount || '-'}}</span></div>
+              </div>
+              <div class="invoice-btob-wrapper-middle" @click="showApcheckList(item)">
+                <div class="middle_btn">立即对账</div>
+              </div>
             </div>
           </div>
+          <empty-status
+            v-else
+            :text="'暂无对账信息'"
+            :showLink="false"
+          ></empty-status>
+          <pull-up :fixId="'btobapCheck-wrapper-scroll2'" :allPage="allPage" :page="filterParams.page" @pullUpAction="onPullUpAction"></pull-up>
         </div>
-        <empty-status
-          v-else
-          :text="'暂无对账信息'"
-          :showLink="false"
-        ></empty-status>
-        <pull-up :fixId="'btobapCheck-wrapper-scroll'" :allPage="allPage" :page="filterParams.page" @pullUpAction="onPullUpAction"></pull-up>
       </div>
     </div>
+
+    <modal-wrapper :title="isShowApcheckList.enName" :showModal="isShowApcheckList.show" @closeAction="isShowApcheckList.show = false" :bgColor="'#f1f3f6'" :hasFooter="true">
+      <div slot="header" class="modal-h">
+         <span class="item inline-block" @click="checkAll()">
+            <label class="mobile-cart-check" :class="{active: !isCheckAll}"></label>
+         </span>
+        <span class="inline-block overflowhidden">
+          当前客户:深圳优软商城科技有限公司大公司哦12314
+        </span>
+        <input type="month" v-model="isShowApcheckList.thisMonth" @change="showApcheckList()"/>
+      </div>
+      <div class="btobapCheck-modal">
+        <div class="choosescreen-result">
+          <div v-if="isShowApcheckList.list.length > 0">
+          <div class="clearfix choosescreen-result-list" v-for="(item, index) in isShowApcheckList.list">
+            <div>
+              <div class="choosescreen-result-list-content">
+                <div style="border-bottom: 1px solid #D3D3D3;padding-bottom: 0.2rem">
+                  <span class="item inline-block" @click="checkItem(item, index)">
+                    <label class="mobile-cart-check" :class="{active: item.check}"></label>
+                  </span>
+                  <div class="inline-block" style="margin-left: 0.15rem">
+                    <div class="OverHidden">序号:<span>{{index}}</span></div>
+                    <div class="OverHidden">本次对账数:<span>{{item.thischeckqty}}</span></div>
+                    <div class="OverHidden">单据编号:<span>{{item.inoutno}}</span></div>
+                    <div class="OverHidden">类型:<span>{{item.piclass}}</span></div>
+                    <div class="OverHidden">单据日期:<span>{{item.pidate | time}}</span></div>
+                  </div>
+                </div>
+                <div style="padding-top: 0.2rem">
+                  <span class="item inline-block" style="opacity: 0">
+                    <label class="mobile-cart-check"></label>
+                  </span>
+                  <div class="inline-block" style="margin-left: 0.15rem">
+                    <div class="OverHidden">客户采购单:<span>{{item.ordercode}}</span></div>
+                    <div class="OverHidden">发货单号:<span>{{item.sendcode}}</span></div>
+                    <div class="OverHidden">客户料号:<span>{{item.prodcode}}</span></div>
+                    <div class="OverHidden">客户物料名称:<span>{{item.prodtitle}}</span></div>
+                    <div class="OverHidden">客户规格型号:<span>{{item.prodspec}}</span></div>
+                    <div class="OverHidden">税率:<span>{{item.taxrate}}</span></div>
+                    <div class="OverHidden">数量:<span>{{item.qty}}</span></div>
+                    <div class="OverHidden">单价:<span>{{item.currency}}:{{item.orderprice}}</span></div>
+                    <!--<div class="OverHidden">金额:<span>{{}}</span></div>-->
+                  </div>
+                </div>
+              </div>
+              <div class="clearfix" style="border-top:1px solid #D9D9D9;padding: 0 0.15rem;line-height: 0.8rem">
+                <div class="fl" style="font-size: 0.26rem">小计:</div>
+                <div class="fr" style="color: #FF3208;font-size: 0.26rem">{{(item.qty || 0) * (item.orderprice || 0) | computeNum(2)}}</div>
+              </div>
+            </div>
+          </div>
+          </div>
+          <empty-status
+            v-else
+            :text="'暂无对账信息'"
+            :showLink="false"
+          ></empty-status>
+        </div>
+      </div>
+      <div slot="footer" class="footerBtn clearfix">
+         <span class="item inline-block" @click="checkAll()">
+            <label class="mobile-cart-check" :class="{active: !isCheckAll}"></label>全选
+         </span>
+        <!--<div class="fr bbgoresult" @click="goTopayfor">结算</div>-->
+        <div class="fr" style="margin-right: 0.2rem">合计:<a style="color: #001408;">{{allMoney}}</a></div>
+      </div>
+    </modal-wrapper>
     <modal-wrapper :title="'新增对账单'" :showModal="showModal" @closeAction="showModal = false">
       <div class="btobapCheck-modal">
         <div class="search-content mi-search-content">
@@ -175,14 +275,28 @@
         unreadCode: [],
         showModal: false,
         dateObj: {},
-        screenObj: {}
+        screenObj: {},
+        isShowApcheckList: {
+          show: false,
+          enName: '深圳市优软科技有限公司',
+          thisMonth: '',
+          list: [{
+            qty: 1,
+            orderprice: 20
+          }, {
+            qty: 3,
+            orderprice: 20
+          }]
+        }
       }
     },
     created() {
       this.$http.get('/account/role/isUser').then(res => {
         this.isUser = res.data.isUser
       })
-     this.getUnread()
+      this.getUnread()
+      let sdateTo = new Date()
+      this.isShowApcheckList.thisMonth = sdateTo.getFullYear() + '-' + (sdateTo.getMonth() + 1)
     },
     methods: {
       addApCheck() {
@@ -260,26 +374,85 @@
         this.$selectObj = selectObj
         this.setSelect(selectObj.key, selectObj.value, true)
       },
+      // B2B未对账
+      // NotapCheck () {
+      //   console.log('未对账')
+      // },
+      // 未对账详情
+      showApcheckList(item) {
+        this.isShowApcheckList.show = true
+        this.isShowApcheckList.enName = item ? item.myEnterprise.enName : this.isShowApcheckList.enName
+        this.$http.get('/sale/apCheck/getAllByKeywords', {
+          params: {
+            checkDate: this.isShowApcheckList.thisMonth,
+            suuorname: item ? item.myEnterprise.enName : this.isShowApcheckList.enName
+          }
+        }).then(res => {
+          res.data.forEach(item => {
+            item.check = true
+          })
+          this.isShowApcheckList.list = res.data
+          this.$nextTick(() => {
+            this._initscroll()
+          })
+        })
+      },
+      checkAll() {
+        let fl = true
+        if (this.isCheckAll === 0) {
+          fl = false
+        }
+        this.isShowApcheckList.list.forEach(item => {
+          item.check = fl
+        })
+      },
+      checkItem(item, index) {
+        if (item.check) {
+          item.check = false
+        } else {
+          this.$set(this.isShowApcheckList.list[index], 'check', true)
+        }
+      },
+      goTopayfor() {
+        console.log('结算')
+      },
       async setSelect(...val) {
-        let { data } = await this.$http.get('/sale/apCheck/info/search', {
+        let _url = '/sale/apCheck/info/search'
+        let itemL = {
           params: {
             count: this.filterParams.count,
             page: this.filterParams.page,
             searchFilter: {'keyword': this.filterParams.keyword || '', 'fromDate': val[1].fromDate, 'endDate': val[1].toDate},
             sorting: {'recordDate': 'desc'},
             _state: this.activeType
-          }})
+          }
+        }
+        if (this.activeType === 'all') {
+           _url = '/sale/apCheck/customer'
+          itemL = {
+            params: {
+              count: 20,
+              page: 1,
+              keyword: this.filterParams.keyword,
+              searchFilter: {'fromDate': null, 'endDate': 1543981513949},
+              sorting: { 'recordDate': 'desc' }
+            }
+          }
+        }
+        let { data } = await this.$http.get(_url, itemL)
         if (!this.resourceList.content) {
           this.resourceList.content = []
         }
         data.content = data.content || []
-        data.content.forEach(item => {
-          item.checkAmount = item.checkAmount.toFixed(2)
-          item.getTotalProd = 0
-          item.items.forEach(im => {
-            item.getTotalProd += im.checkQty
+        if (this.activeType !== 'all') {
+          data.content.forEach(item => {
+            item.checkAmount = item.checkAmount.toFixed(2)
+            item.getTotalProd = 0
+            item.items.forEach(im => {
+              item.getTotalProd += im.checkQty
+            })
           })
-        })
+        }
         if (!val[2]) {
           this.resourceList.content.push(...data.content)
           data.content = this.resourceList.content
@@ -295,6 +468,23 @@
       },
       isEmpty () {
         return this.resourceList.content.length === 0
+      },
+      allMoney() {
+        let sum = 0
+        this.isShowApcheckList.list.forEach(obj => {
+          if (obj.check) {
+            sum += obj.qty * obj.orderprice
+          }
+        })
+        return sum
+      },
+      isCheckAll() {
+        if (this.isShowApcheckList.list.length === 0) {
+          return true
+        }
+        return this.isShowApcheckList.list.filter(item => {
+          return item.check === false
+        }).length
       }
     },
     components: {
@@ -316,6 +506,9 @@
             return year + '-' + month + '-' + day
           }
         }
+      },
+      computeNum: function(price, num) {
+        return price.toFixed(num)
       }
     }
   }
@@ -486,6 +679,11 @@
       .invoice-btob-wrapper-middle .tilte{
         color: #333333;
       }
+      .middle_btn {
+        text-align: center;
+        font-size: 0.26rem;
+        color: #333333;
+      }
     }
     .invoice-btob-wrapper-content {
       border-top: 1px solid #D9D9D9;
@@ -583,12 +781,16 @@
       }
     }
     .choosescreen-result {
-      margin: 0 0.15rem 0.2rem;
+      .choosescreen-result-list {
+        /*padding: 0 0.15rem 0rem;*/
+        background: #fff;
+        margin:0 0 0.2rem;
+      }
       .choosescreen-result-list-content {
-        display: inline-block;
+        /*display: inline-block;*/
         vertical-align: middle;
-        margin-left: 0.15rem;
-        div {
+        margin: 0 0.15rem;
+        div.OverHidden {
           @include overFlowHidden();
           width: 5.5rem;
         }
@@ -603,4 +805,38 @@
       }
     }
   }
+  .modal-h {
+    background: #F3F3F3;
+    padding: 0.15rem;
+    .overflowhidden {
+      @include overFlowHidden();
+      width: 3.8rem;
+      font-size: 0.28rem;
+      color: #333333;
+      margin: 0 0.1rem;
+    }
+    input {
+      background: #FFFFFF;
+      border: 1px solid #BFBFBF;
+      border-radius: 4px;
+      font-size: 0.28rem;
+      color: #3E81F6;
+      width: 2rem;
+    }
+  }
+  .footerBtn {
+    padding: 0 0 0 0.15rem;
+    height: 1rem;
+    line-height: 1rem;
+    background: #fff;
+    font-size: 0.26rem;
+    color: #666666;
+    border-top: 1px solid #D3D3D3;
+    .bbgoresult {
+      background: #008BF7;
+      color: #fff;
+      width: 1.3rem;
+      text-align: center;
+    }
+  }
 </style>