|
|
@@ -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>
|