You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

358 lines
9.6 KiB

<template>
<view class="container">
<view class="tui-order-item boxbg">
<view class="shop-box" v-if="type==0" v-for="(item,index) in list" :key="index">
<view style="padding-left: 20rpx;margin: 40rpx 0; font-weight: bold;font-size: 36rpx;">
<text>日期:{{item.createTime}}</text>
<text style="display: inline-block;padding-left: 20rpx;">操作人:{{item.createByName}}</text>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>客户:{{item.userName}}</text>
<text style="padding: 0 20rpx;">总数量:{{item.productCount}}</text>
<text style="padding: 0 20rpx;" v-if="userType == 0">利润:{{item.lirun.toFixed(2)}}</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<!-- <uni-th align="center" width="100">货号(名称)</uni-th> -->
<uni-th align="center">规格</uni-th>
<uni-th align="center" width="55">数量</uni-th>
<uni-th align="center" width="70">销售价</uni-th>
<uni-th align="center" width="80">采购价</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(items,index1) in item.saleDetailDTOList" :key="index1">
<uni-td align="center">{{items.stockLogList1[0].attributeList | sliceMsg}}</uni-td>
<!-- <uni-td>米黄色 | XXXL码</uni-td> -->
<uni-td align="center">{{items.stockLogList1[0].productCount}}</uni-td>
<uni-td align="center">{{items.discountAmount}}</uni-td>
<uni-td align="center">{{userType == 0?items.purchasePrice:0}}</uni-td>
</uni-tr>
</uni-table>
</view>
<view class="shop-box" v-if="type==1" v-for="(item,index3) in list" :key="index3">
<!-- <uni-card :title="'供应商:'+ (item.purchase.supplierName?item.purchase.supplierName:'暂无')"
:sub-title="item.purchase.createTime?item.purchase.createTime:'暂无'" >
<view class="uni-body" style="text-align: center;"><text v-if="userType==0">采购价{{item.purchaseDetails[0].purchasePrice?item.purchaseDetails[0].purchasePrice:'暂无'}}</text> 总数量{{item.purchase.totalAmount?item.purchase.totalAmount:'暂无'}}</view>
<view style="margin: 5px 0;height: 1px;background: #eee;"></view>
<view style="display: flex;border-bottom: 1px solid #eee;height: 50rpx;line-height: 50rpx;">
<view style="width: 49%;text-align: center;border-right: 1px solid #eee;">商品规格</view>
<view style="width: 50%;text-align: center;">总数量</view>
</view>
<view v-for="(items,index1) in item.purchaseDetails" :key="index1">
<view v-for="(data,index2) in items.stockLogList1" :key="index2" style='height: 50rpx;line-height: 50rpx;'>
<view style="width: 49%;text-align: center;border-right: 1px solid #eee;float: left;">
{{data.attributeList | sliceMsg}}
</view>
<view style="width: 50%;text-align: center;float: left;">
{{data.productCount}}
</view>
</view>
</view>
</uni-card> -->
<view style="padding-left: 20rpx;margin: 40rpx 0; font-weight: bold;font-size: 36rpx;">
<text>日期:{{item.purchase.createTime}}</text>
<text style="display: inline-block;padding-left: 20rpx;">操作人:{{item.purchase.createByName}}</text>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>供应商:{{item.purchase.supplierName}}</text>
<text style="padding: 0 20rpx;" v-if="userType == 0">采购价:{{item.purchaseDetails[0].purchasePrice}}</text>
<text style="padding: 0 20rpx;">总数量:{{item.purchase.totalAmount}}</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<!-- <uni-th align="center" width="100">货号(名称)</uni-th> -->
<uni-th align="center">规格</uni-th>
<uni-th align="center" width="55">数量</uni-th>
<uni-th align="center" width="70">销售价</uni-th>
<uni-th align="center" width="80">采购价</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(items,index1) in item.purchaseDetails" :key="index1">
<uni-td align="center">{{items.stockLogList1[0].attributeList | sliceMsg}}</uni-td>
<!-- <uni-td>米黄色 | XXXL码</uni-td> -->
<uni-td align="center">{{items.stockLogList1[0].productCount}}</uni-td>
<uni-td align="center">{{items.discountAmount}}</uni-td>
<uni-td align="center">{{userType == 0?items.purchasePrice:0}}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
<u-loadmore :status="status" />
</view>
</template>
<script>
export default {
data() {
return {
list:[],
status: 'loadmore',
pages: 1,
pageNum: 1,
productId:'',
type:'',
userType:''
}
},
filters: {
sliceMsg(val) {
var name = ''
if (typeof(val) == 'string') {
let newObj = JSON.parse(val)
for (let as in newObj) {
name += newObj[as] + '/'
}
}
return name;
}
},
onLoad(option) {
this.productId = option.id
this.userType = uni.getStorageSync('type')
this.type = option.type
this.getWaitStorage()
},
onReachBottom() {
if (this.pages >= this.pageNum) return;
this.status = 'loading';
this.pages = ++this.pages;
this.getWaitStorage();
},
methods: {
getWaitStorage(id) {
this.status = 'loading';
var url;
if(this.type==0){ //销售
url = "/app/sale/getSaleListByProductId"
}else{ //入库
url = "/app/purchase/getPurchaseListByProductId"
}
this.tui.request(url, "post", {
productId: this.productId,
pageSize: 10,
pageNum: this.pageNum
}, false, false).then((res) => {
this.status = 'nomore';
if (res.code == 200) {
// this.list = res.result.records
if (this.pages == 1) {
this.list = res.result.records
} else {
this.list = [...this.list, ...res.result.records]
}
for(let i=0;i<this.list.length;i++){
this.list[i].productCount = 0
this.list[i].lirun = 0
for(let m=0;m<this.list[i].saleDetailDTOList.length;m++){
this.list[i].lirun += (this.list[i].saleDetailDTOList[m].discountAmount - this.list[i].saleDetailDTOList[m].purchasePrice) * this.list[i].saleDetailDTOList[m].stockLogList1[0].productCount
this.list[i].productCount += this.list[i].saleDetailDTOList[m].stockLogList1[0].productCount
}
}
this.pageNum = res.result.pages
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
},
onClickItem(e) {
if (this.current !== e.currentIndex) {
this.current = e.currentIndex
}
}
},
}
</script>
<style lang="scss">
.uni-card__header-box{
text-align: center !important;
}
.uni-card__header-content-title{
font-weight: bold;
}
.container {
padding-bottom: 118rpx;
.boxbg {
padding-top: 10rpx;
background-color: #fff;
}
.tui-order-item {
.u-collapse-content {
display: flex;
justify-content: space-between;
line-height: 30px;
}
.tui-goods-info {
width: 100%;
box-sizing: border-box;
background: #fff;
line-height: 26px;
border-top: 10px solid #eee;
.tui-price-flex {
display: flex;
align-items: center;
justify-content: space-between;
}
.tui-size32 {
font-size: 32rpx;
font-weight: 500;
}
.tui-size-24 {
font-size: 24rpx;
}
.tui-price-large {
font-size: 32rpx;
.lineText {
text-decoration: line-through;
font-size: 12px;
color: #888;
}
}
.tui-flex-shrink {
flex-shrink: 0;
}
.tui-goods-price {
width: 100%;
display: flex;
align-items: flex-end;
justify-content: flex-end;
font-size: 24rpx;
}
.tui-primary-color {
color: #EB0909;
}
.tui-pbtm20 {
padding-bottom: 20rpx;
}
}
}
}
.tui-tabbar {
width: 100%;
height: 98rpx;
background: #fff;
position: fixed;
left: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 26rpx;
box-shadow: 0 0 1px rgba(0, 0, 0, .3);
padding-bottom: env(safe-area-inset-bottom);
z-index: 996;
}
.tui-btn-mr {
width:130rpx;
height: 60rpx;
background: #088FEB;
color: #fff;
border-radius: 10px;
line-height: 60rpx;
text-align: center;
margin-right: 30rpx;
}
.shop-box {
margin: 0 auto;
position: relative;
}
.shop-name {
width: 100%;
height: 200rpx;
line-height: 80rpx;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
font-size: 28rpx;
font-weight: bold;
display: flex;
.uni-icons {
color: #088FEB !important;
}
}
.shop-productName {
flex: 1;
display: flex;
flex-direction: column;
padding-left: 20rpx;
}
.shop-productName view {
height: 55rpx;
}
.shop-collapse {
display: flex;
height: 80rpx;
font-size: 26rpx;
line-height: 80rpx;
}
.shop-collapse text {
flex: 1;
text-align: center;
padding-right: 40rpx;
border-right: 1px solid #eee;
}
.content-list {
width: 95%;
margin: 0 auto;
display: flex;
height: 80rpx;
border-bottom: 1px solid #eee;
}
.content-list:last-child {
border-bottom: none;
height: auto;
}
.list-name {
width: 200rpx;
text-align: left;
line-height: 40px;
height: 80rpx;
padding-left: 20rpx;
}
.list-val {
width: 560rpx;
height: 80rpx;
line-height: 80rpx;
}
.list-val input {
width: 400rpx;
height: 60rpx;
display: inline-block;
line-height: 60rpx;
float: left;
margin-top: 10rpx;
padding-left: 20rpx;
border-bottom: 1px solid #088FEB;
}
textarea {
margin: 20rpx;
border: 1px solid #eee;
height: 150rpx;
width: 500rpx;
}
</style>