index.vue 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <div class="app-container">
  3. <!-- 对话框(添加 / 修改) -->
  4. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  5. <el-form-item label="开始时间" prop="startTime">
  6. <el-date-picker clearable size="small" v-model="form.startTime" type="date" value-format="timestamp" placeholder="选择开始时间" />
  7. </el-form-item>
  8. <el-form-item label="结束时间" prop="endTime">
  9. <el-date-picker clearable size="small" v-model="form.endTime" type="date" value-format="timestamp" placeholder="选择结束时间" />
  10. </el-form-item>
  11. <el-form-item label="请假类型" prop="leaveType">
  12. <el-select v-model="form.leaveType" placeholder="请选择">
  13. <el-option
  14. v-for="dict in leaveTypeDictData"
  15. :key="parseInt(dict.value)"
  16. :label="dict.label"
  17. :value="parseInt(dict.value)"
  18. />
  19. </el-select>
  20. </el-form-item>
  21. <el-form-item label="原因" prop="reason">
  22. <el-col :span="10">
  23. <el-input
  24. type="textarea"
  25. :rows="3"
  26. v-model="form.reason"
  27. placeholder="请输入原因" />
  28. </el-col>
  29. </el-form-item>
  30. <el-form-item label="申请时间" prop="applyTime">
  31. <el-date-picker clearable size="small" v-model="form.applyTime" type="date" value-format="timestamp" placeholder="选择申请时间" />
  32. </el-form-item>
  33. <el-form-item>
  34. <el-button type="primary" @click="submitForm">确 定</el-button>
  35. </el-form-item>
  36. </el-form>
  37. </div>
  38. </template>
  39. <script>
  40. import { createFormKeyLeave} from "@/api/oa/leave"
  41. import { getDictDataLabel, getDictDatas, DICT_TYPE } from '@/utils/dict'
  42. export default {
  43. name: "ApplyLeave",
  44. components: {
  45. },
  46. data() {
  47. return {
  48. // 表单参数
  49. form: {
  50. processKey: 'leave-update',
  51. taskVariables:{
  52. hr: "",
  53. pm: "",
  54. bm: ""
  55. }
  56. },
  57. // 表单校验
  58. rules: {
  59. startTime: [{ required: true, message: "开始时间不能为空", trigger: "blur" }],
  60. endTime: [{ required: true, message: "结束时间不能为空", trigger: "blur" }],
  61. applyTime: [{ required: true, message: "申请时间不能为空", trigger: "blur" }],
  62. },
  63. statusFormat(row, column) {
  64. return getDictDataLabel(DICT_TYPE.OA_LEAVE_STATUS, row.status)
  65. },
  66. leaveTypeDictData: getDictDatas(DICT_TYPE.OA_LEAVE_TYPE),
  67. leaveStatusData: getDictDatas(DICT_TYPE.OA_LEAVE_STATUS)
  68. };
  69. },
  70. created() {
  71. this.form.taskVariables.hr = this.$route.query.hr;
  72. this.form.taskVariables.pm = this.$route.query.pm;
  73. this.form.taskVariables.bm = this.$route.query.bm;
  74. },
  75. methods: {
  76. /** 提交按钮 */
  77. submitForm() {
  78. this.$refs["form"].validate(valid => {
  79. if (!valid) {
  80. return;
  81. }
  82. // 添加的提交
  83. createFormKeyLeave(this.form).then(response => {
  84. this.msgSuccess("新增成功");
  85. this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
  86. //if (this.isActive(this.$route)) {
  87. this.$router.push({path: '/oa/todo'})
  88. //}
  89. })
  90. });
  91. });
  92. }
  93. }
  94. };
  95. </script>