wxy преди 4 години
родител
ревизия
81f26f9e1b
променени са 1 файла, в които са добавени 78 реда и са изтрити 5 реда
  1. 78 5
      src/views/leave/status.vue

+ 78 - 5
src/views/leave/status.vue

@@ -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>