|
@@ -1,25 +1,84 @@
|
|
|
<template>
|
|
|
<div id="status">
|
|
|
- <p>学校审核请假/退出</p>
|
|
|
+ <el-col :span="24" class="main">
|
|
|
+ <el-col :span="24" class="stuList">
|
|
|
+ <van-form>
|
|
|
+ <van-field v-model="form.stuname" name="学生姓名" label="学生姓名" readonly />
|
|
|
+ <van-field name="radio" label="请假类型">
|
|
|
+ <template #input>
|
|
|
+ <van-radio-group v-model="form.type" direction="horizontal" disabled>
|
|
|
+ <van-radio name="0">请假</van-radio>
|
|
|
+ <van-radio name="1">退出</van-radio>
|
|
|
+ </van-radio-group>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <van-field readonly clickable name="date" :value="form.starttime" label="开始时间" />
|
|
|
+ <van-field readonly clickable name="date" :value="form.endtime" label="结束时间" v-if="form.type == '0'" />
|
|
|
+ <van-field v-model="form.reason" name="请假理由" label="请假理由" readonly />
|
|
|
+ <van-field v-model="form.refcause" name="备注" label="备注" />
|
|
|
+ <van-field name="radio" label="请假状态">
|
|
|
+ <template #input>
|
|
|
+ <van-radio-group v-model="form.status" direction="horizontal">
|
|
|
+ <van-radio name="0">审核中</van-radio>
|
|
|
+ <van-radio name="1">通过</van-radio>
|
|
|
+ <van-radio name="2">拒绝</van-radio>
|
|
|
+ </van-radio-group>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <div style="margin: 16px;">
|
|
|
+ <van-button round block type="info" @click="onSubmit">
|
|
|
+ 确认
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: leave } = createNamespacedHelpers('leave');
|
|
|
export default {
|
|
|
name: 'status',
|
|
|
props: {},
|
|
|
components: {},
|
|
|
data: function() {
|
|
|
- return {};
|
|
|
+ return {
|
|
|
+ form: {},
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...leave(['fetch', 'update']),
|
|
|
+ async search() {
|
|
|
+ const res = await this.fetch(this.id);
|
|
|
+ if (res) {
|
|
|
+ this.$set(this, 'form', res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //同意
|
|
|
+ async onSubmit() {
|
|
|
+ let data = this.form;
|
|
|
+ let res = await this.update(data);
|
|
|
+ if (res.errcode === 0) {
|
|
|
+ this.$notify({
|
|
|
+ message: '审核成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
- created() {},
|
|
|
- methods: {},
|
|
|
computed: {
|
|
|
...mapState(['user']),
|
|
|
pageTitle() {
|
|
|
return `${this.$route.meta.title}`;
|
|
|
},
|
|
|
+ id() {
|
|
|
+ return this.$route.query.id;
|
|
|
+ },
|
|
|
},
|
|
|
metaInfo() {
|
|
|
return { title: this.$route.meta.title };
|
|
@@ -27,4 +86,18 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style lang="less" scoped></style>
|
|
|
+<style lang="less" scoped>
|
|
|
+.stuList {
|
|
|
+ padding: 0px 20px;
|
|
|
+ margin-top: 30px;
|
|
|
+ .name {
|
|
|
+ line-height: 40px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ .btn {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|