|
|
|
@ -33,55 +33,61 @@ |
|
|
|
</view> |
|
|
|
<view class="shop-box"> |
|
|
|
<view class="content-list"> |
|
|
|
<view class="list-name">折扣类型</view> |
|
|
|
<view class="list-val"> |
|
|
|
<radio-group @change="radioChange" style="display: flex;"> |
|
|
|
<view class="list-name" style="width:150rpx">折扣类型</view> |
|
|
|
<view class="list-val" style="width:560rpx;display: flex;"> |
|
|
|
<radio-group @change="discountChange" style="display: flex;"> |
|
|
|
<label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" |
|
|
|
:key="item.value"> |
|
|
|
<view> |
|
|
|
<radio :value="item.value" :checked="index === current" /> |
|
|
|
<radio :value="item.value" :checked="index === discountCurrent" /> |
|
|
|
</view> |
|
|
|
<view>{{item.name}}</view> |
|
|
|
</label> |
|
|
|
</radio-group> |
|
|
|
</radio-group> |
|
|
|
<view class="discount-num" v-if="discountType == '1'"> |
|
|
|
<uni-number-box :min="0.1" :max="10" :value="discountNum" :step="0.1" @change="change"/> |
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="shop-box" style="border-top:5px solid #eee;" v-for="item in carList" :key="item"> |
|
|
|
<view class="shop-name"> |
|
|
|
<img :src="item.productPicture" alt="" |
|
|
|
<view class="shop-box" style="border-top:5px solid #eee;" v-for="(value,key) in Array.from(carList)" :key="key"> |
|
|
|
<view class="shop-name" style="position: relative;"> |
|
|
|
<img :src="value[1].productPicture" alt="" |
|
|
|
style="width: 140rpx;height: 140rpx;margin: 30rpx 0 0 30rpx;"> |
|
|
|
<view class="shop-productName"> |
|
|
|
<view style="color:#FF5809;">品名:{{item.productName}}</view> |
|
|
|
<view>货号:{{item.barcode}}</view> |
|
|
|
<view>供应商:{{item.supplierName}}</view> |
|
|
|
<view style="color:#FF5809;">品名:{{value[1].productName}} ({{value[1].productSn}})</view> |
|
|
|
<view>单价:{{value[1].purchasePrice}} 数量:{{value[1].productCount}} 总价:{{value[1].price}}</view> |
|
|
|
<view>供应商:{{value[1].supplierName}}</view> |
|
|
|
</view> |
|
|
|
<view style="position: absolute;top: 110rpx;right: 40rpx;color: blue;text-decoration: underline;" |
|
|
|
@tap="clickPrice(value[0])"> |
|
|
|
选择售价 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="shop-type"> |
|
|
|
<view class="shop-collapse" @tap="clickCollapse"> |
|
|
|
<text>{{item.saleDetailQueryDTO.attributeList}}</text> |
|
|
|
<text style="color: red;">¥{{item.price * item.num}}</text> |
|
|
|
<text>{{item.num}}</text> |
|
|
|
<uni-icons type="bottom" size="16" |
|
|
|
style="margin-left: 112rpx;line-height: 80rpx;"></uni-icons> |
|
|
|
<view class="shop-type"> |
|
|
|
<view class="shop-collapse-item" v-if="discountType == '0'"> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>单价</text> |
|
|
|
<input class="input" type="text" :value='value[1].purchasePrice'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>折扣(100%)</text> |
|
|
|
<input class="input" type="text" :value='value[1].discount'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>折后价</text> |
|
|
|
<input class="input" type="text" :value='value[1].discountAmount'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>数量</text> |
|
|
|
<input class="input" type="text" :value='value[1].productCount'> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="shop-collapse-item" v-if="isCollapse"> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>单价</text> |
|
|
|
<input class="input" type="text" :value='item.price'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>折扣(100%)</text> |
|
|
|
<input class="input" type="text" value='0'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>折后价</text> |
|
|
|
<input class="input" type="text" value='0'> |
|
|
|
</view> |
|
|
|
<view class="collapse-1"> |
|
|
|
<text>数量</text> |
|
|
|
<input class="input" type="text" value='0'> |
|
|
|
</view> |
|
|
|
<view class="shop-collapse" v-for="(values,keys) in Array.from(value[1].stockLogList)"> |
|
|
|
<text>{{values[0] | sliceMsg}}</text> |
|
|
|
<!-- <text style="color: red;">¥100</text> --> |
|
|
|
<text>数量:{{values[1]}}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
@ -190,13 +196,27 @@ |
|
|
|
</view> |
|
|
|
<view class="bottom-box"> |
|
|
|
<view class="bottom-left"> |
|
|
|
<text>合计:2</text> |
|
|
|
<text style="color: #ffa200;">¥20.00</text> |
|
|
|
<text>合计:{{totalAmount}}</text> |
|
|
|
<text style="color: #ffa200;">¥{{shouldPay}}</text> |
|
|
|
</view> |
|
|
|
<view class="bottom-right"> |
|
|
|
<button class="bottom-btn" @tap="goSell">开单</button> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<!-- 弹出输入框 --> |
|
|
|
<uni-popup ref="inputDialog" background-color="#fff"> |
|
|
|
<view class="popup-pay-content"> |
|
|
|
<view class="popup-pay-title"> |
|
|
|
<text>选择商品价格</text> |
|
|
|
</view> |
|
|
|
<view class="popup-pay-container" @tap="checkPay(lsprice)"> |
|
|
|
<text style="display: inline-block">零售价:¥{{lsprice}}</text> |
|
|
|
</view> |
|
|
|
<view class="popup-pay-container" @tap="checkPay(wholesalePrice)"> |
|
|
|
<text style="display: inline-block">批发价:¥{{wholesalePrice}}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</uni-popup> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
@ -204,20 +224,22 @@ |
|
|
|
export default { |
|
|
|
components: {}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
lsprice:0,//临时零售价 |
|
|
|
wholesalePrice:0, // 临时显示批发价 |
|
|
|
price: '0', //总金额 |
|
|
|
relPrice: '0', //已付金额 |
|
|
|
otherExpense: '0', // 其他费用 |
|
|
|
priceNo: '0', //未付金额 |
|
|
|
priceNo: '0', //未付金额 |
|
|
|
discountNum:10, |
|
|
|
value: '', |
|
|
|
isCollapse: false, |
|
|
|
items: [{ |
|
|
|
value: '0', |
|
|
|
name: '单品折扣' |
|
|
|
name: '单品折' |
|
|
|
}, |
|
|
|
{ |
|
|
|
value: '1', |
|
|
|
name: '整体折扣' |
|
|
|
name: '整体折' |
|
|
|
} |
|
|
|
], |
|
|
|
logisticsType: [{ |
|
|
|
@ -240,7 +262,10 @@ |
|
|
|
value: '4', |
|
|
|
name: '自送' |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
discountType:'', |
|
|
|
discountCurrent:'', |
|
|
|
current:'', |
|
|
|
discCurrent: '', //折扣 |
|
|
|
logisticsCurrent: '', //物流 |
|
|
|
categoryList: '', //销售员 |
|
|
|
@ -250,22 +275,110 @@ |
|
|
|
wlName: [], //物流公司/物流/发车 |
|
|
|
kdyName: [], //快递员 |
|
|
|
lbgName: [], //拉包工姓名 |
|
|
|
carList: [], //添加商品页传回来的商品信息 |
|
|
|
xsyId: '' |
|
|
|
carList: new Map(), //添加商品页传回来的商品信息 |
|
|
|
xsyId: '', |
|
|
|
shouldPay:0, |
|
|
|
totalAmount: 0 |
|
|
|
} |
|
|
|
}, |
|
|
|
onShow() { |
|
|
|
onShow() { |
|
|
|
let that = this; |
|
|
|
this.khName = JSON.parse(JSON.stringify(this.khName)) || '' |
|
|
|
this.gysName = JSON.parse(JSON.stringify(this.gysName)) || '' |
|
|
|
this.wlName = JSON.parse(JSON.stringify(this.wlName)) || '' |
|
|
|
this.kdyName = JSON.parse(JSON.stringify(this.kdyName)) || '' |
|
|
|
this.lbgName = JSON.parse(JSON.stringify(this.lbgName)) || '' |
|
|
|
this.carList = this.carList || '' |
|
|
|
console.log(this.carList) |
|
|
|
|
|
|
|
// for (var i= 0;i<) { |
|
|
|
|
|
|
|
// } |
|
|
|
if (this.carList.size == 0) { //当前页没有数据 |
|
|
|
for (let i = 0; i < this.carList1.length; i++) { |
|
|
|
let obj = { |
|
|
|
purchasePrice: this.carList1[i].price, //最后的价格 |
|
|
|
price: 0, //总价 |
|
|
|
discount:10, //折扣 |
|
|
|
discountAmount:0, //折后价 |
|
|
|
wholesalePrice:this.carList1[i].wholesalePrice, //批发价 |
|
|
|
lsprice:this.carList1[i].lsprice, //零售价 |
|
|
|
productCount: 0, //总数量 |
|
|
|
productId: this.carList1[i].id, |
|
|
|
productName: this.carList1[i].productName, |
|
|
|
productPicture: this.carList1[i].productPicture, |
|
|
|
productSn: this.carList1[i].productSn, |
|
|
|
stockLogList: new Map(), |
|
|
|
stockLogList1: [], |
|
|
|
supplierName:this.carList1[i].supplierName //供应商 |
|
|
|
} |
|
|
|
for (let m = 0; m < this.carList1[i].saleDetailQueryDTO.length; m++) { |
|
|
|
obj.stockLogList.set(this.carList1[i].saleDetailQueryDTO[m].attributeList, this.carList1[i] |
|
|
|
.saleDetailQueryDTO[m].productCount) |
|
|
|
obj.productCount += this.carList1[i].saleDetailQueryDTO[m].productCount |
|
|
|
} |
|
|
|
console.log("没有数据") |
|
|
|
this.carList.set(this.carList1[i].id, obj) |
|
|
|
console.log(this.carList) |
|
|
|
// this.lsList.set(this.carList1[i].id, obj) |
|
|
|
} |
|
|
|
this.carList1 = [] |
|
|
|
} else { //当前页有数据 |
|
|
|
for (let i = 0; i < this.carList1.length; i++) { |
|
|
|
if (this.carList.has(this.carList1[i].id) == true) { //商品相同 |
|
|
|
for (let m = 0; m < this.carList1[i].saleDetailQueryDTO.length; m++) { |
|
|
|
if (this.carList.get(this.carList1[i].id).stockLogList.has(this.carList1[i].saleDetailQueryDTO[m].attributeList) == true) { //规格相同 |
|
|
|
console.log("规格相同") |
|
|
|
this.carList.get(this.carList1[i].id).stockLogList.set(this.carList1[i].saleDetailQueryDTO[m].attributeList, this.carList.get(this.carList1[i].id).stockLogList.get(this.carList1[i].saleDetailQueryDTO[m].attributeList) + this.carList1[i].saleDetailQueryDTO[m].productCount) |
|
|
|
this.carList.get(this.carList1[i].id).productCount += this.carList1[i].saleDetailQueryDTO[m].productCount |
|
|
|
} else { //规格不同 |
|
|
|
console.log("规格不同") |
|
|
|
this.carList.get(this.carList1[i].id).stockLogList.set(this.carList1[i].saleDetailQueryDTO[ |
|
|
|
m].attributeList, this.carList1[i].saleDetailQueryDTO[m].productCount) |
|
|
|
this.carList.get(this.carList1[i].id).productCount += this.carList1[i].saleDetailQueryDTO[m].productCount |
|
|
|
} |
|
|
|
} |
|
|
|
} else { //商品不同 |
|
|
|
let obj = { |
|
|
|
purchasePrice: this.carList1[i].price, //最后的价格 |
|
|
|
price: 0, |
|
|
|
discount:10, |
|
|
|
discountAmount:0, |
|
|
|
wholesalePrice:this.carList1[i].wholesalePrice, //批发价 |
|
|
|
lsprice:this.carList1[i].lsprice, //零售价 |
|
|
|
productCount: 0, |
|
|
|
productId: this.carList1[i].id, |
|
|
|
productName: this.carList1[i].productName, |
|
|
|
productPicture: this.carList1[i].productPicture, |
|
|
|
stockLogList: new Map(), |
|
|
|
stockLogList1: [], |
|
|
|
productSn: this.carList1[i].productSn, |
|
|
|
supplierName:this.carList1[i].supplierName |
|
|
|
} |
|
|
|
for (let m = 0; m < this.carList1[i].saleDetailQueryDTO.length; m++) { |
|
|
|
obj.stockLogList.set(this.carList1[i].saleDetailQueryDTO[m].attributeList, this.carList1[i] |
|
|
|
.saleDetailQueryDTO[m].productCount) |
|
|
|
obj.productCount += this.carList1[i].saleDetailQueryDTO[m].productCount |
|
|
|
} |
|
|
|
this.carList.set(this.carList1[i].id, obj) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
this.carList1 = [] |
|
|
|
|
|
|
|
} |
|
|
|
console.log('carList1', this.carList1) |
|
|
|
console.log('carList', this.carList) |
|
|
|
this.carList.forEach(function(value, key) { |
|
|
|
that.totalAmount += value.productCount |
|
|
|
}) |
|
|
|
this.noPay = this.shouldPay |
|
|
|
}, |
|
|
|
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() { |
|
|
|
this.xsyList(); |
|
|
|
@ -293,11 +406,19 @@ |
|
|
|
this.createByName = this.categoryList[i].text |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
//点击切换折叠状态 |
|
|
|
clickCollapse() { |
|
|
|
this.isCollapse = !this.isCollapse |
|
|
|
}, |
|
|
|
}, |
|
|
|
//折扣种类选择 |
|
|
|
discountChange(e){ |
|
|
|
//快递0 物流1 发车2 拼包3 自送4 |
|
|
|
this.discountType = e.detail.value; |
|
|
|
for (let i = 0; i < this.items.length; i++) { |
|
|
|
if (this.items[i].value === e.detail.value) { |
|
|
|
this.discountCurrent = i; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
//点击发货方式按钮 |
|
|
|
radioChange(e) { |
|
|
|
this.khName = '' |
|
|
|
this.gysName = '' |
|
|
|
@ -312,7 +433,8 @@ |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
//发货方式选择 |
|
|
|
goPopleList(popleType) { |
|
|
|
if (popleType == 'kdyName' && this.wlName == '') { |
|
|
|
uni.showToast({ |
|
|
|
@ -326,12 +448,14 @@ |
|
|
|
uni.navigateTo({ |
|
|
|
url: '/pages/index/peopleList?popleType=' + popleType + '&companyType=' + companyType |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
//点击加号手动添加商品 |
|
|
|
goodsAdd() { |
|
|
|
uni.navigateTo({ |
|
|
|
url: '/pages/billing/changeGoods1' |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
//点击底部开单按钮 |
|
|
|
goSell() { |
|
|
|
// console.log(this.khName) |
|
|
|
// console.log(this.lbgName) |
|
|
|
@ -386,6 +510,25 @@ |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
}, |
|
|
|
//编辑每一个的单价 |
|
|
|
clickPrice(index) { |
|
|
|
console.log(index) |
|
|
|
this.index = index |
|
|
|
this.wholesalePrice = this.carList.get(this.index).wholesalePrice |
|
|
|
this.lsprice = this.carList.get(this.index).lsprice |
|
|
|
this.$refs.inputDialog.open() |
|
|
|
}, |
|
|
|
//选择是零售价还是批发价 |
|
|
|
checkPay(price){ |
|
|
|
let that = this; |
|
|
|
this.shouldPay = 0 |
|
|
|
this.carList.get(this.index).purchasePrice = price; |
|
|
|
that.carList.get(that.index).price = price * that.carList.get(that.index).productCount; |
|
|
|
this.$refs.inputDialog.close() |
|
|
|
that.carList.forEach(function(value, key) { |
|
|
|
that.shouldPay += value.price |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -396,7 +539,14 @@ |
|
|
|
.page1 { |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.popup-pay-content{ |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
padding: 15px; |
|
|
|
width: 500rpx; |
|
|
|
height: auto; |
|
|
|
background-color: #fff; |
|
|
|
} |
|
|
|
.content { |
|
|
|
border-top: 1px solid #eee; |
|
|
|
overflow-y: scroll; |
|
|
|
@ -409,6 +559,24 @@ |
|
|
|
background: #fff; |
|
|
|
margin-bottom: 20rpx; |
|
|
|
|
|
|
|
} |
|
|
|
.popup-pay-title { |
|
|
|
font-size: 36rpx; |
|
|
|
font-weight: bold; |
|
|
|
text-align: center; |
|
|
|
position: relative; |
|
|
|
} |
|
|
|
|
|
|
|
.popup-pay-container { |
|
|
|
margin-top: 20rpx; |
|
|
|
height: 100rpx; |
|
|
|
border-radius: 10px; |
|
|
|
background: #088FEB; |
|
|
|
line-height: 100rpx; |
|
|
|
text-align: center; |
|
|
|
border-bottom: 1px solid #eee; |
|
|
|
border-top: 1px solid #eee; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
|
|
|
|
.content-list { |
|
|
|
@ -486,7 +654,9 @@ |
|
|
|
font-weight: bold; |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
|
|
|
|
.discount-num{ |
|
|
|
width: 200rpx; |
|
|
|
} |
|
|
|
.shop-productName { |
|
|
|
flex: 1; |
|
|
|
display: flex; |
|
|
|
@ -504,14 +674,18 @@ |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
.shop-collapse { |
|
|
|
border-radius: 1px solid #eee; |
|
|
|
} |
|
|
|
|
|
|
|
.shop-collapse text { |
|
|
|
text-align: right; |
|
|
|
padding-right: 40rpx; |
|
|
|
border-right: 1px solid #eee; |
|
|
|
.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; |
|
|
|
} |
|
|
|
|
|
|
|
.shop-collapse-item { |
|
|
|
|