空管耐用品库存管理前端
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.
 
 
 
 
 

118 lines
2.8 KiB

<template>
<el-dialog
:title="purchaseTitle"
append-to-body
:visible.sync="openShow"
width="30%"
@close="closeDialog"
>
<avue-form ref="form" :option="option" v-model="formData"></avue-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import {returnMaterial} from '@/api/materials/expend'
export default {
props: {
showDialog: {
type: Boolean,
default: false,
},
durableFormId: {
type: Number,
default: 0,
}
},
data() {
const today = new Date();
const defaultDate = `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, '0')}-${today.getDate().toString().padStart(2, '0')}`;
return {
formData: {
returnReason: '',
returnTime: defaultDate,
},
purchaseTitle:'报废',
openShow: false,
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: "报废数量",
prop: "num",
span: 24,
value: 1,
disabled: true,
},
{
label: "报废理由",
prop: "returnReason",
span: 24,
type:'textarea',
rows:5,
rules: [
{
required: true,
message: "请输入",
trigger: "blur",
},
],
},
{
label: "报废时间",
prop: "returnTime",
span: 24,
type:'date',
rows:5,
rules: [
{
required: true,
message: "请选择",
trigger: "blur",
},
],
},
],
},
};
},
mounted() {
this.openShow = this.showDialog;
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit("closeDialog");
},
async submit() {
this.$refs.form.validate(async (valid) => {
if (valid) {
try {
const params = {
durableFormId: this.durableFormId,
num: 1,
returnTime: this.formData.returnTime,
returnReason: this.formData.returnReason,
type: 2
}
await returnMaterial(params)
this.$message.success('报废成功')
this.closeDialog()
this.$emit('submitSuccess')
this.$refs.form.resetFields()
} catch (error) {
this.$message.error(error.message || '报废失败,请重试')
}
}
});
},
},
};
</script>
<style lang="scss" scoped></style>