master
parent
6ef647cc0e
commit
5b7028bdc3
@ -0,0 +1,37 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export function index(params,noloading=false) {
|
||||
return request({
|
||||
method: "get",
|
||||
url: "/api/admin/away/index",
|
||||
params,
|
||||
noloading
|
||||
})
|
||||
}
|
||||
|
||||
export function show (params,noloading=false) {
|
||||
return request({
|
||||
method: "get",
|
||||
url: "/api/admin/away/show",
|
||||
params,
|
||||
noloading
|
||||
})
|
||||
}
|
||||
|
||||
export function save (data,noloading=false) {
|
||||
return request({
|
||||
method: "post",
|
||||
url: "/api/admin/away/save",
|
||||
data,
|
||||
noloading
|
||||
})
|
||||
}
|
||||
|
||||
export function destroy(params,noloading=false) {
|
||||
return request({
|
||||
method: "get",
|
||||
url: "/api/admin/away/destroy",
|
||||
params,
|
||||
noloading
|
||||
})
|
||||
}
|
||||
@ -0,0 +1,155 @@
|
||||
<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,
|
||||
},
|
||||
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())
|
||||
},
|
||||
|
||||
async getDetail () {
|
||||
const res = await show({ id: this.id },false);
|
||||
for (let key in this.form) {
|
||||
this.form[key] = res[key]
|
||||
}
|
||||
},
|
||||
|
||||
submit () {
|
||||
this.loading = true
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
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();
|
||||
},
|
||||
beforeRouteEnter(to, from, next) {
|
||||
next(vm => {
|
||||
vm.id = to.query.id;
|
||||
vm.getDetail(vm.id);
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
Loading…
Reference in new issue