leaveDetail.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <div id="leaveDetail">
  3. <el-row>
  4. <el-col :span="24" class="info">
  5. <el-col :span="24" class="native">
  6. <topNative></topNative>
  7. </el-col>
  8. <el-col :span="24" class="form">
  9. <formLeave :form="form" @submit="onSubmit" @cancelClick="cancelClick"></formLeave>
  10. </el-col>
  11. </el-col>
  12. </el-row>
  13. </div>
  14. </template>
  15. <script>
  16. import topNative from '@/layout/common/footInfo.vue';
  17. import formLeave from '@/layout/user/formLeave.vue';
  18. import { createNamespacedHelpers, mapGetters } from 'vuex';
  19. const { mapActions: mapLeave } = createNamespacedHelpers('leave');
  20. export default {
  21. name: 'leaveDetail',
  22. props: {},
  23. components: {
  24. topNative, //导航
  25. formLeave, //请假
  26. },
  27. data: () => ({
  28. form: {},
  29. }),
  30. created() {},
  31. computed: {
  32. keyWord() {
  33. let meta = this.$route.meta;
  34. let main = meta.title || '';
  35. return main;
  36. },
  37. },
  38. methods: {
  39. ...mapLeave(['create']),
  40. async onSubmit(form) {
  41. this.form.studentid = '99991';
  42. let data = this.form;
  43. let res = await this.create(data);
  44. let msg = `${this.keyWord}添加成功`;
  45. if (this.$checkRes(res, msg)) this.cancelClick();
  46. },
  47. cancelClick() {
  48. this.$router.push({ path: '/user/leave' });
  49. },
  50. },
  51. };
  52. </script>
  53. <style lang="less" scoped>
  54. .info {
  55. width: 100%;
  56. height: 100vh;
  57. position: relative;
  58. overflow: hidden;
  59. background-color: #f9fafc;
  60. }
  61. .native {
  62. margin: 0 0 50px 0;
  63. }
  64. </style>