<template>
|
<view class="wrap">
|
<u-form class="form" :model="model" :rules="rules" ref="uForm" label-position="left">
|
<u-form-item label="箱号" prop="no" label-width="180" :required="true">
|
<input v-model="model.no" placeholder="请扫箱号" :disabled="true"></input>
|
</u-form-item>
|
<u-form-item label="物料编码" prop="cusMaterialCode" label-width="180" >
|
<input v-model="model.cusMaterialCode" placeholder="请扫物料编码" :disabled="true"></input>
|
</u-form-item>
|
<u-form-item label="包装尺寸" prop="packSize" label-width="180" >
|
<picker @change="bindPackSizeChange($event,packSizeList)" :value="packSizeIndex" :range="packSizeList"
|
range-key="value">
|
<view>
|
<text>{{packSizeIndex==null ? "请选择":packSizeList[packSizeIndex].value}}</text>
|
</view>
|
</picker>
|
</u-form-item>
|
<u-form-item label="包材" prop="packMaterial" label-width="180" >
|
<picker @change="bindPackMaterialChange($event,packMaterialList)" :value="packMaterialIndex"
|
:range="packMaterialList" range-key="value">
|
<view>
|
<text>{{packMaterialIndex==null ? "请选择":packMaterialList[packMaterialIndex].value}}</text>
|
</view>
|
</picker>
|
</u-form-item>
|
<u-form-item label="包装重量" prop="packWeight" label-width="180" >
|
<input placeholder="请输入包装重量" v-model="model.packWeight" type="digit" :disabled="true"></input>
|
</u-form-item>
|
</u-form>
|
<view class="form-footer">
|
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
<u-button class="btn" type="default" @click="cancel">清空扫码</u-button>
|
</view>
|
<scan></scan>
|
</view>
|
</template>
|
|
<script>
|
import scan from "@/components/scan/scan.vue";
|
export default {
|
components: {
|
scan
|
},
|
data() {
|
return {
|
type: '',
|
model: {
|
id: 0,
|
// no: 'BZ0000000011',
|
// cusMaterialCode: '88.118.1/A0306595',
|
no: '',
|
cusMaterialCode: '',
|
packWeight: '',
|
packSize: '',
|
packMaterial: ''
|
},
|
rules: {
|
no: [{
|
required: true,
|
message: '编号不能为空',
|
trigger: 'blur'
|
}],
|
packWeight: [{
|
required: true,
|
message: '包装重量不能为空',
|
trigger: 'blur'
|
}],
|
packSize: [{
|
required: true,
|
message: '包装尺寸不能为空',
|
trigger: 'blur'
|
}],
|
packMaterial: [{
|
required: true,
|
message: '包材不能为空',
|
trigger: 'blur'
|
}],
|
},
|
packMaterialList: [],
|
packMaterialIndex: null,
|
packSizeList: [],
|
packSizeIndex: null,
|
packWeightList: [],
|
}
|
},
|
onLoad() {
|
this.type = 'add'
|
this.model = {}
|
},
|
onShow() {
|
|
let that = this
|
|
uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
|
uni.$on('scan', function(data) {
|
console.log('onscan');
|
//扫码成功后的回调,你可以写自己的逻辑代码在这里
|
console.log('扫码结果:', data.code);
|
if (that.model.no == "undefined" || that.model.no == "" || that.model.no == undefined) {
|
that.model.no = data.code
|
} else {
|
that.model.cusMaterialCode = data.code
|
}
|
that.$forceUpdate();
|
|
})
|
},
|
onNavigationBarButtonTap(e) {
|
uni.scanCode({
|
success: res => {
|
try {
|
const result = JSON.parse(res.result)
|
|
} catch (e) {}
|
}
|
});
|
},
|
onReady() {
|
// this.$refs.uForm.setRules(this.rules);
|
|
let that = this
|
that.$u.api.pigxPacking.packHeadBasicInfoList().then(res => {
|
|
let packSizeList = res.data.packSizeWeightList
|
let packMaterialList = res.data.packMaterialList
|
|
that.packWeightList = packSizeList
|
|
if (packSizeList.length > 0) {
|
packSizeList.map((item, index) => {
|
|
let packSize = {
|
lable: item.packSize,
|
value: item.packSize
|
}
|
that.packSizeList.push(packSize)
|
});
|
}
|
|
packMaterialList.map((item, index) => {
|
let packMaterial = {
|
lable: item,
|
value: item
|
}
|
that.packMaterialList.push(packMaterial)
|
});
|
});
|
|
|
},
|
methods: {
|
submit() {
|
|
|
if (JSON.stringify(this.model) == "{}") {
|
this.$u.toast('请填写必填信息')
|
return
|
}
|
|
this.$refs.uForm.validate(async valid => {
|
if (valid) {
|
|
await this.$u.api.pigxPacking.addObj(this.model)
|
setTimeout(() => {
|
uni.showModal({
|
title: '提示',
|
content: '添加成功',
|
showCancel: false,
|
success: function() {
|
uni.setStorageSync('refreshList', true);
|
uni.navigateTo({
|
url: '/pages/wareHouse/packing/index'
|
})
|
}
|
})
|
}, 200)
|
} else {
|
this.$u.toast('您填写的信息有误,请根据提示修正。')
|
}
|
});
|
},
|
cancel() {
|
this.model.no = ""
|
this.model.cusMaterialCode = ""
|
this.$forceUpdate();
|
},
|
//包装大小选择
|
bindPackSizeChange(e, storage) {
|
|
if (storage.length <= 0) {
|
this.packSizeIndex = null
|
return
|
}
|
this.packSizeIndex = e.target.value
|
this.model.packSize = storage[this.packSizeIndex].value
|
|
let list = this.packWeightList.filter(item => item.packSize = storage[this.packSizeIndex].value)
|
if (list.length > 0) {
|
this.model.packWeight = list[0].packWeight
|
}
|
},
|
//包材选择
|
bindPackMaterialChange(e, storage) {
|
|
if (storage.length <= 0) {
|
this.packMaterialIndex = null
|
return
|
}
|
this.packMaterialIndex = e.target.value
|
this.model.packMaterial = storage[this.packMaterialIndex].value
|
},
|
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
.uni-input-placeholder {
|
font-size: 12px;
|
}
|
|
uni-input{font-size: 12px;}
|
|
|
</style>
|