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.

149 lines
4.5 KiB

2 years ago
<template>
<div style="padding: 0 20px;">
<lx-header
icon="md-document"
style="margin-bottom: 10px; border: 0px; margin-top: 15px"
:text="(id ? '编辑' : '新增') + '出差申请'"
>
</lx-header>
<el-card>
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
<el-form-item label="标题" prop="title">
<el-input clearable placeholder="请输入标题" v-model="form.title" style="max-width: 300px;width: 100%;"></el-input>
</el-form-item>
<el-form-item label="是否用车" prop="use_car">
<el-radio-group v-model="form.use_car">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="开始时间" prop="start_date">
<el-date-picker value-format="yyyy-MM-dd" clearable placeholder="请选择开始时间" style="max-width: 300px;width: 100%;" v-model="form.start_date"></el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="end_date">
<el-date-picker value-format="yyyy-MM-dd"
clearable
placeholder="请选择结束时间"
style="max-width: 300px;width: 100%;"
v-model="form.end_date"></el-date-picker>
</el-form-item>
<el-form-item label="是否室内补助" prop="is_subsidize">
<el-radio-group v-model="form.is_subsidize">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item align="center">
<el-button type="warning" plain @click="reset"></el-button>
<el-button :loading="loading" type="primary" @click="submit"></el-button>
</el-form-item>
</el-form>
</el-card>
</div>
</template>
<script>
import { deepCopy } from "@/utils";
import { save, show } from "@/api/away"
export default {
data() {
return {
id: "",
loading: false,
form: {
title: '',
use_car: 0,
start_date: '',
end_date: '',
is_subsidize: 0,
2 years ago
use_car_status: 1,
subsidize_status: 1,
expense_status: 1,
away_status: 1,
2 years ago
},
copyForm: {
},
rules: {
title: [
{ required: true, message: '请输入标题', trigger: 'blur' },
],
start_date: [
{ required: true, message: '请选择开始时间', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (this.form.end_date && this.form.start_date) {
if (this.$moment(this.form.end_date).isAfter(this.form.start_date)) {
callback()
} else {
callback(new Error('结束时间不能小于开始时间'))
}
} else {
callback()
}
}
}
],
end_date: [
{ required: true, message: '请选择结束时间', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (this.form.end_date && this.form.start_date) {
if (this.$moment(this.form.end_date).isAfter(this.form.start_date)) {
callback()
} else {
callback(new Error('结束时间不能小于开始时间'))
}
} else {
callback()
}
}
}
],
}
}
},
methods: {
init () {
this.copyForm = deepCopy(this.form)
},
reset () {
this.form = deepCopy(this.copyForm)
this.$nextTick(() => this.$refs.form.clearValidate())
},
submit () {
this.loading = true
this.$refs.form.validate((valid) => {
if (valid) {
2 years ago
this.form.use_car_status = this.form.use_car ? 1 : "";
this.form.subsidize_status = this.form.is_subsidize ? 1 : "";
2 years ago
save(this.form,true).then(res => {
this.loading = false
this.$message({
message: '提交成功',
type:'success'
})
setTimeout(() => {
this.$router.push("/contract/away")
},500)
}).catch(err => {
this.loading = false
})
} else {
return false
}
})
}
},
computed: {},
created() {
this.init();
}
}
</script>
<style scoped lang="scss">
</style>