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.
361 lines
9.5 KiB
361 lines
9.5 KiB
7 months ago
|
<template>
|
||
|
<view class="add">
|
||
|
<!-- 设备信息 -->
|
||
|
<view class="main">
|
||
|
<u--form labelPosition="left" labelAlign="center" :model="equip" ref="form1">
|
||
|
<u-form-item label="设备名称" prop="equipName" labelWidth="auto" borderBottom ref="item1">
|
||
|
<u--input v-model="equip.equipName" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="设备编号" prop="equipNo" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.equipNo" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="批次" prop="batch" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.batch" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="出库数量" prop="num" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.num" border="none" type="number" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="总价(元)" prop="totalprice" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.totalprice" type="number" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="出库客户" prop="customerName" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.customerName" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="出库日期" prop="outTime" labelWidth="auto" borderBottom>
|
||
|
<u--input v-model="equip.outTime" border="none" readonly></u--input>
|
||
|
</u-form-item>
|
||
|
|
||
|
|
||
|
<u-form-item label="退回数量" prop="returnNum" labelWidth="auto" borderBottom v-if="show2">
|
||
|
<u--input v-model="equip.returnNum" border="none" type="number" placeholder="请输入退回数量"></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="退回日期" prop="untreadTime"
|
||
|
labelWidth="auto" @click="thShow = true; " borderBottom ref="item1" v-if="show2">
|
||
|
<u--input
|
||
|
v-model="equip.untreadTime"
|
||
|
disabled
|
||
|
disabledColor="#ffffff"
|
||
|
placeholder="请选择退回日期"
|
||
|
border="none"
|
||
|
></u--input>
|
||
|
<u-icon
|
||
|
slot="right"
|
||
|
name="arrow-right"
|
||
|
></u-icon>
|
||
|
<u-datetime-picker
|
||
|
:show="thShow"
|
||
|
v-model="pickerTime"
|
||
|
mode="date"
|
||
|
:closeOnClickOverlay="true"
|
||
|
@close="thShow = false"
|
||
|
@cancel="thShow = false"
|
||
|
@confirm="date2Confirm"
|
||
|
></u-datetime-picker>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="退回原因" prop="untreadReason" labelWidth="auto" borderBottom ref="item1" v-if="show2">
|
||
|
<u--textarea v-model="equip.untreadReason" placeholder="请输入退回原因" confirmType="done"></u--textarea>
|
||
|
</u-form-item>
|
||
|
|
||
|
|
||
|
<u-form-item label="报损数量" prop="returnNum" labelWidth="auto" borderBottom v-if="show3">
|
||
|
<u--input v-model="equip.returnNum" border="none" type="number" placeholder="请输入报损数量"></u--input>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="报损日期" prop="untreadTime"
|
||
|
labelWidth="auto" @click="thShow = true; " borderBottom ref="item1" v-if="show3">
|
||
|
<u--input
|
||
|
v-model="equip.untreadTime"
|
||
|
disabled
|
||
|
disabledColor="#ffffff"
|
||
|
placeholder="请选择报损日期"
|
||
|
border="none"
|
||
|
></u--input>
|
||
|
<u-icon
|
||
|
slot="right"
|
||
|
name="arrow-right"
|
||
|
></u-icon>
|
||
|
<u-datetime-picker
|
||
|
:show="thShow"
|
||
|
v-model="pickerTime"
|
||
|
mode="date"
|
||
|
:closeOnClickOverlay="true"
|
||
|
@close="thShow = false"
|
||
|
@cancel="thShow = false"
|
||
|
@confirm="date2Confirm"
|
||
|
></u-datetime-picker>
|
||
|
</u-form-item>
|
||
|
<u-form-item label="报损原因" prop="untreadReason" labelWidth="auto" borderBottom ref="item1" v-if="show3">
|
||
|
<u--textarea v-model="equip.untreadReason" placeholder="请输入报损原因" confirmType="done"></u--textarea>
|
||
|
</u-form-item>
|
||
|
|
||
|
</u--form>
|
||
|
|
||
|
</view>
|
||
|
|
||
|
<view class="submit" v-if="show && equip.num >0">
|
||
|
<view style='width: 140px;float: left;margin-left: 2px;'>
|
||
|
<u-button type="primary"
|
||
|
@click="handleReturn" text="退 回 设 备"></u-button>
|
||
|
</view>
|
||
|
|
||
|
<view style='width: 140px;float: right;margin-right: 2px;'>
|
||
|
<u-button type="error"
|
||
|
@click="handleDamage" text="报 损 设 备"></u-button>
|
||
|
</view>
|
||
|
</view>
|
||
|
|
||
|
<view class="submit" v-if="show2">
|
||
|
<view style='width: 140px;float: left;margin-left: 2px;'>
|
||
|
<u-button type="primary"
|
||
|
@click="untitledEquip" text="确 认 退 回"></u-button>
|
||
|
</view>
|
||
|
|
||
|
<view style='width: 140px;float: right;margin-right: 2px;'>
|
||
|
<u-button type="error"
|
||
|
@click="cancelUntitled" text="取 消 退 回"></u-button>
|
||
|
</view>
|
||
|
|
||
|
</view>
|
||
|
<view class="submit" v-if="show3">
|
||
|
<view style='width: 140px;float: left;margin-left: 2px;'>
|
||
|
<u-button type="primary"
|
||
|
@click="damageEquip" text="确 认 报 损"></u-button>
|
||
|
</view>
|
||
|
|
||
|
<view style='width: 140px;float: right;margin-right: 2px;'>
|
||
|
<u-button type="error"
|
||
|
@click="cancelDamage" text="取 消 报 损"></u-button>
|
||
|
</view>
|
||
|
</view>
|
||
|
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
|
||
|
data() {
|
||
|
return {
|
||
|
show: true,
|
||
|
show2: false,
|
||
|
show3: false,
|
||
|
thShow: false,
|
||
|
equip: {
|
||
|
id: null,
|
||
|
equipNo: null,
|
||
|
equipName: null,
|
||
|
outTime: null,
|
||
|
batch: null,
|
||
|
num: null,
|
||
|
totalprice: null,
|
||
|
cid: null,
|
||
|
customerName: null,
|
||
|
// 退回 参数
|
||
|
returnNum: null,
|
||
|
untreadTime: null,
|
||
|
untreadReason: null,
|
||
|
// 报损参数
|
||
|
damageNum: null,
|
||
|
damageTime: null,
|
||
|
damageReason: null,
|
||
|
type: '0'
|
||
|
},
|
||
|
pickerTime: Number(new Date()),
|
||
|
|
||
|
}
|
||
|
},
|
||
|
|
||
|
onLoad: function(options) {
|
||
|
if (options.equip) {
|
||
|
let data = JSON.parse(options.equip);
|
||
|
this.equip = data
|
||
|
}
|
||
|
},
|
||
|
|
||
|
created() {},
|
||
|
filters: {},
|
||
|
mounted() {
|
||
|
},
|
||
|
methods: {
|
||
|
// 退回设备按钮
|
||
|
handleReturn(){
|
||
|
this.show = false
|
||
|
this.show2 = true
|
||
|
},
|
||
|
// 报损设备按钮
|
||
|
handleDamage(){
|
||
|
this.show = false;
|
||
|
this.show3 = true;
|
||
|
},
|
||
|
date2Confirm(e){
|
||
|
const timeFormat = uni.$u.timeFormat
|
||
|
this.thShow = false;
|
||
|
this.equip.untreadTime = timeFormat(e.value, 'yyyy-mm-dd');
|
||
|
},
|
||
|
// 确认退回按钮
|
||
|
async untitledEquip(){
|
||
|
let flag = true;
|
||
|
if(this.equip.returnNum==null || this.equip.returnNum=='' ){
|
||
|
flag = false;
|
||
|
}else{
|
||
|
if(this.equip.returnNum > this.equip.num){
|
||
|
flag = false;
|
||
|
if(!flag) return uni.showToast({
|
||
|
title: '出库数量不足!',
|
||
|
icon: 'error'
|
||
|
})
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(this.equip.untreadTime==null || this.equip.untreadTime=='' ){
|
||
|
flag = false;
|
||
|
}
|
||
|
if(this.equip.untreadReason==null || this.equip.untreadReason=='' ){
|
||
|
flag = false;
|
||
|
}
|
||
|
if(!flag) return uni.showToast({
|
||
|
title: '请补充退回内容',
|
||
|
icon: 'error'
|
||
|
})
|
||
|
|
||
|
const {
|
||
|
data: res
|
||
|
} = await this.$http('/app/addUntitled', this.equip)
|
||
|
if (res.code == 0) {
|
||
|
this.equip.num = this.equip.num - this.equip.returnNum
|
||
|
uni.showToast({
|
||
|
title: '设备退回成功',
|
||
|
icon: 'success'
|
||
|
});
|
||
|
} else {
|
||
|
uni.showToast({
|
||
|
title: "设备退回失败",
|
||
|
icon: 'error'
|
||
|
})
|
||
|
}
|
||
|
this.resetD()
|
||
|
this.show = true;
|
||
|
this.show2 = false;
|
||
|
|
||
|
},
|
||
|
// 取消退回按钮
|
||
|
cancelUntitled(){
|
||
|
this.resetD()
|
||
|
this.show = true;
|
||
|
this.show2 = false;
|
||
|
},
|
||
|
// 确认报损按钮
|
||
|
async damageEquip(){
|
||
|
let flag = true;
|
||
|
if(this.equip.returnNum==null || this.equip.returnNum=='' ){
|
||
|
flag = false;
|
||
|
}else{
|
||
|
if(this.equip.returnNum > this.equip.num){
|
||
|
flag = false;
|
||
|
if(!flag) return uni.showToast({
|
||
|
title: '出库数量不足!',
|
||
|
icon: 'error'
|
||
|
})
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if(this.equip.untreadTime==null || this.equip.untreadTime=='' ){
|
||
|
flag = false;
|
||
|
}
|
||
|
if(this.equip.untreadReason==null || this.equip.untreadReason=='' ){
|
||
|
flag = false;
|
||
|
}
|
||
|
if(!flag) return uni.showToast({
|
||
|
title: '请补充报损内容',
|
||
|
icon: 'error'
|
||
|
})
|
||
|
this.equip.damageNum = this.equip.returnNum
|
||
|
this.equip.damageTime = this.equip.untreadTime
|
||
|
this.equip.damageReason = this.equip.untreadReason
|
||
|
const {
|
||
|
data: res
|
||
|
} = await this.$http('/app/addEquipDamage', this.equip)
|
||
|
if (res.code == 0) {
|
||
|
this.equip.num = this.equip.num - this.equip.returnNum
|
||
|
uni.showToast({
|
||
|
title: '设备报损成功',
|
||
|
icon: 'success'
|
||
|
});
|
||
|
} else {
|
||
|
uni.showToast({
|
||
|
title: "设备报损失败",
|
||
|
icon: 'error'
|
||
|
})
|
||
|
}
|
||
|
this.resetD()
|
||
|
this.show = true;
|
||
|
this.show3 = false;
|
||
|
},
|
||
|
// 取消退回按钮
|
||
|
cancelDamage(){
|
||
|
this.resetD()
|
||
|
this.show = true;
|
||
|
this.show3 = false;
|
||
|
},
|
||
|
resetD(){
|
||
|
this.equip.returnNum = null;
|
||
|
this.equip.untreadTime = null;
|
||
|
this.equip.untreadReason = null;
|
||
|
},
|
||
|
reset() {
|
||
|
this.equip = {
|
||
|
id: null,
|
||
|
equipNo: null,
|
||
|
equipName: null,
|
||
|
outTime: null,
|
||
|
batch: null,
|
||
|
num: null,
|
||
|
totalprice: null,
|
||
|
cid: null,
|
||
|
customerName: null,
|
||
|
// 退回 参数
|
||
|
returnNum: null,
|
||
|
untreadTime: null,
|
||
|
untreadReason: null,
|
||
|
// 报损参数
|
||
|
damageNum: null,
|
||
|
damageTime: null,
|
||
|
damageReason: null,
|
||
|
type: '0'
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss">
|
||
|
.submit {
|
||
|
margin: 1vh 2.667vw;
|
||
|
}
|
||
|
|
||
|
.add {
|
||
|
background: #f6f6f6;
|
||
|
padding: 2.667vw;
|
||
|
height: 95vh;
|
||
|
|
||
|
.main {
|
||
|
background: #ffffff;
|
||
|
margin-bottom: 2.667vw;
|
||
|
padding: 2vw;
|
||
|
border-radius: 8px;
|
||
|
|
||
|
.u-form-item__body__right {
|
||
|
padding-left: 20vw;
|
||
|
}
|
||
|
|
||
|
.u-button {
|
||
|
border: none !important;
|
||
|
padding: 0 !important;
|
||
|
justify-content: flex-start;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</style>
|