lrf402788946 3 years ago
parent
commit
2e9d4a7ced
1 changed files with 121 additions and 107 deletions
  1. 121 107
      src/layout/user/leaveRequest.vue

+ 121 - 107
src/layout/user/leaveRequest.vue

@@ -1,107 +1,121 @@
-<template>
-  <div id="leaveRequest">
-    <el-row>
-      <el-col :span="24">
-        <el-form ref="form" :model="form">
-          <van-field name="radio" label="请假类型">
-            <template #input>
-              <van-radio-group v-model="form.type" direction="horizontal">
-                <van-radio name="0">请假</van-radio>
-                <van-radio name="1">退出</van-radio>
-              </van-radio-group>
-            </template>
-          </van-field>
-          <van-cell title="开始时间" is-link :value="form.starttime" @click="birthdayPopup" />
-          <van-popup v-model="birthdayShow" position="bottom">
-            <van-datetime-picker @confirm="birthdayPicker" type="datetime" title="选择完整时间" :min-date="minDate" :max-date="maxDate" />
-          </van-popup>
-          <van-cell title="结束时间" is-link :value="form.endtime" @click="birthdayPopups" v-if="form.type == '0'" />
-          <van-popup v-model="endbirthdayshow" position="bottom">
-            <van-datetime-picker @confirm="birthdayPickers" type="datetime" title="选择完整时间" :min-date="minDate" :max-date="maxDate" />
-          </van-popup>
-          <van-field v-model="form.reason" rows="1" autosize label="请假理由" type="textarea" placeholder="请输入请假理由" />
-          <el-form-item>
-            <el-button type="primary" @click="onSubmit">提交</el-button>
-            <el-button @click="cancelClick()">取消</el-button>
-          </el-form-item>
-        </el-form>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import moment from 'moment';
-export default {
-  name: 'leaveRequest',
-  props: {
-    form: null,
-  },
-  components: {},
-  data: () => ({
-    starttime: '',
-    minDate: new Date(2020, 0, 1),
-    maxDate: new Date(2025, 10, 1),
-    currentDate: new Date(),
-    birthdayShow: false,
-    endbirthdayshow: false,
-    date: require('@/assets/date.png'),
-  }),
-  created() {},
-  computed: {},
-  methods: {
-    //开始时间
-    birthdayPopup() {
-      this.birthdayShow = true;
-    },
-    //结束时间
-    birthdayPopups() {
-      this.endbirthdayshow = true;
-    },
-    // 确认选择之后的时间
-    birthdayPicker(val) {
-      let starttime = moment(val).format('YYYY-MM-DD HH:mm');
-      this.$set(this.form, `starttime`, starttime);
-      this.birthdayShow = false;
-    },
-    birthdayPickers(val) {
-      let endtime = moment(val).format('YYYY-MM-DD HH:mm');
-      this.$set(this.form, `endtime`, endtime);
-      this.endbirthdayshow = false;
-    },
-    // 提交
-    onSubmit() {
-      this.$emit('onSubmit', { data: this.form });
-    },
-    // 取消
-    cancelClick() {
-      this.$emit('cancelClick');
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-/deep/.el-form-item__label {
-  width: 100%;
-  text-align: left;
-  float: none;
-}
-/deep/.el-form-item {
-  margin: 15px 0;
-  text-align: center;
-}
-.date {
-  color: blue;
-}
-.endDate {
-  color: red;
-}
-/deep/.el-textarea {
-  width: 90%;
-}
-/deep/.el-textarea__inner {
-  background: #f5f5f5;
-  border: none;
-}
-</style>
+<template>
+  <div id="leaveRequest">
+    <el-row>
+      <el-col :span="24">
+        <el-form ref="form" :model="form">
+          <van-field name="radio" label="请假类型">
+            <template #input>
+              <van-radio-group v-model="form.type" direction="horizontal">
+                <van-radio name="0">请假</van-radio>
+                <van-radio name="1">退出</van-radio>
+              </van-radio-group>
+            </template>
+          </van-field>
+          <van-cell title="开始时间" is-link :value="form.starttime" @click="birthdayPopup" />
+          <van-popup v-model="birthdayShow" position="bottom">
+            <van-datetime-picker @confirm="birthdayPicker" type="datetime" title="选择完整时间" :min-date="startOption.min" />
+          </van-popup>
+          <van-cell title="结束时间" is-link :value="form.endtime" @click="birthdayPopups" v-if="form.type == '0'" />
+          <van-popup v-model="endbirthdayshow" position="bottom">
+            <van-datetime-picker @confirm="birthdayPickers" type="datetime" title="选择完整时间" :min-date="endOption.min" />
+          </van-popup>
+          <van-field v-model="form.reason" rows="1" autosize label="请假理由" type="textarea" placeholder="请输入请假理由" />
+          <el-form-item>
+            <el-button type="primary" @click="onSubmit">提交</el-button>
+            <el-button @click="cancelClick()">取消</el-button>
+          </el-form-item>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import moment from 'moment';
+export default {
+  name: 'leaveRequest',
+  props: {},
+  components: {},
+  data: () => ({
+    form: {
+      type: '0',
+      starttime: moment().format('YYYY-MM-DD HH:mm'),
+    },
+    starttime: '',
+    startOption: {
+      min: new Date(),
+    },
+    endOption: {
+      min: new Date(),
+    },
+    minDate: new Date(2020, 0, 1),
+    maxDate: new Date(2025, 10, 1),
+    currentDate: new Date(),
+    birthdayShow: false,
+    endbirthdayshow: false,
+    date: require('@/assets/date.png'),
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    //开始时间
+    birthdayPopup() {
+      this.birthdayShow = true;
+    },
+    //结束时间
+    birthdayPopups() {
+      this.endbirthdayshow = true;
+    },
+    // 确认选择之后的时间
+    birthdayPicker(val) {
+      let starttime = moment(val).format('YYYY-MM-DD HH:mm');
+      this.$set(this.form, `starttime`, starttime);
+      // 限制结束时间的开始选择
+      this.$set(this.endOption, 'min', val);
+      this.$set(this.form, 'endtime', '');
+      this.birthdayShow = false;
+    },
+    birthdayPickers(val) {
+      let endtime = moment(val).format('YYYY-MM-DD HH:mm');
+      this.$set(this.form, `endtime`, endtime);
+      this.endbirthdayshow = false;
+    },
+    // 提交
+    onSubmit() {
+      this.$emit('onSubmit', { data: this.form });
+    },
+    // 取消
+    cancelClick() {
+      this.$emit('cancelClick');
+    },
+    selectStart(picker) {
+      console.log(picker);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+/deep/.el-form-item__label {
+  width: 100%;
+  text-align: left;
+  float: none;
+}
+/deep/.el-form-item {
+  margin: 15px 0;
+  text-align: center;
+}
+.date {
+  color: blue;
+}
+.endDate {
+  color: red;
+}
+/deep/.el-textarea {
+  width: 90%;
+}
+/deep/.el-textarea__inner {
+  background: #f5f5f5;
+  border: none;
+}
+</style>