SmartStorage/pages/codeReceive/codeReceive.vue

349 lines
11 KiB
Vue

<template>
<view>
<view class="form-area">
<view class="upper-ipt">
<uni-easyinput
suffixIcon="search"
v-model="transCode"
placeholder="请输入编码"
@iconClick="searchCode"></uni-easyinput>
</view>
<view
class="info-area"
v-for="(item, index) in infoList"
:key="index"
v-show="infoList.length != 0"
@click="actionSheetFn(item)">
<view>
<h4>类型名称</h4>
<span>{{ item.typeName }}</span>
</view>
<view>
<h4>规格型号</h4>
<span>{{ item.typeModelName }}</span>
</view>
<view>
<h4>设备编码</h4>
<span>{{ item.maCode }}</span>
</view>
<view>
<h4>设备状态</h4>
<span>{{ item.maStatus }}</span>
</view>
<!-- <uni-data-checkbox v-model="item.selectStatus" :localdata="fixRange"></uni-data-checkbox> -->
<!-- <view>
<h4>设备状态</h4>
<span>{{ item.maStatusName }}</span>
</view>
<view>
<h4>机具编码</h4>
<span>{{ item.maCode }}</span>
</view>
<view>
<h4>出库数量</h4>
<span>1</span>
</view> -->
</view>
<!-- <view
style="width: 90%; margin: 15rpx auto;"
v-show="infoList.length != 0"
>
<uni-data-checkbox v-model="fixVal" :localdata="fixRange"></uni-data-checkbox>
</view> -->
<!-- <view
class="sub-btn"
v-show="infoList.length != 0"
@click="outStore"
>
接收
</view> -->
</view>
</view>
</template>
<script>
export default {
data() {
return {
typeId: "",
num: "",
parentId: "",
fixVal: "",
fixRange: [
{
text: "合格",
value: "1",
},
{
text: "待修",
value: "2",
},
{
text: "待报废",
value: "3",
},
],
infoList: [],
subList: {},
manageType: "",
createBy: "",
updatedSubList: "",
transCode: "",
taskId: "",
agreementId: "",
searchParams: {},
};
},
methods: {
searchCode() {
let that = this;
that.infoList = [];
console.log(that.transCode);
// 根据maId获取设备详情
that.$api.backMaterialReceive
.searchByCode({
maCode: that.transCode,
typeId: this.typeId,
agreementId: this.agreementId,
})
.then((res) => {
console.log(res);
if (res.data.data.length == 0) {
uni.showToast({
icon: "none",
title: "未查询到设备数据!",
});
} else {
for (let i = 0; i < res.data.data.length; i++) {
res.data.data[i].selectStatus = "";
}
that.infoList = res.data.data;
console.log(that.infoList);
}
})
.catch((err) => {
console.log(err);
});
},
outStore() {
let that = this;
console.log(that.infoList[0].typeId, this.typeId);
that.updatedSubList = that.infoList
.filter((item) => {
return item.selectStatus != "";
})
.map((subItem) => {
return {
parentId: that.parentId,
typeId: that.typeId,
backNum: "1",
backStatus: subItem["selectStatus"],
manageType: that.manageType,
createBy: that.createBy,
maId: subItem["maId"],
};
});
console.log(that.updatedSubList);
if (this.infoList[0].typeId != this.typeId) {
uni.showToast({
icon: "none",
title: "机具类型不匹配!",
});
} else {
that.subList = {
taskId: that.taskId,
arr: that.updatedSubList,
/* parentId: that.parentId,
typeId: that.typeId,
maId: that.infoList[0].maId,
outNum: 1,
companyId: uni.getStorageSync('userInfo').sysUser.companyId */
};
console.log(that.subList);
// 提交编码出库申请
/* that.$api.fetchMaterialOutStore.subOutStore(that.subList, null).then(res => {
console.log(res);
if (res.data.code == 200) {
uni.showToast({
icon: 'none',
title: res.data.msg,
success: () => {
uni.navigateBack()
}
})
} else {
uni.showToast({
icon: 'none',
title: res.data.msg
})
}
}).catch(err => {
console.log(err);
}) */
}
},
actionSheetFn(item) {
const that = this;
console.log(item);
uni.showActionSheet({
itemList: ["合格", "待修", "待报废"],
itemColor: "#333",
success: function (res) {
// console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
console.log(res, "合格,维修,报废", res.tapIndex);
let type = res.tapIndex + 1;
const arrList = [
{
parentId: that.parentId,
typeId: that.typeId,
backNum: 1,
backStatus: type,
manageType: that.manageType,
createBy: that.createBy,
maId: item.maId,
},
];
const params = {
taskId: that.taskId,
arr: arrList,
};
// console.log("backMaterialReceiveparams", params);
// // 提交编码出库申请
that.$api.backMaterialReceive
.backMaterialSetCodeBack(params)
.then((res) => {
console.log(res);
if (res.data.code == 200) {
uni.showToast({
icon: "none",
title: "操作成功",
// success: () => {
// uni.navigateBack();
// },
});
// that.searchCode()
that.getCodeList();
if (that.infoList.length == 0) {
uni.navigateBack();
}
} else {
uni.showToast({
icon: "none",
title: res.data.msg,
});
}
})
.catch((err) => {
console.log(err);
});
},
fail: function (res) {
console.log(res.errMsg);
},
});
},
// 获取列表数据
getCodeList() {
this.$api.backMaterialReceive
.searchCodeDevice(this.searchParams)
.then((res) => {
this.infoList = res.data.data.rows;
});
},
},
onLoad(params) {
console.log("init", params);
this.transCode = params.maCode;
this.typeId = params.modelId;
this.num = params.num;
this.parentId = params.id;
this.manageType = params.manageType;
this.createBy = params.userId;
this.taskId = params.taskId;
this.agreementId = params.agreementId;
const paramsNew = {
pageNum: 1,
pageSize: 999,
parentId: params.id,
taskId: params.taskId,
typeId: params.modelId,
agreementId: params.agreementId,
};
this.searchParams = paramsNew;
this.getCodeList();
},
};
</script>
<style lang="scss">
.form-area {
width: 100%;
margin: 20rpx auto;
.upper-ipt {
width: 90%;
display: flex;
align-items: center;
margin-bottom: 30rpx;
margin: 0 auto;
}
.info-area {
display: flex;
flex-direction: column;
width: 90%;
margin: 20rpx auto;
// border-bottom: 1px solid #BFC9E7;
view {
display: flex;
align-items: center;
box-sizing: border-box;
padding: 10rpx;
h4 {
width: 25%;
font-weight: normal;
font-size: 14px;
color: #989898;
}
span {
font-size: 14px;
}
}
&::after {
display: block;
content: "";
width: 750rpx;
height: 1px;
background-color: #d2d2d2;
margin-left: -5%;
margin-bottom: 12px;
}
}
.info-area:last-child {
border-bottom: none;
}
.sub-btn {
width: 80%;
margin: 30rpx auto;
box-sizing: border-box;
padding: 15rpx 0;
background-color: #0189fc;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 40rpx;
}
}
</style>