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.
 
 
 
 
 

2252 lines
92 KiB

<template>
<view class="container">
<uni-datetime-picker style="margin-bottom:20rpx;" v-model="range" type="daterange"
@change="searchList" />
<view class="tui-order-item boxbg" v-if="type=='khName'">
<view style="background: #fff;border: 1px solid #eee;">
<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" styleType="text"
activeColor="#007aff"></uni-segmented-control>
</view>
<view class="content">
<view v-show="current === 1">
<view class="shop-box" v-for="(item,index4) in list" :key="index4"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view>
<view style="width: 100%;height: 80rpx;line-height: 80rpx;">
<text
style="display:inline-block;width: 55%;text-align: center;font-weight: bold;font-size: 30rpx;">
日期:{{item.createTime | removeStr}}
</text>
<text
style="display:inline-block;width: 45%;text-align: center;border-left: 1px solid #eee;">
操作:{{item.createByName}}
</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="60">货号</uni-th>
<uni-th align="center" width="50">数量</uni-th>
<uni-th align="center" width="70">单价</uni-th>
<uni-th align="center" width="70">总价</uni-th>
<uni-th align="center" width="70">成本</uni-th>
<uni-th align="center" width="70">利润</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item1,index) in item.saleDetailDTOList" :key="index" @tap="xiaoshouDetail('1',item1)">
<uni-td align="center">{{item1.productSn}}</uni-td>
<uni-td align="center">{{item1.productCount == null ?'0':item1.productCount}}</uni-td>
<uni-td align="center">{{item1.discountAmount}}</uni-td>
<uni-td align="center">{{item1.discountAmount * item1.productCount}}</uni-td>
<uni-td align="center">{{userType == 0 && isDownKH == false?(item1.purchasePrice * item1.productCount).toFixed(2):'0'}}</uni-td>
<uni-td align="center">{{userType == 0 && isDownKH == false?((item1.discountAmount - item1.purchasePrice)*item1.productCount).toFixed(2):0}}</uni-td>
</uni-tr>
<uni-tr>
<uni-td align="center">
<text style="font-weight: bold;">总数量:</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">{{item.productCount}}</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;"></text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;"></text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">拿货总价:</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">{{item.totalAmount}}</text>
</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</view>
<view v-show="current === 0">
<view
style="background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);overflow: hidden;color:#eee;">
<view class="top" ref="top">
<view class="top1">
<view class="hello-box">
<view class="hello-left">
<text
style="font-size: 40rpx;font-weight: 800;line-height: 56rpx;color: rgba(86, 132, 255, 1);">
Hi
</text>
</view>
<view class="hello-name">
{{shopName+'对账单'}}
</view>
<view class="hello-right"></view>
</view>
<view class="hello-text">
欢迎查看客户:{{duizhangList.userName == null ?"" : duizhangList.userName}}的对账单
</view>
<view>
<view @tap="getAmount()" style="width: 130rpx;height: 60rpx;background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);color: #fff;border-radius: 10px;position: absolute;top: 200rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
拿货统计
</view>
<!-- 彬嗨商贸 -->
<view @tap="getBuyDetail()" v-if="shopId == '1838094297858183168' || shopId == '1810179818189361152'" style="width: 130rpx;height: 60rpx;background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);color: #fff;border-radius: 10px;position: absolute;top: 280rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
拿货详情
</view>
</view>
<view
style="text-align: center;display: flex;border-top: 1px solid #eee;padding: 20rpx 0;color: #7E5E60;position: absolute;top: 380rpx;width: 100%;font-weight: bold;font-size: 24rpx;">
<view style="display: flex;flex-direction: column;width: 20%;">
<text>{{duizhangList.initialArrears >= 0?'期初欠款':'期初余额'}}</text>
<text>{{duizhangList.initialArrears == null ?"0" :Math.abs(duizhangList.initialArrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 20%;border-left: 1px solid #eee;">
<text>{{duizhangList.endArrears >= 0?'期末欠款':'期末余额'}}</text>
<text>{{duizhangList.endArrears == null ?"0" :Math.abs(duizhangList.endArrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 20%;border-left: 1px solid #eee;">
<text>{{duizhangList.arrears >= 0?'本期欠款':'本期余额'}}</text>
<text>{{duizhangList.arrears == null ?"0" :Math.abs(duizhangList.arrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 20%;border-left: 1px solid #eee;">
<text>拿货总额</text>
<text>{{duizhangList.totalSale == null ?"0" :duizhangList.totalSale}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 20%;border-left: 1px solid #eee;">
<text>退货总额</text>
<text>{{duizhangList.totalReturn == null ?"0" :duizhangList.totalReturn}}</text>
</view>
</view>
</view>
</view>
</view>
<view v-if="duizhangList" v-for="(item,index) in duizhangRecords" :key="index"
style="background: #fff;display: block;overflow: hidden;margin: 20rpx auto;width: 95%;border-radius: 10px;position: relative;">
<view style="display: flex;">
<view
style="margin-top: 40rpx;width: 120rpx;height: 120rpx;border-radius: 80rpx;background: #8470FF;color: #fff;font-size: 26rpx;padding: 24rpx 34rpx;margin: 35rpx 0 0 35rpx;">
{{item.dealingsType == 0 ?"销售开单" :item.dealingsType == 1 ?"退货" :item.dealingsType == 2 ?"回款" :item.dealingsType == 3 && item.amount< 0?"初始余额" :item.dealingsType == 3 && item.amount>= 0?"初始欠款" :item.dealingsType == 4 ?"充值金额" :item.dealingsType == 5 ?"追加欠款" :item.dealingsType == 6 ?"撤销订单" :item.dealingsType == 99 ?"撤销充值" :""}}
</view>
<view style="height: 170rpx;line-height: 50rpx;padding-left: 30rpx;">
<view
style="color: #747474;font-size: 28rpx;font-weight: bold;font-size: 32rpx;color: #000;" :style="{'margin-top':item.isOldName== false?'20rpx':'34rpx'}">
{{item.createTime | removeStr}}
</view>
<view style="color: #747474;font-size: 28rpx;">
操作人:{{item.createByName == null ?"" :item.createByName}}
</view>
<view v-if="item.isOldName== false" style="color: red;font-size: 28rpx;">
客户:{{item.dealingsUserName}}
</view>
<view @tap="oneShare(item,'xiaoshou')" v-if="item.dealingsType == 0 && isDownKH == false && item.delFlag == 0 &&item.billSaleDetailVos != null" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 30rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
分享
</view>
<view @tap="oneShare(item,'chongzhi')" v-if="(item.dealingsType == 4 || item.dealingsType == 5) && isDownKH == false" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 30rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
分享
</view>
<view @tap="revokeRecharge(item)" v-if="(item.dealingsType == 4 || item.dealingsType == 5) && isDownKH == false" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 110rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
撤销
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false &&(item.dealingsType == 4 || item.dealingsType == 5) && item.delFlag == 1" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 110rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
删除
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false &&item.dealingsType == 99" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 110rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
删除
</view>
<img v-if="item.delFlag == 1 && item.dealingsType == 0 && item.billSaleDetailVos != null" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/7650e962bef14f529406866888eeff24.png" alt="" style="position: absolute;top: 0;right:0;width: 300rpx;height: 150rpx;" />
<img v-if="item.delFlag == 1 && (item.dealingsType == 4 || item.dealingsType == 5)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/7650e962bef14f529406866888eeff24.png" alt="" style="position: absolute;top: 0;right:0;width: 300rpx;height: 150rpx;" />
<img v-if="item.delFlag == 1 && item.dealingsType == 0 && item.billSaleDetailVos == null" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/7517e15b5cf843d59b5b69c3a06a5d7b.png" alt="" style="position: absolute;top: 0;right:0;width: 200rpx;height: 110rpx;" />
<img v-if="item.dealingsType == 6 || item.dealingsType == 99" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/862680ecfe5a48b1a410287fb45987ef.png" alt="" style="position: absolute;top: 0;right:0;width: 300rpx;height: 150rpx;" />
</view>
</view>
<view v-if="item.billSaleDetailVos != null || item.billReturnSaleDetailVos != null"
style="height: 60rpx;line-height: 60rpx;padding-left: 20rpx;font-size: 28rpx;background: #FFF0F5;color: #F08080;margin-bottom: 20rpx;width: 95%;margin: 0 auto 20rpx;border-radius: 5px;">
拿货数据~请查收
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false && item.billSaleDetailVos != null && (item.dealingsType == 6 || (item.dealingsType == 0 && item.delFlag == 1))" style="position: absolute;top: 173rpx;right: 17rpx;width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;text-align: center;line-height: 60rpx;border-radius: 5px;">
删除
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false && item.billSaleDetailVos == null && (item.dealingsType == 6 || (item.dealingsType == 0 && item.delFlag == 1))" style="position: absolute;top: 116rpx;right: 17rpx;width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;text-align: center;line-height: 60rpx;border-radius: 5px;">
删除
</view>
<view v-if="item.billSaleDetailVos != null"
style="width: 95%;margin: 0 auto;border: 1.5px solid #000;border-radius: 10px;">
<uni-table stripe>
<uni-tr style="background: #FFBF00;">
<uni-th align="center" width="120">
<text style="font-weight: bold;">
【销】
</text>
货号
</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="(item1,index1) in item.billSaleDetailVos" :key="index1"
@tap="clickDetail(item1)">
<uni-td align="center">
<text>
{{item1.productSn == null ?"" :item1.productSn}}
</text>
</uni-td>
<uni-td
align="center">{{item1.productCount == null ?"0" :item1.productCount}}</uni-td>
<uni-td
align="center">{{item1.discountAmount == null ?"0" :item1.discountAmount}}</uni-td>
<uni-td
align="center">{{item1.totalAmount == null ?"0" :item1.totalAmount}}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="border-bottom: 2px solid #eee;" v-if="item.dealingsType == '4' || item.dealingsType == '5'">
<view style="font-weight: bold;padding: 20rpx;">
充值明细:
</view>
<view style="margin: 0 0 40rpx;">
<view>
<view style="padding-left: 20rpx;">
<text>充值时间:{{item.dealingsTime == null?'':item.dealingsTime}}</text>
</view>
<view style="padding-left: 20rpx;">
<text>充值备注:{{item.dealingsRecordRemark == null?'':item.dealingsRecordRemark}}</text>
</view>
</view>
</view>
</view>
<view v-if="item.billReturnSaleDetailVos != null"
style="width: 95%;margin: 20rpx auto 0;border: 1.5px solid #000;border-radius: 10px;">
<uni-table stripe>
<uni-tr style="background: #FFBF00;">
<uni-th align="center" width="120">
<text style="font-weight: bold;color:#F08080;">
【退】
</text>
货号
</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="(item1,index1) in item.billReturnSaleDetailVos" :key="index1"
@tap="clickDetail(item1)">
<uni-td align="center">
<text>
{{item1.productSn == null ?"" :item1.productSn}}
</text>
</uni-td>
<uni-td
align="center">{{item1.productCount == null ?"0" :item1.productCount}}</uni-td>
<uni-td
align="center">{{item1.discountAmount == null ?"0" :item1.discountAmount}}</uni-td>
<uni-td
align="center">{{item1.totalAmount == null ?"0" :item1.totalAmount}}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="border-bottom: 2px solid #eee;" v-if="item.billSaleDetailVos != null">
<view style="font-weight: bold;padding: 20rpx;">
付款明细:
</view>
<view>
<view>
<view style="padding-left: 20rpx;">
<text>销售金额:{{item.totalAmount == null ?"0" :item.totalAmount}}</text>
</view>
<view style="padding-left: 20rpx;">
<text>退货金额:{{item.returnSaleTotalAmount == null ?"0" :item.returnSaleTotalAmount}}</text>
</view>
</view>
<view style="padding-left: 20rpx;margin-top: 40rpx;">
<view>欠款抵退货:{{item.debtDeductionAmount == null ?"0" :item.debtDeductionAmount}}
</view>
<view>销售抵退货:{{item.saleDeductionAmount == null ?"0" :item.saleDeductionAmount}}
</view>
<view>
余额抵销售:{{item.balanceDeductionAmount == null ?"0" :item.balanceDeductionAmount}}
</view>
</view>
<view v-if="item.remark != '' && item.remark !=undefined && item.remark != null" style="padding-left: 20rpx;margin-top: 40rpx;">
<view>备注:{{item.remark}}</view>
</view>
</view>
<view
style="padding-left: 20rpx;margin: 40rpx 0 20rpx;height: 60rpx;line-height: 60rpx;text-align: center;font-size: 30rpx;font-weight: bold;display: flex;">
<text style="flex: 1;">本单应收:{{item.realAmount == null ?"0" :item.realAmount}}</text>
<text
style="display: inline-block;padding-left: 20rpx;flex: 1;">本单实收:{{item.alreadyEarn == null ?"0" :item.alreadyEarn}}</text>
</view>
</view>
<view style="text-align: center;display: flex;padding: 20rpx 0;color: #000;">
<view v-if="item.lastDebtAmount >= 0" style="flex: 1;display: flex;flex-direction: column;">
<text>之前欠款</text>
<text>{{item.lastDebtAmount == null ?"0" :item.lastDebtAmount}}</text>
</view>
<view v-if="item.lastDebtAmount < 0" style="flex: 1;display: flex;flex-direction: column;">
<text>之前余额</text>
<text>{{item.lastDebtAmount == null ?"0" :Math.abs(item.lastDebtAmount)}}</text>
</view>
<view v-if="item.dealingsType == 5 || item.amount >= 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 5?'追加欠款':item.dealingsType == 4?'充值金额':item.dealingsType == 6?'撤销余额':item.dealingsType == 10?'本单退款':item.dealingsType == 99?'撤销充值':'本单欠款'}}</text>
<text>{{item.amount == null ?"0" :item.dealingsType == 5?Math.abs(item.amount):item.amount}}</text>
</view>
<view v-if="item.amount < 0 && item.dealingsType != 5"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 4?'充值金额':item.dealingsType == 6?'撤销欠款':item.dealingsType == 99?'撤销欠款':'本单余额'}}</text>
<text>{{item.amount == null ?"0" :Math.abs(item.amount)}}</text>
</view>
<view v-if="item.balanceDue >= 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 6?'撤销后欠款':'本单后欠款'}}</text>
<text>{{item.balanceDue == null ?"0" :item.balanceDue}}</text>
</view>
<view v-if="item.balanceDue < 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 6?'撤销后余额':'本单后余额'}}</text>
<text>{{item.balanceDue == null ?"0" :Math.abs(item.balanceDue)}}</text>
</view>
</view>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>对账时间:{{duizhangList.queryDate == null ?"" :duizhangList.queryDate}}</text>
</view>
</view>
<view v-show="current === 2">
<view class="shop-box" v-for="(item,index4) in list" :key="index4"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view>
<view
style="padding-left: 20rpx;margin: 40rpx 0; font-weight: bold;font-size: 36rpx;text-align: center;">
<text>货号:{{item.productSn == null?'':item.productSn}}</text>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>名称:{{item.productName == null?'':item.productName}}</text>
<text
style="padding: 0 20rpx;">总数量:{{item.productCount == undefined ?'0':item.productCount}}</text>
<text style="padding: 0 20rpx;" v-if="userType == 0 && isDownKH == false">采购价:{{item.customerBuySaleVoList[0].customerBuyProductDetailLogVos[0].purchasePrice == null ?'':item.customerBuySaleVoList[0].customerBuyProductDetailLogVos[0].purchasePrice}}</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="100">日期</uni-th>
<uni-th align="center" width="50">数量</uni-th>
<uni-th align="center" width="70">单价</uni-th>
<uni-th align="center" width="70">总价</uni-th>
<uni-th align="center" width="70">利润</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item1,index1) in item.customerBuySaleVoList" :key="index1"
@tap="xiaoshouDetail('2',item1)">
<uni-td align="center">{{item1.createTime | removeStr}}</uni-td>
<uni-td align="center">{{item1.productCount}}</uni-td>
<uni-td
align="center">{{item1.customerBuyProductDetailLogVos[0].realPrice}}</uni-td>
<uni-td
align="center">{{item1.customerBuyProductDetailLogVos[0].realPrice * item1.productCount}}</uni-td>
<uni-td
align="center">{{userType == 0 && isDownKH == false?((item1.customerBuyProductDetailLogVos[0].realPrice - item1.customerBuyProductDetailLogVos[0].purchasePrice) * item1.productCount).toFixed(2):0}}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</view>
<view v-show="current === 3">
<view v-for="(item,index) in list" :key="index"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view style="width: 100%;height: 80rpx;line-height: 80rpx;">
<text
style="display:inline-block;width: 55%;text-align: center;font-weight: bold;font-size: 30rpx;">
日期:{{item.createTime | removeStr}}
</text>
<text
style="display:inline-block;width: 45%;text-align: center;border-left: 1px solid #eee;">
操作:{{item.createByName == null?'':item.createByName}}
</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="85">货号</uni-th>
<uni-th align="center" width="50">数量</uni-th>
<uni-th align="center" width="70">退货价</uni-th>
<!-- <uni-th align="center" width="70">采购价</uni-th> -->
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(items,index1) in item.returnSaleDetailList" :key="index1"
@tap="xiaoshouDetail('3',items)">
<uni-td align="center">{{items.productSn == null ? '': items.productSn}}</uni-td>
<uni-td align="center">{{items.productCount}}</uni-td>
<uni-td align="center">{{items.discountAmount}}</uni-td>
<!-- <uni-td align="center">{{userType == 0 && isDownKH == false?items.purchasePrice == null?0:items.purchasePrice:0}}</uni-td> -->
</uni-tr>
</uni-table>
</view>
</view>
</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 && isDownKH == false">采购价:{{item.purchaseDetails[0].purchasePrice?item.purchaseDetails[0].purchasePrice:'暂无'}}</text>
总数量:{{item.purchase.totalAmount?item.purchase.totalAmount:'暂无'}}</view>
<view style="margin: 10rpx 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>
</view>
<view class="tui-order-item boxbg" v-else>
<view style="background: #fff;border: 1px solid #eee;">
<uni-segmented-control :current="current" :values="itemsGYS" @clickItem="onClickItem" styleType="text"
activeColor="#007aff"></uni-segmented-control>
</view>
<view class="content">
<view v-show="current === 1">
<view class="shop-box" v-for="(item,index4) in list" :key="index4"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view>
<view style="width: 100%;height: 80rpx;line-height: 80rpx;">
<text
style="display:inline-block;width: 55%;text-align: center;font-weight: bold;font-size: 30rpx;">
日期:{{item.purchase.createTime}}
</text>
<text
style="display:inline-block;width: 45%;text-align: center;border-left: 1px solid #eee;">
操作:{{item.purchase.createByName}}
</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="60">货号</uni-th>
<uni-th align="center" width="50">数量</uni-th>
<uni-th align="center" width="70">采购价</uni-th>
<uni-th align="center" width="70">总金额</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item1,index) in item.purchaseDetails" :key="index"
@tap="xiaoshouDetail('1',item1)">
<uni-td align="center">{{item1.productSn}}</uni-td>
<uni-td
align="center">{{item1.productCount == null ?'0':item1.productCount}}</uni-td>
<uni-td align="center">{{item1.purchasePrice?item1.purchasePrice:0}}</uni-td>
<uni-td align="center">{{item1.productCount * item1.purchasePrice || 0}}</uni-td>
</uni-tr>
<uni-tr>
<uni-td align="center">
<text style="font-weight: bold;">总数量:</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">{{item.purchase.productCount}}</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">总价:</text>
</uni-td>
<uni-td align="center">
<text style="font-weight: bold;">{{item.purchase.shouldPay}}</text>
</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</view>
<view v-show="current === 0">
<view
style="background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);overflow: hidden;color:#eee;">
<view class="top" ref="top">
<view class="top1">
<view class="hello-box">
<view class="hello-left">
<text
style="font-size: 40rpx;font-weight: 800;line-height: 56rpx;color: rgba(86, 132, 255, 1);">
Hi
</text>
</view>
<view class="hello-name">
{{shopName+'对账单'}}
</view>
<view class="hello-right"></view>
</view>
<view class="hello-text">
欢迎查看供应商:{{duizhangList.userName == null ?"" : duizhangList.userName}}的对账单
</view>
<view>
<view @tap="getAmount()" style="width: 130rpx;height: 60rpx;background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);color: #fff;border-radius: 10px;position: absolute;top: 200rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
拿货统计
</view>
</view>
<view
style="text-align: center;display: flex;border-top: 1px solid #eee;padding: 10px 0;color: #7E5E60;position: absolute;top: 380rpx;width: 100%;font-weight: bold;">
<view style="display: flex;flex-direction: column;width: 25%;">
<text>{{duizhangList.initialArrears >= 0?'期初欠款':'期初余额'}}</text>
<text>{{duizhangList.initialArrears == null ?"0" :Math.abs(duizhangList.initialArrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 25%;border-left: 1px solid #eee;">
<text>{{duizhangList.endArrears >= 0?'期末欠款':'期末余额'}}</text>
<text>{{duizhangList.endArrears == null ?"0" :Math.abs(duizhangList.endArrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 25%;border-left: 1px solid #eee;">
<text>{{duizhangList.arrears >= 0?'本期欠款':'本期余额'}}</text>
<text>{{duizhangList.arrears == null ?"0" :Math.abs(duizhangList.arrears)}}</text>
</view>
<view
style="display: flex;flex-direction: column;width: 25%;border-left: 1px solid #eee;">
<text>拿货总额</text>
<text>{{duizhangList.totalSale == null ?"0" :duizhangList.totalSale}}</text>
</view>
<!-- <view
style="display: flex;flex-direction: column;width: 20%;border-left: 1px solid #eee;">
<text>退货总额</text>
<text>{{duizhangList.totalReturn == null ?"0" :duizhangList.totalReturn}}</text>
</view> -->
</view>
</view>
</view>
</view>
<view v-if="duizhangList" v-for="(item,index) in duizhangRecords" :key="index"
style="background: #fff;display: block;overflow: hidden;margin: 20rpx auto;width: 95%;border-radius: 10px;position: relative;">
<view style="display: flex;position: relative;">
<view
style="margin-top: 40rpx;width: 100rpx;height: 100rpx;border-radius: 80rpx;background: #8470FF;color: #fff;font-size: 26rpx;padding: 17rpx 24rpx;margin: 35rpx 0 0 35rpx;">
{{item.dealingsType == 0 ?"销售开单" :item.dealingsType == 1 ?"退货" :item.dealingsType == 2 ?"回款" :item.dealingsType == 3 && item.amount< 0?"初始余额" :item.dealingsType == 3 && item.amount>= 0?"初始欠款" :item.dealingsType == 4 ?"充值金额" :item.dealingsType == 5 ?"追加欠款" :item.dealingsType == 6 ?"撤销订单" :item.dealingsType == 7 ?"采购订单" :item.dealingsType == 9 ?"采购退货":item.dealingsType == 10 ?"撤销退货":item.dealingsType == 99 ?"撤销充值" :""}}
</view>
<view style="height: 170rpx;line-height: 50rpx;padding-left: 30rpx;">
<view
style="color: #747474;font-size: 28rpx;font-weight: bold;font-size: 32rpx;color: #000;margin-top:12rpx;">
操作时间:{{item.createTime | removeStr}}
</view>
<view v-if="item.dealingsType == 7 && item.purchaseTime != null" style="color: #747474;font-size: 28rpx;">
拿货时间:{{item.purchaseTime | removeStr}}
</view>
<view style="color: #747474;font-size: 28rpx;">
操作人:{{item.createByName == null ?"" :item.createByName}}
</view>
<view @tap="oneShare(item,'caigou')" v-if="item.dealingsType == 7 && isDownKH == false && item.delFlag == 0 &&item.billSaleDetailVos != null" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 74rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
分享
</view>
<view @tap="oneShare(item,'chongzhi')" v-if="(item.dealingsType == 4 || item.dealingsType == 5) && isDownKH == false" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 74rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
分享
</view>
<view @tap="oneShare(item,'tuihuo')" v-if="item.dealingsType == 9 && isDownKH == false" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 74rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
分享
</view>
<view @tap="revokeRecharge(item)" v-if="(item.dealingsType == 4 || item.dealingsType == 5) && item.delFlag == 0 && isDownKH == false" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 150rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
撤销
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false && (item.dealingsType == 4 || item.dealingsType == 5) && item.delFlag == 1" style="width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;border-radius: 10px;position: absolute;top: 150rpx;right: 20rpx;text-align: center;line-height: 60rpx;">
删除
</view>
</view>
<img v-if="item.delFlag == 1&&( item.dealingsType == 7 || item.dealingsType == 5 || item.dealingsType == 4)" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/7650e962bef14f529406866888eeff24.png" alt="" style="position: absolute;top: 0;right:0;width: 300rpx;height: 150rpx;" />
<img v-if="item.dealingsType == 6 || item.dealingsType == 10 || item.dealingsType == 99" src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/862680ecfe5a48b1a410287fb45987ef.png" alt="" style="position: absolute;top: 0;right:0;width: 300rpx;height: 150rpx;" />
</view>
<view v-if="item.billSaleDetailVos != null || item.billReturnSaleDetailVos != null"
style="height: 60rpx;line-height: 60rpx;padding-left: 20rpx;font-size: 28rpx;background: #FFF0F5;color: #F08080;margin-bottom: 20rpx;width: 95%;margin: 0 auto 20rpx;border-radius: 5px;">
拿货数据~请查收
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false &&item.billSaleDetailVos != null && (item.dealingsType == 6 || (item.dealingsType == 7 && item.delFlag == 1))" style="position: absolute;top: 173rpx;right: 17rpx;width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;text-align: center;line-height: 60rpx;border-radius: 5px;">
删除
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false &&item.billSaleDetailVos == null && (item.dealingsType == 6 || (item.dealingsType == 7 && item.delFlag == 1))" style="position: absolute;top: 116rpx;right: 17rpx;width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;text-align: center;line-height: 60rpx;border-radius: 5px;">
删除
</view>
<view @tap="delDZD(item)" v-if="userType == 0 && isDownKH == false && item.dealingsType == 99" style="position: absolute;top: 116rpx;right: 17rpx;width: 100rpx;height: 60rpx;background: #088FEB;color: #fff;text-align: center;line-height: 60rpx;border-radius: 5px;">
删除
</view>
<view v-if="item.billSaleDetailVos != null"
style="width: 95%;margin: 0 auto;border: 1.5px solid #000;border-radius: 10px;">
<uni-table stripe>
<uni-tr style="background: #FFBF00;">
<uni-th align="center" width="120">
货号
</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="(item1,index1) in item.billSaleDetailVos" :key="index1"
@tap="clickDetail(item1)">
<uni-td align="center">
<text>
{{item1.productSn == null ?"" :item1.productSn}}
</text>
</uni-td>
<uni-td
align="center">{{item1.productCount == null ?"0" :item1.productCount}}</uni-td>
<uni-td
align="center">{{item1.totalAmount / item1.productCount}}</uni-td>
<uni-td
align="center">{{item1.totalAmount == null ?"0" :item1.totalAmount}}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="border-bottom: 2px solid #eee;" v-if="item.billSaleDetailVos != null">
<view style="font-weight: bold;padding: 20rpx;">
付款明细:
</view>
<view>
<view>
<view style="padding-left: 20rpx;">
<text v-if="item.dealingsType == 9 || item.dealingsType == 10">退货金额:{{item.alreadyPay == null ?"0" :item.alreadyPay}}</text>
<text v-else>拿货金额:{{item.shouldPay == null ?"0" :item.shouldPay}}</text>
</view>
</view>
<view style="padding-left: 20rpx;margin-top: 40rpx;">
<view>
余额抵进货:{{item.balanceDeductionAmount == null ?"0" :item.balanceDeductionAmount}}
</view>
</view>
<view v-if="item.remark != '' && item.remark !=undefined && item.remark != null" style="padding-left: 20rpx;margin-top: 40rpx;">
<view>备注:{{item.remark}}</view>
</view>
</view>
<view
style="padding-left: 20rpx;margin: 40rpx 0 20rpx;height: 60rpx;line-height: 60rpx;text-align: center;font-size: 30rpx;font-weight: bold;display: flex;">
<text style="flex: 1;">本单应付:{{item.shouldPay == null ?"0" :item.shouldPay}}</text>
<text
style="display: inline-block;padding-left: 20rpx;flex: 1;">本单实付:{{item.alreadyPay == null ?"0" :item.alreadyPay}}</text>
</view>
</view>
<view style="border-bottom: 2px solid #eee;" v-if="item.dealingsType == '4' || item.dealingsType == '5'">
<view style="font-weight: bold;padding: 20rpx;">
充值明细:
</view>
<view style="margin: 0 0 40rpx;">
<view>
<view style="padding-left: 20rpx;">
<text>充值时间:{{item.dealingsTime == null?'':item.dealingsTime}}</text>
</view>
<view style="padding-left: 20rpx;">
<text>充值备注:{{item.dealingsRecordRemark == null?'':item.dealingsRecordRemark}}</text>
</view>
</view>
</view>
</view>
<view style="text-align: center;display: flex;padding: 20rpx 0;color: #000;">
<view v-if="item.lastDebtAmount >= 0" style="flex: 1;display: flex;flex-direction: column;">
<text>之前欠款</text>
<text>{{item.lastDebtAmount == null ?"0" :item.lastDebtAmount}}</text>
</view>
<view v-if="item.lastDebtAmount < 0" style="flex: 1;display: flex;flex-direction: column;">
<text>之前余额</text>
<text>{{item.lastDebtAmount == null ?"0" :Math.abs(item.lastDebtAmount)}}</text>
</view>
<view v-if="item.dealingsType == 5 || item.amount >= 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 5?'追加欠款':item.dealingsType == 4?'充值金额':item.dealingsType == 6?'撤销欠款':item.dealingsType == 9?'本单退款':item.dealingsType == 10?'本单退款':item.dealingsType == 99?'撤销充值':'本单欠款'}}</text>
<text>{{item.amount == null ?"0" :item.dealingsType == 5?Math.abs(item.amount):item.amount}}</text>
</view>
<view v-if="item.amount < 0 && item.dealingsType != 5"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 4?'充值金额':item.dealingsType == 6?'撤销余额':item.dealingsType == 9?'本单退款':item.dealingsType == 10?'本单退款':item.dealingsType == 99?'撤销欠款':'本单余额'}}</text>
<text>{{item.amount == null ?"0" :Math.abs(item.amount)}}</text>
</view>
<view v-if="item.balanceDue >= 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 6?'撤销后欠款':'本单后欠款'}}</text>
<text>{{item.balanceDue == null ?"0" :item.balanceDue}}</text>
</view>
<view v-if="item.balanceDue < 0"
style="flex: 1;border-left: 1px solid #eee;display: flex;flex-direction: column;">
<text>{{item.dealingsType == 6?'撤销后余额':'本单后余额'}}</text>
<text>{{item.balanceDue == null ?"0" :Math.abs(item.balanceDue)}}</text>
</view>
</view>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>对账时间:{{duizhangList.queryDate == null ?"" :duizhangList.queryDate}}</text>
</view>
<view
style="text-align: center;height: 100rpx;line-height: 100rpx;border-top: 1px solid #eee;color: #777;">
<text>用快衣店AI,入库、开单更方便</text>
</view>
</view>
<view v-show="current === 2">
<view class="shop-box" v-for="(item,index4) in list" :key="index4"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view>
<view
style="padding-left: 20rpx;margin: 40rpx 0; font-weight: bold;font-size: 36rpx;text-align: center;">
<text>货号:{{item.productSn}}</text>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>名称:{{item.productName == null ? '' : item.productName}}</text>
<text
style="padding: 0 20rpx;">总数量:{{item.productCount == undefined ?'0':item.productCount}}</text>
<!-- <text style="padding: 0 20rpx;" v-if="userType == 0">利润:{{item1.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" width="50">数量</uni-th>
<!-- <uni-th align="center" width="70">拿货价</uni-th> -->
<uni-th align="center" width="70">采购价</uni-th>
<uni-th align="center" width="70">总金额</uni-th>
<!-- <uni-th align="center" width="70">利润</uni-th> -->
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item1,index1) in item.supplierBuySaleVos" :key="index1"
@tap="xiaoshouDetail('2',item1)">
<uni-td align="center">{{item1.createTime | removeStr}}</uni-td>
<uni-td align="center">{{item1.productCount}}</uni-td>
<!-- <uni-td align="center">{{item1.supplierBuyProductDetailLogVos[0].realPrice * item1.productCount}}</uni-td> -->
<uni-td
align="center">{{userType == 0 ?(item1.supplierBuyProductDetailLogVos[0].purchasePrice == null?0:item1.supplierBuyProductDetailLogVos[0].purchasePrice):0}}</uni-td>
<uni-td align="center">{{item1.productCount * item1.supplierBuyProductDetailLogVos[0].purchasePrice || 0}}</uni-td>
<!-- <uni-td align="center">{{userType == 0 && isDownKH == false?((item1.supplierBuyProductDetailLogVos[0].realPrice - item1.customerBuyProductDetailLogVos[0].purchasePrice) * item1.productCount).toFixed(2):0}}</uni-td> -->
</uni-tr>
</uni-table>
</view>
</view>
</view>
<view v-show="current === 3">
<view v-for="(item,index) in list" :key="index"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view style="width: 100%;height: 80rpx;line-height: 80rpx;">
<text
style="display:inline-block;width: 55%;text-align: center;font-weight: bold;font-size: 30rpx;">
日期:{{item.createTime | removeStr}}
</text>
<text
style="display:inline-block;width: 45%;text-align: center;border-left: 1px solid #eee;">
操作:{{item.createByName}}
</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="85">货号</uni-th>
<uni-th align="center" width="50">数量</uni-th>
<uni-th align="center" width="70">退货价</uni-th>
<uni-th align="center" width="70">采购价</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(items,index1) in item.returnSaleDetailList" :key="index1"
@tap="xiaoshouDetail('3',items)">
<uni-td align="center">{{items.productSn}}</uni-td>
<uni-td align="center">{{item.productCount}}</uni-td>
<uni-td align="center">{{items.discountAmount}}</uni-td>
<uni-td
align="center">{{userType == 0 && isDownKH == false?items.purchasePrice == null?0:items.purchasePrice:0}}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</view>
</view>
<view v-if="type =='khName'&& isDownKH == false" style="width: 90rpx;height: 80rpx;position: fixed;bottom: 50rpx;right: 40rpx;">
<button open-type="share" class="shareBtn">
<uni-icons type="redo" size="32"></uni-icons>
</button>
</view>
<u-loadmore :status="status" />
<!-- 弹出销售商品规格 -->
<uni-popup ref="xsdetailPopup" background-color="#fff">
<view class="detail-popup">
<view @tap="$refs.xsdetailPopup.close()"
style='width: 50rpx;height: 50rpx;position: absolute;right: 20rpx;top: 25rpx;'>
<uni-icons type="closeempty" color="red" size="22"></uni-icons>
</view>
<view style="height: 100rpx;line-height: 100rpx;font-weight: bold;font-size: 36rpx;text-align: center;">
规格数量详情
</view>
<uni-table border stripe emptyText="暂无更多数据" style="margin-bottom: 20rpx;border-radius: 10px;">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="80">规格</uni-th>
<uni-th align="center" width="55">数量</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item,index) in GDList" :key="index">
<uni-td align="center">{{item.attributeList | sliceMsg}}</uni-td>
<uni-td align="center">{{item.productCount}}</uni-td>
</uni-tr>
</uni-table>
</view>
</uni-popup>
<!-- 拿货详情 -->
<uni-popup ref="buyDetailPopup" background-color="#fff">
<view class="buy-popup">
<view @tap="$refs.buyDetailPopup.close()"
style='width: 50rpx;height: 50rpx;position: absolute;right: 20rpx;top: 25rpx;'>
<uni-icons type="closeempty" color="red" size="22"></uni-icons>
</view>
<view style="height: 100rpx;line-height: 100rpx;font-weight: bold;font-size: 36rpx;text-align: center;">
拿货详情(不含退货)
</view>
<view class="shop-box" v-for="(value,key) in Array.from(buyList)" :key="key"
style="background: #fff;display: block;overflow: hidden;margin: 0 auto 20rpx;">
<view>
<view
style="padding-left: 20rpx;margin: 40rpx 0; font-weight: bold;font-size: 36rpx;text-align: center;">
<text>货号:{{value[1].productSn == null?'':value[1].productSn}}</text>
</view>
<view style="text-align: center;margin-bottom:20rpx;">
<text>名称:{{value[1].productName == null?'':value[1].productName}}</text>
</view>
<uni-table border stripe emptyText="暂无更多数据">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="100">规格</uni-th>
<uni-th align="center" width="50">已退货数</uni-th>
<uni-th align="center" width="50">剩余数</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(values,keys) in Array.from(value[1].stockLogList)" :key="keys">
<uni-td align="center">{{values[1].attributeList | sliceMsg}}</uni-td>
<uni-td align="center">{{values[1].returnNum ? values[1].returnNum : 0}}</uni-td>
<uni-td align="center">{{values[1].productCount}}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</view>
</uni-popup>
<!-- 弹出商品规格 -->
<uni-popup ref="detailPopup" background-color="#fff">
<view class="detail-popup">
<view @tap="$refs.detailPopup.close()"
style='width: 50rpx;height: 50rpx;position: absolute;right: 20rpx;top: 25rpx;'>
<uni-icons type="closeempty" color="red" size="22"></uni-icons>
</view>
<view style="height: 100rpx;line-height: 100rpx;font-weight: bold;font-size: 36rpx;text-align: center;">
{{detailList.productName}}({{detailList.productSn}})
</view>
<uni-table border stripe emptyText="暂无更多数据" style="margin-bottom: 20rpx;">
<!-- 表头行 -->
<uni-tr style="background: #eee;">
<uni-th align="center" width="80">规格</uni-th>
<uni-th align="center" width="55">数量</uni-th>
</uni-tr>
<!-- 表格数据行 -->
<uni-tr v-for="(item,index) in detailList.billAttributeListVos" :key="index">
<uni-td align="center">{{item.attributeList | sliceMsg}}</uni-td>
<uni-td align="center">{{item.productCount}}</uni-td>
</uni-tr>
</uni-table>
</view>
</uni-popup>
<!-- 分享确认弹窗 -->
<uni-popup ref="sharePopup" background-color="#fff">
<view class="type-popup">
<view style="height: 120rpx;font-size: 36rpx;font-weight: bold;line-height: 120rpx;text-align: center;">
提示
</view>
<view style="height: 80rpx;font-size: 28rpx;text-align: center;font-weight: bold;">
确认要将此条对账单分享给微信好友吗
</view>
<view
style="font-size:30rpx;width: 100%;height: 90rpx;line-height: 90rpx;text-align: center;border-radius: 0;background: linear-gradient(90deg, #60F3FF, #088FEB);color: #fff;display: flex;position: absolute;bottom: 0;">
<view style="width:50%;" @tap="$refs.sharePopup.close()">取消</view>
<view style="width:50%;">
<button open-type="share" style="background: linear-gradient(90deg, #FF9797, #FFC1E0);color:#fff;border-radius: 0;font-size: 35.4rpx;">
确认
</button>
</view>
</view>
</view>
</uni-popup>
<view v-if="shijiPrice" style="width:100%;height:100%;position: fixed;top: 0;background: rgba(0,0,0,0.7);">
<view
style="position: fixed;margin:auto;height:400rpx;left:0;right:0;top:0;bottom:0;width:600rpx;background:#fff;border-radius: 10px;color: #000;">
<view style="width:100%;height:80rpx;font-size: 30rpx;text-align: center;line-height: 80rpx;font-weight: bold;">
拿货明细
</view>
<view style="display: flex;">
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{(salePrice).toFixed(2)}}</text>
<text>拿货总金额</text>
</view>
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{saleCount}}</text>
<text>总款数</text>
</view>
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{saleAllCount}}</text>
<text>总件数</text>
</view>
</view>
<view style="display: flex;margin-top: 35rpx;">
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{(returnPrice).toFixed(2)}}</text>
<text>退货总金额</text>
</view>
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{returnCount}}</text>
<text>总款数</text>
</view>
<view style="width: 33%;display: flex;flex-direction: column;text-align: center;">
<text style="font-weight: bold;">{{returnAllCount}}</text>
<text>总件数</text>
</view>
</view>
<view @tap="shijiPrice = false" style="height: 100rpx;width: 100%;line-height: 100rpx;text-align: center;border-top: 1px solid #eee;font-size: 40rpx;margin-top: 60rpx;;">
确定
</view>
</view>
</view>
<view style="position: absolute;top: -3000rpx;z-index: -1;opacity: 0;">
<canvas canvas-id="myCanvas1" style="width: 3030rpx; height: 2420rpx;"></canvas>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list: [],
buyList:new Map(),
range: [],
oneShareData:{},
GDList: [],
salePrice:0,
saleCount:0,
saleAllCount:0,
returnPrice:0,
returnCount:0,
returnAllCount:0,
status: 'loadmore',
isDetail:'2',
oneShareId:'',
shareSuccess:false,
pages: 1,
shijiPrice:false,
pageNum: 1,
userId: '',
FWHPic:'https://jewel-shop.oss-cn-beijing.aliyuncs.com/f2ba2080aaa54c618c2e47df4f220087.png',
mini_program_openid:'',
unionid:'',
official_account_openid:'',
shopId: '',
duizhangRecords: [],
detailList: {},
duizhangList: {},
type: '',
isDownKH: false,
customId:'',
userType: uni.getStorageSync('type'),
items: ['对账单', '拿货(按订单)', '拿货(按商品)', '退货明细'],
itemsGYS: ['对账单', '拿货(按订单)', '拿货(按商品)'],
current: 0,
shopName: ""
}
},
filters: {
sliceMsg(val) {
var name = ''
if (typeof(val) == 'string') {
let newObj = JSON.parse(val)
for (let as in newObj) {
name += newObj[as] + '/'
}
}
return name;
},
removeStr(val) {
if (val == null) {
return "";
} else {
var dotIndex = val.indexOf('.');
if (dotIndex !== -1) {
return val.substring(0, dotIndex);
}
return val;
}
}
},
async onShareAppMessage() {
this.shareSuccess = true
if(this.isDetail =='0'){ //销售单详情
var dotIndex = this.oneShareData.createTime.indexOf(' ');
if (dotIndex !== -1) {
this.oneShareData.createTime = this.oneShareData.createTime.substring(0, dotIndex);
}
let titleText = this.shopName +' '+ this.oneShareData.createTime + '\n销售单'
const imageUrl = await this.senrPath()
this.$refs.sharePopup.close()
this.isDetail = '3'
return {
title: titleText,
imageUrl: imageUrl,
path: '/package1/index/orderDetail?id='+ this.oneShareId + '&oneShareData='+JSON.stringify(this.oneShareData) + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId + '&customId='+this.customId+ '&shopId=' +uni.getStorageSync('shopId')
}
}else if(this.isDetail =='1'){ //充值记录
//客户名,操作人,操作时间,之前欠款,充值金额,本单后余额,店铺id
var dotIndex = this.oneShareData.createTime.indexOf(' ');
if (dotIndex !== -1) {
this.oneShareData.createTime = this.oneShareData.createTime.substring(0, dotIndex);
}
let titleText = this.shopName +'充值记录\n'+ this.oneShareData.createTime
const imageUrl = await this.senrPath()
this.$refs.sharePopup.close()
this.isDetail = '3'
let path = ''
if(this.type == 'khName'){
path = '/package1/index/rechargeRecord?type=ku&oneShareData='+ JSON.stringify(this.oneShareData) + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId + '&customId='+this.customId+ '&shopId=' +uni.getStorageSync('shopId')
}else{
path = '/package1/index/rechargeRecord?oneShareData='+ JSON.stringify(this.oneShareData) + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId + '&customId='+this.customId+ '&shopId=' +uni.getStorageSync('shopId')
}
return {
title: titleText,
imageUrl: imageUrl,
path: path
}
}else if(this.isDetail =='4'){ //采购
this.$refs.sharePopup.close()
this.isDetail = '3'
return {
title: this.shopName + '的对账单',
imageUrl: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/b28b3d46c21d4f60a334b25f56175cf3.jpg',
path: '/package1/index/waitStorageDetail?id='+ this.oneShareId + '&oneShareData='+JSON.stringify(this.oneShareData) + '&shopId='+this.shopId + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId
}
}else if(this.isDetail =='5'){ //采购
this.$refs.sharePopup.close()
this.isDetail = '3'
return {
title: this.shopName + '的对账单',
imageUrl: 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/b28b3d46c21d4f60a334b25f56175cf3.jpg',
path: '/package1/index/waitStorageDetail?returnInv=1&id='+ this.oneShareId + '&oneShareData='+JSON.stringify(this.oneShareData) + '&shopId='+this.shopId + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId
}
}else{
let titleText = this.shopName +'对账单\n'+ this.range[0] +'至'+this.range[1]
const imageUrl = await this.senrPath()
return {
title: titleText,
imageUrl: imageUrl,
path: '/package1/index/shareBill?popleType=khName&id=' + this.userId + '&shopId=' + this
.shopId + '&shopName=' + this.shopName + '&range=' + JSON.stringify(this.range) + '&mini_program_openid=' + this.miniProgramOpenid + '&unionid=' + this.unionid +'&official_account_openid='+ this.officialAccountOpenid + '&userId='+ this.userId + '&customId='+this.customId + '&userName=' + this.duizhangList.userName
}
}
},
onLoad(option) {
let that = this;
this.customId = option.id
this.userId = option.userId
this.type = option.popleType
this.shopName = option.shopName ? option.shopName : uni.getStorageSync('shopName')
this.shopId = option.shopId ? option.shopId : uni.getStorageSync('shopId')
this.miniProgramOpenid = option.miniProgramOpenid
this.officialAccountOpenid = option.officialAccountOpenid
this.unionid = option.unionid
this.getMonth();
if (option.shopId) {
this.isDownKH = true
}
uni.setNavigationBarTitle({
title: this.shopName
});
this.duizhangdan()
},
onShow(){
let that = this;
if(this.range ==''){
this.getMonth();
}
if(this.shareSuccess){
if((this.officialAccountOpenid == "null" || this.officialAccountOpenid == "" || this.officialAccountOpenid == undefined || this.officialAccountOpenid == null) && this.type == 'khName' && this.duizhangList.userName != '散客'){
uni.showModal({
title: "提示",
content: "该客户没有关注公众号,无法接收消息通知,是否邀请用户关注?",
success: function(res) {
if (res.confirm) {
uni.previewImage({
urls: [that.FWHPic]
})
}
}
})
}
this.shareSuccess = false
}
// if(uni.getStorageSync('mini_program_openid')){
// this.getToken()
// }
},
onReachBottom() {
if (this.pageNum >= this.pages) return;
this.status = 'loading';
this.pageNum++;
if (this.current == 0) {
this.duizhangdan()
} else {
this.getList();
}
},
methods: {
//获取code
getToken() {
uni.login({
provider: 'weixin',
success(res) {
this.getOpenId(res.code)
}
});
},
//获取小程序openid
getOpenId(code) {
this.tui.request("", "post", {
appid: 'wx6d7d4fb58d1502db',
secret: '3a2c8cd00926764bbd12fd7361e01f1d',
js_code: code,
grant_type: "authorization_code",
customId: ''
}, false, false).then((res) => {
this.status = 'nomore';
if (res.code == 200) {
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
},
//canvas画分享的图
senrPath(){
return new Promise(async (resolve, reject) => {
let that = this
uni.showLoading({
title:'生成中...'
})
const ctx = uni.createCanvasContext('myCanvas1', this);
//背景图
let imgA = 'https://jewel-shop.oss-cn-beijing.aliyuncs.com/30cc553859944b1e9fa3ce2d87905612.png';
uni.downloadFile({
url: imgA,
success: (res2) => {
if (res2.statusCode === 200) {
// // 绘制第一张图片
ctx.drawImage(res2.tempFilePath, 0, 0, 1515, 1210);
ctx.draw(true);
ctx.setFontSize(65)
// 设置文字颜色
ctx.fillStyle = '#FF5809';
let beginHeight = 150
// 计算居中位置
beginHeight += 100
if(this.isDetail == '1'){ //充值记录
ctx.font = 'bold 80px SimSun';
// 绘制文字
ctx.fillText('充值记录', 350, beginHeight);
ctx.draw(true)
// 设置文字颜色
ctx.fillStyle = '#FF5809';
beginHeight+=150
var text1 = (this.oneShareData.lastDebtAmount >= 0?'之前欠款:':'之前余额:') + Math.abs(this.oneShareData.lastDebtAmount)
ctx.font = 'bold 60px SimSun';
// 绘制文字
ctx.fillText(text1, 350, beginHeight);
ctx.draw(true)
beginHeight+=150
//
var text2 = (this.oneShareData.dealingsType == 5?'追加欠款:':this.oneShareData.dealingsType == 4?'充值金额:':'充值金额:')+Math.abs(this.oneShareData.amount)
// 绘制文字
ctx.fillText(text2, 350, beginHeight);
ctx.draw(true)
beginHeight+=150
var text2 = (this.oneShareData.balanceDue >= 0?'本单后欠款:':'本单后余额:')+Math.abs(this.oneShareData.balanceDue)
// 绘制文字
ctx.fillText(text2, 350, beginHeight);
ctx.draw(true)
}else if(this.isDetail == '0'){
// // 绘制第一张图片
ctx.drawImage(res2.tempFilePath, 0, 0, 1515, 1210);
ctx.draw(true);
// 设置字体样式
ctx.font = 'bold 80px SimSun';
// 设置文字颜色
ctx.fillStyle = '#FF5809';
let beginHeight = 150
var textWidth = 350;
// 计算居中位置
beginHeight += 100
// 绘制文字
ctx.fillText('销售', textWidth, beginHeight);
ctx.draw(true)
// 设置字体样式
ctx.font = 'bold 60px SimSun';
// 设置文字颜色
ctx.fillStyle = '#FF5809';
beginHeight+=100
var text = '总件数:'+this.oneShareData.productCount+' 总金额:'+this.oneShareData.totalAmount
// 绘制文字
ctx.fillText(text, textWidth, beginHeight);
ctx.draw(true)
if(that.oneShareData.returnCount >0){
beginHeight+=120
var textWidth = 350;
// 绘制文字
// 设置字体样式
ctx.font = 'bold 80px SimSun';
// 设置文字颜色
ctx.fillStyle = '#FF5809';
ctx.fillText('退货', textWidth, beginHeight);
ctx.draw(true)
beginHeight+=100
// 设置字体样式
ctx.font = 'bold 60px SimSun';
// 设置文字颜色
ctx.fillStyle = '#FF5809';
var text = '总件数:'+that.oneShareData.returnCount+' 总金额:'+this.oneShareData.returnPrice
// 绘制文字
ctx.fillText(text, textWidth, beginHeight);
ctx.draw(true)
}
var textWidth = 350;
beginHeight+=150
// 绘制文字
// 设置字体样式
ctx.font = 'bold 80px SimSun';
// 设置文字颜色
ctx.fillStyle = 'black';
ctx.fillText('本单应收:'+this.oneShareData.realAmount, textWidth, beginHeight);
ctx.draw(true)
beginHeight+=120
var textWidth = 350;
// 绘制文字
// 设置字体样式
ctx.font = 'bold 80px SimSun';
// 设置文字颜色
ctx.fillStyle = 'black';
ctx.fillText('本单实收:'+this.oneShareData.alreadyEarn, textWidth, beginHeight);
ctx.draw(true)
beginHeight+=120
}else{
ctx.font = 'bold 80px SimSun';
// 绘制文字
ctx.fillText('对账单', 350, beginHeight);
ctx.draw(true)
// 设置文字颜色
ctx.fillStyle = '#FF5809';
ctx.font = 'bold 60px SimSun';
beginHeight+=150
var text1 = (this.duizhangList.endArrears >= 0?'期末欠款:':'期末余额:') + (this.duizhangList.endArrears==null?'0':this.duizhangList.endArrears)
ctx.setFontSize(54)
// 绘制文字
ctx.fillText(text1, 350, beginHeight);
ctx.draw(true)
beginHeight+=150
var text2 = '拿货总额:'+(this.duizhangList.totalSale==null?'0':this.duizhangList.totalSale)
// 绘制文字
ctx.fillText(text2, 350, beginHeight);
ctx.draw(true)
beginHeight+=150
var text2 = '退货总额:'+(this.duizhangList.totalReturn == null ?"0" :this.duizhangList.totalReturn)
// 绘制文字
ctx.fillText(text2, 350, beginHeight);
ctx.draw(true)
}
setTimeout(ress=>{
uni.canvasToTempFilePath({
x: 0,
y: 0,
width: 1515,
height: 1210,
destWidth: 1515,
destHeight: 1210,
canvasId: 'myCanvas1',
success: (res3) => {
uni.hideLoading()
return resolve(res3.tempFilePath)
}
});
},500)
}
}
});
})
},
//获取当月1日到当前时间
getMonth() {
let date = new Date()
let year = date.getFullYear().toString() //'年'
let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1).toString() : (date.getMonth() + 1)
.toString() //'月'
let da = date.getDate() < 10 ? '0' + date.getDate().toString() : date.getDate().toString() //'日'
let end = year + '-' + month + '-' + da //当天
let beg = '2024-01-01' //当月第一天
this.range = [beg, end]
},
delDZD(item){
let that = this;
uni.showModal({
title: "提示",
content: "确定删除此条数据吗?",
success: function(res) {
uni.showLoading({
title: '加载中...'
})
if (res.confirm) {
that.tui.request('/app/dealingRecord/deleteDealingsRecord', "post", {
id:item.id
}, false, true).then((res) => {
if (res.code == 200) {
that.tui.toast('删除成功')
that.duizhangList = []
that.pageNum = 1
that.pages = 1
that.duizhangdan()
} else {
that.tui.toast(res.message)
}
}).catch((res) => {})
}
setTimeout(res1 => {
uni.hideLoading();
}, 500)
}
})
},
duizhangdan() {
var url,data
if(this.type == 'gysName'){
url = '/app/bill/getSupplierBill'
data = {
supplierId:this.customId,
    shopId:this.shopId,
    pageNum:this.pageNum,
startDate: this.range[0],
endDate: this.range[1],
    pageSize:"10"
}
}else{
url = "/app/bill/getCustomerBill"
data = {
customerId: this.customId,
pageNum: this.pageNum,
pageSize: '10',
startDate: this.range[0],
endDate: this.range[1],
shopId: this.shopId
}
}
this.tui.request(url, "post", data, false, false).then((res) => {
if (res.code == 200) {
this.status = 'nomore';
if(this.type == 'gysName'){
if (this.pages == 1) {
this.duizhangList = res.result
this.duizhangRecords = res.result.supplierBillSaleVos.records
} else {
for (let i = 0; i < res.result.supplierBillSaleVos.records.length; i++) {
this.duizhangRecords.push(res.result.supplierBillSaleVos.records[i])
}
}
this.pages = res.result.supplierBillSaleVos.pages
}else{
for(let i=0;i<res.result.customerBillSaleVos.records.length;i++){
res.result.customerBillSaleVos.records[i].isOldName = true
if(res.result.customerBillSaleVos.records[i].dealingsUserName != res.result.userName){
res.result.customerBillSaleVos.records[i].isOldName = false
}
}
if (this.pages == 1) {
this.duizhangList = res.result
this.duizhangRecords = res.result.customerBillSaleVos.records
} else {
for (let i = 0; i < res.result.customerBillSaleVos.records.length; i++) {
this.duizhangRecords.push(res.result.customerBillSaleVos.records[i])
}
}
this.pages = res.result.customerBillSaleVos.pages
}
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
},
xiaoshouDetail(type, item) {
if (item) {
if (type == '1') {
this.GDList = item.stockLogList1
this.$refs.xsdetailPopup.open()
} else if (type == '2') {
if(this.type == 'gysName'){
this.GDList = item.supplierBuyProductDetailLogVos
}else{
this.GDList = item.customerBuyProductDetailLogVos
}
this.$refs.xsdetailPopup.open()
} else if (type == '3') {
this.GDList = item.stockLogList1
this.$refs.xsdetailPopup.open()
}
}
},
getBuyDetail(){
this.$refs.buyDetailPopup.open('bottom')
this.tui.request('/app/sale/listPages', "post", {
userId: this.customId,
pageVo: {
pageSize: 10000000,
pageNumber: 1
},
searchStr: "",
startTime: this.range[0],
endTime: this.range[1],
shopId: this.shopId,
fromWhere: 1
}, false, false).then((res) => {
this.status = 'nomore';
if (res.code == 200) {
let listData = res.result.records
this.buyList = new Map()
for (let i = 0; i < listData.length; i++) {
for (let j = 0; j < listData[i].saleDetailDTOList.length; j++) {
if(this.buyList.size == 0){ //当前没有数据
this.buyList.set(listData[i].saleDetailDTOList[j].productSn,listData[i].saleDetailDTOList[j])
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList = new Map()
for (let m = 0; m < listData[i].saleDetailDTOList[j].stockLogList1.length; m++) {
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).productCount += listData[i]
.saleDetailDTOList[j].stockLogList1[m].productCount
if(this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.size==0){
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.set(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList,listData[i].saleDetailDTOList[j].stockLogList1[m])
}else{
if(this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.has(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList)){
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.get(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList).productCount += listData[i].saleDetailDTOList[j].stockLogList1[m].productCount
}else{
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.set(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList,listData[i].saleDetailDTOList[j].stockLogList1[m])
}
}
}
}else{ //有数据
if(this.buyList.has(listData[i].saleDetailDTOList[j].productSn)){ // 数据相同
for (let m = 0; m < listData[i].saleDetailDTOList[j].stockLogList1.length; m++) {
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).productCount += listData[i]
.saleDetailDTOList[j].stockLogList1[m].productCount
if(this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.has(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList)){
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.get(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList).productCount += listData[i].saleDetailDTOList[j].stockLogList1[m].productCount
}else{
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.set(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList,listData[i].saleDetailDTOList[j].stockLogList1[m])
}
}
}else{ // 数据不同
this.buyList.set(listData[i].saleDetailDTOList[j].productSn,listData[i].saleDetailDTOList[j])
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList = new Map()
for (let m = 0; m < listData[i].saleDetailDTOList[j].stockLogList1.length; m++) {
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).productCount += listData[i]
.saleDetailDTOList[j].stockLogList1[m].productCount
if(this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.size==0){
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.set(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList,listData[i].saleDetailDTOList[j].stockLogList1[m])
}else{
if(this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.has(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList)){
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.get(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList).productCount += listData[i].saleDetailDTOList[j].stockLogList1[m].productCount
}else{
this.buyList.get(listData[i].saleDetailDTOList[j].productSn).stockLogList.set(listData[i].saleDetailDTOList[j].stockLogList1[m].attributeList,listData[i].saleDetailDTOList[j].stockLogList1[m])
}
}
}
}
}
}
}
this.tui.request("/app/return/getReturnSaleListByUserId", "post", {
userId: this.customId,
startDate: this.range[0],
endDate: this.range[1],
pageNum: 1,
pageSize: "10000000",
shopId: this.shopId
}, false, false).then((res) => {
this.status = 'nomore';
if (res.code == 200) {
let returnDetail = res.result.records
for (let i = 0; i < returnDetail.length; i++) {
for (let j = 0; j < returnDetail[i].returnSaleDetailList.length; j++) {
if(this.buyList.has(returnDetail[i].returnSaleDetailList[j].productSn)){
for (let m = 0; m < returnDetail[i].returnSaleDetailList[j].stockLogList1.length; m++) {
if(this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.has(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList)){
if(this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.get(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList).returnNum == undefined){
this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.get(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList).returnNum = 0
}
this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.get(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList).returnNum += returnDetail[i].returnSaleDetailList[j].stockLogList1[m].productCount
this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).productCount -= returnDetail[i].returnSaleDetailList[j].stockLogList1[m].productCount
this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.get(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList).productCount -= returnDetail[i].returnSaleDetailList[j].stockLogList1[m].productCount
if(this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.get(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList).productCount <= 0){
this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.delete(returnDetail[i].returnSaleDetailList[j].stockLogList1[m].attributeList)
}
if(this.buyList.get(returnDetail[i].returnSaleDetailList[j].productSn).stockLogList.size == 0){
this.buyList.delete(returnDetail[i].returnSaleDetailList[j].productSn)
}
this.$forceUpdate()
}
}
}
}
}
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
},
getAmount(){
this.salePrice = 0
this.saleCount = 0
this.saleAllCount = 0
this.returnPrice = 0
this.returnCount = 0
this.returnAllCount = 0
this.shijiPrice = true
if(this.type=='khName'){
this.tui.request("/app/customer/getCustomerData", "POST", {
customerId: this.customId,
startDate: this.range[0],
endDate:this.range[1]
}, false, false).then((res1) => {
if (res1.code == 200) {
if(res1.result != null){
this.salePrice = Number(res1.result.salePrice)
this.saleCount = res1.result.saleCount
this.returnPrice = Number(res1.result.saleReturnPrice)
this.returnCount = res1.result.saleReturnCount
if(res1.result.productDataVos != null && res1.result.productDataVos.length > 0){
for(let i = 0;i<res1.result.productDataVos.length;i++){
this.saleAllCount += res1.result.productDataVos[i].productCount
}
}
if(res1.result.returnProductDataVos != null && res1.result.returnProductDataVos.length > 0){
for(let i = 0;i<res1.result.returnProductDataVos.length;i++){
this.returnAllCount += res1.result.returnProductDataVos[i].productCount
}
}
}
}
}).catch((res) => {})
}else{
this.tui.request("/app/supplier/getSupplierData", "POST", {
supplierId: this.customId,
startDate: this.range[0],
endDate:this.range[1]
}, false, false).then((res1) => {
if (res1.code == 200) {
if(res1.result != null){
this.salePrice = Number(res1.result.purchasePrice)
this.saleCount = res1.result.purchaseCount
this.returnPrice = Number(res1.result.purchaseReturnPrice)
this.returnCount = res1.result.purchaseReturnCount
if(res1.result.productDataVos != null && res1.result.productDataVos.length > 0){
for(let i = 0;i<res1.result.productDataVos.length;i++){
this.saleAllCount += res1.result.productDataVos[i].productCount
}
}
if(res1.result.returnProductDataVos != null && res1.result.returnProductDataVos.length > 0){
for(let i = 0;i<res1.result.returnProductDataVos.length;i++){
this.returnAllCount += res1.result.returnProductDataVos[i].productCount
}
}
}
}
}).catch((res) => {})
}
},
//充值记录撤销
revokeRecharge(item){
let that = this;
uni.showModal({
title: "提示",
content: "确定撤销此条数据吗?",
success: function(res) {
uni.showLoading({
title: '加载中...'
})
if (res.confirm) {
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];
prevPage.$vm.modelShow = true
that.tui.request('/app/debt/revokeDebt', "post", {
id:item.id,
remark:''
}, false, true).then((res) => {
if (res.code == 200) {
that.tui.toast('撤销成功')
that.duizhangList = []
that.pageNum = 1
that.pages = 1
that.duizhangdan()
} else {
that.tui.toast(res.message)
}
}).catch((res) => {})
}
setTimeout(res1 => {
uni.hideLoading();
}, 500)
}
})
},
getList(id) {
this.status = 'loading';
var url, data
if (this.type == 'gysName') {
if(this.current == 1){
url = "/app/purchase/getPurchaseListOfSupplier"
data = {
supplierId: this.customId,
pageSize: 10,
pageNum: this.pageNum,
startDate:this.range[0],
endDate:this.range[1]
}
}else if(this.current == 2){
url = "/app/sale/getSupplierBuyProductLog"
data = {
supplierId: this.customId,
pageSize: 10,
pageNum: this.pageNum,
shopId: this.shopId,
startDate:this.range[0],
endDate:this.range[1]
}
}
} else {
if (this.current == 1) {
url = "/app/sale/listPages"
data = {
userId: this.customId,
pageVo: {
pageSize: 10,
pageNumber: this.pageNum
},
searchStr: "",
startTime: this.range[0],
endTime: this.range[1],
shopId: this.shopId,
fromWhere: 1
}
} else if (this.current == 2) {
url = "/app/sale/getCustomerBuyProductLog"
data = {
userId: this.customId,
pageSize: 10,
startDate: this.range[0],
endDate: this.range[1],
pageNum: this.pageNum,
shopId: this.shopId
}
} else if (this.current == 3) {
url = "/app/return/getReturnSaleListByUserId"
data = {
userId: this.customId,
startDate: this.range[0],
endDate: this.range[1],
pageNum: this.pageNum,
pageSize: "10",
shopId: this.shopId
}
}
}
this.tui.request(url, "post", data, 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]
}
this.pages = res.result.pages
if (this.current == 1) {
if(this.type == 'gysName'){
for (let i = 0; i < this.list.length; i++) {
this.list[i].purchase.productCount = 0
for (let j = 0; j < this.list[i].purchaseDetails.length; j++) {
for (let m = 0; m < this.list[i].purchaseDetails[j].stockLogList1
.length; m++) {
this.list[i].purchase.productCount += this.list[i]
.purchaseDetails[j].stockLogList1[m].productCount
}
}
}
}else{
for (let i = 0; i < this.list.length; i++) {
this.list[i].productCount = 0
for (let j = 0; j < this.list[i].saleDetailDTOList.length; j++) {
this.list[i].saleDetailDTOList[j].productCount = 0
for (let m = 0; m < this.list[i].saleDetailDTOList[j].stockLogList1
.length; m++) {
this.list[i].productCount += this.list[i]
.saleDetailDTOList[j].stockLogList1[m].productCount
this.list[i].saleDetailDTOList[j].productCount += this.list[i]
.saleDetailDTOList[j].stockLogList1[m].productCount
}
}
}
}
this.$forceUpdate()
} else if (this.current == 2) {
if(this.type == 'gysName'){
for (let i = 0; i < this.list.length; i++) {
this.list[i].productCount = 0
for (let j = 0; j < this.list[i].supplierBuySaleVos.length; j++) {
this.list[i].supplierBuySaleVos[j].productCount = 0
for (let m = 0; m < this.list[i].supplierBuySaleVos[j]
.supplierBuyProductDetailLogVos.length; m++) {
this.list[i].productCount += this.list[i].supplierBuySaleVos[j]
.supplierBuyProductDetailLogVos[m].productCount
this.list[i].supplierBuySaleVos[j].productCount += this.list[i]
.supplierBuySaleVos[j].supplierBuyProductDetailLogVos[m]
.productCount
}
}
}
this.$forceUpdate()
}else{
for (let i = 0; i < this.list.length; i++) {
this.list[i].productCount = 0
for (let j = 0; j < this.list[i].customerBuySaleVoList.length; j++) {
this.list[i].customerBuySaleVoList[j].productCount = 0
for (let m = 0; m < this.list[i].customerBuySaleVoList[j]
.customerBuyProductDetailLogVos.length; m++) {
this.list[i].productCount += this.list[i].customerBuySaleVoList[j]
.customerBuyProductDetailLogVos[m].productCount
this.list[i].customerBuySaleVoList[j].productCount += this.list[i]
.customerBuySaleVoList[j].customerBuyProductDetailLogVos[m]
.productCount
}
}
}
this.$forceUpdate()
}
} else if (this.current == 3) {
if(this.type == 'gysName'){
// for (let i = 0; i < this.list.length; i++) {
// this.list[i].productCount = 0
// for (let j = 0; j < this.list[i].supplierBuySaleVos.length; j++) {
// this.list[i].supplierBuySaleVos[j].productCount = 0
// for (let m = 0; m < this.list[i].supplierBuySaleVos[j]
// .supplierBuyProductDetailLogVos.length; m++) {
// this.list[i].productCount += this.list[i].supplierBuySaleVos[j]
// .supplierBuyProductDetailLogVos[m].productCount
// this.list[i].supplierBuySaleVos[j].productCount += this.list[i]
// .supplierBuySaleVos[j].supplierBuyProductDetailLogVos[m]
// .productCount
// }
// }
// }
// this.$forceUpdate()
}else{
for (let i = 0; i < this.list.length; i++) {
for (let j = 0; j < this.list[i].returnSaleDetailList.length; j++) {
this.list[i].returnSaleDetailList[j].productCount = 0
for (let m = 0; m < this.list[i].returnSaleDetailList[j]
.stockLogList1.length; m++) {
this.list[i].returnSaleDetailList[j].productCount += this.list[i]
.returnSaleDetailList[j].stockLogList1[m]
.productCount
}
}
}
this.$forceUpdate()
}
}
} else {
this.tui.toast(res.message)
}
}).catch((res) => {})
},
clickDetail(item) {
this.detailList = item
this.$refs.detailPopup.open()
},
onClickItem(e) {
if (this.current !== e.currentIndex) {
this.current = e.currentIndex
}
if (e.currentIndex == 0) {
this.duizhangList = []
this.pageNum = 1
this.pages = 1
this.duizhangdan()
} else if (e.currentIndex == 1) {
this.list = []
this.pageNum = 1
this.getList()
} else if (e.currentIndex == 2) {
this.list = []
this.pageNum = 1
this.getList()
} else if (e.currentIndex == 3) {
this.list = []
this.pageNum = 1
this.getList()
}
},
oneShare(item,type){
if(type == 'chongzhi'){
//客户名,操作人,操作时间,之前欠款,充值金额,本单后余额,店铺id
this.oneShareData = {
userName:this.duizhangList.userName,
createByName:item.createByName,
createTime:item.createTime,
lastDebtAmount:item.lastDebtAmount,
amount:item.amount,
balanceDue:item.balanceDue,
shopAddress:uni.getStorageSync('shopAddress'),
shopRemark:uni.getStorageSync('shopRemark'),
shopMoblie:uni.getStorageSync('username'),
shopName:uni.getStorageSync('shopName'),
dealingsType:item.dealingsType
}
this.$refs.sharePopup.open()
this.isDetail = '1'
}else if(type == 'xiaoshou'){
let productCount = 0
let returnCount = 0
this.oneShareData = {
shopMoblie:uni.getStorageSync('username'),
shopName:uni.getStorageSync('shopName'),
createTime:item.createTime,
productCount:productCount,
returnCount:returnCount,
returnPrice:item.returnSaleTotalAmount == null?'0':item.returnSaleTotalAmount,
totalAmount:item.totalAmount,
realAmount:item.realAmount,
alreadyEarn:item.alreadyEarn
}
if(item.billReturnSaleDetailVos != null){
for(let i=0;i<item.billReturnSaleDetailVos.length;i++){
this.oneShareData.returnCount += item.billReturnSaleDetailVos[i].productCount
}
}
if(item.billSaleDetailVos){
for(let i=0;i<item.billSaleDetailVos.length;i++){
this.oneShareData.productCount += item.billSaleDetailVos[i].productCount
}
}
this.$refs.sharePopup.open()
this.isDetail = '0'
this.oneShareId = item.saleId
}else if(type == 'caigou'){
this.oneShareData = {
shopMoblie:uni.getStorageSync('username'),
shopName:uni.getStorageSync('shopName')
}
this.$refs.sharePopup.open()
this.isDetail = '4'
this.oneShareId = item.purchaseId
}else if(type == 'tuihuo'){
this.oneShareData = {
shopMoblie:uni.getStorageSync('username'),
shopName:uni.getStorageSync('shopName')
}
this.$refs.sharePopup.open()
this.isDetail = '5'
this.oneShareId = item.purchaseId
}
},
searchList() {
if (this.current == 0) {
this.duizhangList = []
this.pageNum = 1
this.pages = 1
this.duizhangdan()
} else if (this.current == 1) {
this.list = []
this.pageNum = 1
this.getList()
} else if (this.current == 2) {
this.list = []
this.pageNum = 1
this.getList()
} else if (this.current == 3) {
this.list = []
this.pageNum = 1
this.getList()
}
},
},
}
</script>
<style lang="scss">
page{
font-size:24rpx;
}
.uni-card__header-box {
text-align: center !important;
}
.uni-card__header-content-title {
font-weight: bold;
}
.container {
.boxbg {
padding-top: 10rpx;
background-color: #FAF7F7;
}
.tui-order-item {
.u-collapse-content {
display: flex;
justify-content: space-between;
line-height: 60rpx;
}
.tui-goods-info {
width: 100%;
box-sizing: border-box;
background: #fff;
line-height: 52rpx;
border-top: 20rpx 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: 24rpx;
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;
}
.type-popup {
width: 500rpx;
height: 360rpx;
background: #fff;
border-radius: 10px;
position: relative;
}
.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: 80rpx;
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;
}
.shareBtn {
background: rgba(255, 255, 255, 0);
width: 90rpx;
height: 50;
height: 80rpx;
line-height: 80rpx;
border: 1px solid #f3f4f6;
background-color: rgba(255, 255, 255, 0);
}
.shareBtn::after {
border: none;
}
.btn-biankuang::after {
border: none;
height: 90rpx !important;
}
textarea {
margin: 20rpx;
border: 1px solid #eee;
height: 150rpx;
width: 500rpx;
}
.uni-table-scroll {
width: 100%;
overflow-x: auto;
border-radius: 10px;
}
.uni-table-th {
background: #FAE7B5 !important;
color: #000 !important;
}
.top1 {
width: 780rpx;
height: 390rpx;
opacity: 1;
background: linear-gradient(360deg, #FAF7F7 0%, rgba(255, 255, 255, 0) 100%);
}
.hello-box {
position: absolute;
left: 42rpx;
top: 205rpx;
width: 220rpx;
height: 56rpx;
.hello-left {
width: 102rpx;
height: 56rpx;
opacity: 1;
background: #fff;
border-radius: 3px;
text-align: center;
transform: skewX(8deg);
}
.hello-right {
position: absolute;
left: 10rpx;
bottom: 0rpx;
width: 220rpx;
height: 4rpx;
opacity: 1;
background: linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.hello-name {
position: absolute;
left: 118rpx;
top: 0;
width: 400rpx;
height: 55rpx;
font-size: 32rpx;
line-height: 55rpx;
color: white;
overflow: hidden;
}
}
.hello-text {
position: absolute;
top: 275rpx;
left: 50rpx;
color: #fff;
font-size: 28rpx;
}
.top {
width: 780rpx;
height: 330rpx;
opacity: 1;
background: linear-gradient(90deg, #6484fa 0%, #66e8ff 100%);
overflow: hidden;
}
.buy-popup{
height:1200rpx;
overflow: scroll;
}
.detail-popup{
width: 500rpx;
min-height: 500rpx;
max-height: 1000rpx;
overflow: scroll;
}
@media screen and (min-width: 760px) {
.detail-popup{
max-height: 750px;
}
}
</style>