SmartStorage/pages/exitMaterialDetail/exitMaterialDetail.vue

366 lines
7.4 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<view class="search-bar">
<uni-easyinput prefixIcon="search" v-model="inputs" placeholder="请输入名称"></uni-easyinput>
</view>
<view class="dataInfo">
<view class="dataList" v-for="(item,index) in searchData" :key="index">
<!-- <checkbox-group @change="checkClick(item)">
<checkbox :checked="item.checked" />
</checkbox-group> -->
<view class="details">
<!-- <view class="img">
<image :src="item.url"></image>
</view> -->
<view class="text">
<text>类型名称{{item.typeName}}</text>
<text>规格编号{{item.typeCode}}</text>
<text>退料数量{{item.num}}</text>
</view>
</view>
<!-- <view class="action">
<text @click="reduce(item)">-</text>
<text>{{item.offNum}}</text>
<text @click="add(item)">+</text>
</view> -->
</view>
</view>
<!-- <view class="buy">
<view class="checked">
<checkbox-group @tap="checkAll">
<checkbox :checked="allChecked" />
</checkbox-group>
<text>全选</text>
</view>
<view class="total">
<view class="bill" @click="finishCart">
<text>提交</text>
</view>
</view>
</view> -->
</view>
</template>
<script>
import { basePath } from '../../public';
export default {
data() {
return {
iptVal: '',
allChecked: false,
inputs: "",
list: [
],
totalFine: '',
cartList: [],
typeId: '',
taskId:''
}
},
computed: {
totalNum() {
//总计
var str = 0;
for (var i = 0; i < this.searchData.length; i++) {
if (this.searchData[i].checked) {
str += this.searchData[i].num;
}
}
this.totalFine = str
return str;
},
searchData: function() {
//模糊查询
if (!this.inputs) {
return this.list;
}
return this.list.filter((item) => {
return item.typeName.includes(this.inputs);
});
},
},
methods: {
iconClick () {
console.log(this.iptVal);
},
add(item) { //加加
let num = item.offNum
if (num >= item.num) {
uni.showToast({
icon: 'none',
title: '退料数量不可大于当前在用量!'
})
} else {
item.offNum = num + 1
}
},
reduce(item) { //减减
let num = item.offNum
if (num > 1) {
num -= 1
} else if (num = 1) {
uni.showToast({
icon: 'none',
title: "该器具无法再减少"
})
}
item.offNum = num
},
// 单个商品的选择
checkClick(item) {
item.checked = !item.checked
if (!item.checked) {
this.allChecked = false
} else {
// 判断每一个商品是否是被选择的状态
const goods = this.list.every(item => {
return item.checked === true
})
if (goods) {
this.allChecked = true
} else {
this.allChecked = false
}
}
},
checkAll() {
this.allChecked = !this.allChecked
if (this.allChecked) {
this.list.map(item => {
item.checked = true
})
} else {
this.list.map(item => {
item.checked = false
})
}
},
finishCart () {
let that = this
that.cartList = that.list.filter((item) => {
return item.checked == true
})
if (that.cartList.length == 0) {
uni.showToast({
icon: 'none',
title: '请选择退料项!'
})
} else {
let subList = []
for (let i = 0; i < that.cartList.length; i++) {
subList.push(that.cartList[i].offNum)
}
subList = subList.join(',')
console.log(subList, that.typeId);
// 提交退料清单
that.$api.exitMaterial.subExitMaterial({
typeId: that.typeId,
taskId: this.taskId,
num: subList
}).then(res => {
console.log(res);
if (res.data.code === 200) {
// 使用相同的参数调用审核API
that.$api.exitMaterial.audit({
typeId: that.typeId,
num: subList
}).then(auditRes => {
console.log(auditRes);
// 如果审核成功,可以在这里添加更多的逻辑
}).catch(auditErr => {
console.error('审核API调用失败', auditErr);
});
} else {
console.error('提交退料清单失败');
}
}).catch(err => {
console.log(err);
})
}
}
},
onLoad(params) {
let that = this
console.log(params.id);
that.typeId = params.typeId
// 退料详情查看
that.$api.exitMaterial.exitMaterialDetail({
id: params.id
}).then(res => {
if (res.data.code == 200) {
for (let i = 0; i < res.data.data.length; i++) {
res.data.data[i].num = Number(res.data.data[i].num.split('.')[0])
res.data.data[i].offNum = 1
}
console.log(res);
that.list = res.data.data
}
}).catch(err => {
console.log(err);
})
}
}
</script>
<style>
.search-bar{
width: 95%;
margin: 20rpx auto;
}
/deep/uni-checkbox .uni-checkbox-input {
border-radius: 50%;
}
/deep/uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked {
border-color: #ddd;
color: #fff !important;
background-color: #2DCF8C !important;
}
/deep/uni-checkbox .uni-checkbox-input {
border-color: #ddd;
}
/deep/uni-checkbox .uni-checkbox-input:hover {
border-color: #ddd;
}
.search {
padding-top: 20rpx;
}
.search .searchIput {
background-color: #e6e6e6;
width: 95%;
margin: 0 auto;
height: 72rpx;
line-height: 72rpx;
border-radius: 50rpx;
padding: 0 32rpx;
box-sizing: border-box;
display: flex;
align-items: center;
}
.search .searchIput input {
font-size: 26rpx;
width: 100%;
color: grey;
}
.search .searchIput image {
width: 34rpx;
height: 34rpx;
}
.dataInfo {
width: 95%;
margin: 0 auto;
}
.dataInfo .dataList {
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 2px solid #F1F1F1;
padding: 25rpx 0;
}
.dataInfo .dataList .details {
display: flex;
align-items: center;
flex: 1;
font-size: 0;
}
.dataInfo .dataList .details .img image {
width: 200rpx;
height: 140rpx;
padding: 0 20rpx;
}
.dataInfo .dataList .details .text text {
color: #000;
font-size: 23rpx;
display: block;
padding: 10rpx 0;
}
.dataInfo .dataList .details .text {
color: red;
font-size: 25rpx;
}
.dataInfo .dataList .action text {
font-size: 25rpx;
color: #000;
border: 1px solid #C8C7CC;
display: inline-block;
line-height: 50rpx;
width: 60rpx;
text-align: center;
box-sizing: border-box;
}
.dataInfo .dataList .action text:nth-child(2) {
border-left: none;
border-right: none;
}
.buy {
display: flex;
align-items: center;
justify-content: space-between;
position: fixed;
left: 50%;
bottom: 0;
width: 95%;
transform: translate(-50%, 0);
}
.buy .checked {
display: flex;
align-items: center;
}
.buy .checked text {
font-size: 25rpx;
color: #000;
padding: 0 12rpx;
}
.buy .total {
display: flex;
align-items: center;
justify-content: space-between;
}
.buy .total .price {
padding-right: 20rpx;
}
.buy .total .price text {
font-size: 27rpx;
color: #C8C7CC;
display: inline-block;
}
.buy .total .price text:last-child {
color: red;
font-weight: bold;
}
.buy .total .bill text {
font-size: 25rpx;
color: #fff;
display: inline-block;
background-color: red;
line-height: 70rpx;
width: 150rpx;
text-align: center;
}
</style>