You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.1 KiB
Vue

<template>
<el-dialog title="核销优惠券" :visible.sync="dialogFormVisible" ref="dialog" width="450px" @close="close">
<el-form ref="form" :model="form" :rules="rules" label-width="auto">
<el-form-item label="优惠券编码" prop="code">
<el-input v-model.trim="form.code" clearable autocomplete="off" onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="close"> </el-button>
<el-button type="primary" @click="save"> </el-button>
</div>
</el-dialog>
</template>
<script>
export default {
name: 'Verification',
data() {
return {
form: {
code: undefined,
},
rules: {
code: [{ required: true, trigger: 'blur', message: '请输入优惠券编码' }],
},
dialogFormVisible: false,
}
},
created() { },
methods: {
// 打开弹窗
open() {
this.form = Object.assign({}, {})
this.dialogFormVisible = true
},
// 关闭弹窗
close() {
this.$refs['form'].resetFields()
this.form = this.$options.data().form
this.dialogFormVisible = false
},
// 确认核销
save() {
this.$refs['form'].validate(async (valid) => {
if (valid) {
if (this.form.hotelAssetId) {
const form = Object.assign({}, this.form)
form.depreciationRate = parseFloat(form.depreciationRate)
form.netSalvage = parseFloat(form.netSalvage)
doEdit(form).then((res) => this.callbackFun(res))
} else {
const form = Object.assign({}, this.form)
form.depreciationRate = parseFloat(form.depreciationRate)
form.netSalvage = parseFloat(form.netSalvage)
doAdd(form).then((res) => this.callbackFun(res))
}
} else {
return false
}
})
},
callbackFun(res) {
if (res.success) {
this.$baseMessage(res.msg, 'success')
this.$emit('fetch-data')
this.close()
}
},
},
}
</script>
<style scoped>
</style>