he2802 4 yıl önce
ebeveyn
işleme
e1f0d0562e

+ 69 - 1
src/view/jobSearchManagement/interviewCalendar/index.vue

@@ -72,7 +72,7 @@
       <div style="margin-top: 30px">
         <div style="text-align: center"> {{dateForm.recruitResumeVo.realname}} - {{dateForm.job}}</div>
         <div style="text-align: center;margin-top: 20px">
-          <el-date-picker type="datetime" placeholder="选择时间" v-model="dateForm.resumeTime" value-format="timestamp"></el-date-picker>
+          <el-date-picker :picker-options="pickerOptions" type="datetime" placeholder="选择时间" v-model="dateForm.resumeTime" value-format="timestamp"></el-date-picker>
         </div>
       </div>
           <span slot="footer" class="dialog-footer">
@@ -109,6 +109,12 @@
 export default {
   data() {
     return {
+      pickerOptions: {
+        selectableRange: this.parseTime(new Date().setMinutes(new Date().getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:00",
+        disabledDate: (time) => {
+          return time.getTime() < Date.now() - 8.64e7;
+        },
+      },
       options: [{
         value: 0,
         label: '已投递'
@@ -181,6 +187,45 @@ export default {
     this.search();
   },
   methods: {
+    parseTime(time, pattern) {
+      if (arguments.length === 0 || !time) {
+        return null
+      }
+      const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
+      let date
+      if (typeof time === 'object') {
+        date = time
+      } else {
+        if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
+          time = parseInt(time)
+        } else if (typeof time === 'string') {
+          time = time.replace(new RegExp(/-/gm), '/');
+        }
+        if ((typeof time === 'number') && (time.toString().length === 10)) {
+          time = time * 1000
+        }
+        date = new Date(time)
+      }
+      const formatObj = {
+        y: date.getFullYear(),
+        m: date.getMonth() + 1,
+        d: date.getDate(),
+        h: date.getHours(),
+        i: date.getMinutes(),
+        s: date.getSeconds(),
+        a: date.getDay()
+      }
+      const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
+        let value = formatObj[key]
+        // Note: getDay() returns 0 on Sunday
+        if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
+        if (result.length > 0 && value < 10) {
+          value = '0' + value
+        }
+        return value || 0
+      })
+      return time_str
+    },
     editrecruitinterviewStatus(){
       let data = {}
       data.status = this.value
@@ -316,6 +361,29 @@ export default {
   watch:{
     dayValue(val, oldVal){//普通的watch监听
       this.search()
+    },
+    "dateForm.resumeTime": {
+      handler(newValue, oldValue) {
+        if (newValue) {
+          let date = new Date();
+          if(date.getTime()+24*3600*1000<newValue){
+            this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+            this.pickerOptions = this.pickerOptions;
+          }else{
+            let date1 = new Date()
+            date1.setTime(newValue)
+            if(date.getDate()>=date1.getDate()){
+              this.pickerOptions.selectableRange = this.parseTime(date.setMinutes(date.getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:59"
+              this.pickerOptions = this.pickerOptions;
+            }else{
+              this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+              this.pickerOptions = this.pickerOptions;
+            }
+          }
+        }
+      },
+      deep: true,
+      immediate: true,
     }
   }
 };

+ 35 - 0
src/view/jobSearchManagement/resumeCenter/index.vue

@@ -107,6 +107,7 @@
               <el-date-picker
                 type="datetime"
                 placeholder="选择时间"
+                :picker-options="pickerOptions"
                 v-model="form.resumeTime"
                 value-format="timestamp"
               ></el-date-picker>
@@ -176,6 +177,12 @@ export default {
   components: { searchBox, tableList, pagination, resumes },
   data() {
     return {
+      pickerOptions: {
+        selectableRange: this.parseTime(new Date().setMinutes(new Date().getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:00",
+        disabledDate: (time) => {
+          return time.getTime() < Date.now() - 8.64e7;
+        },
+      },
       radio: "1",
       refuseText1:
         "您的简历已经纳入我们公司的人才储备库,如果有适合您的岗位,我们会第一时间通知您,祝您求职成功,心想事成。",
@@ -694,9 +701,37 @@ export default {
       this.search();
     },
   },
+  watch:{
+    "form.resumeTime": {
+      handler(newValue, oldValue) {
+        if (newValue) {
+          let date = new Date();
+          if(date.getTime()+24*3600*1000<newValue){
+            this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+            this.pickerOptions = this.pickerOptions;
+          }else{
+            let date1 = new Date()
+            date1.setTime(newValue)
+            if(date.getDate()>=date1.getDate()){
+              this.pickerOptions.selectableRange = this.parseTime(date.setMinutes(date.getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:59"
+              this.pickerOptions = this.pickerOptions;
+            }else{
+              this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+              this.pickerOptions = this.pickerOptions;
+            }
+          }
+        }
+      },
+      deep: true,
+      immediate: true,
+    }
+  }
 };
 </script>
 <style lang="less" scoped>
+/deep/ .el-dialog{
+  min-width: 400px;
+}
 /deep/ .el-cascader-node > .el-radio,
 .el-radio:last-child {
   width: 90%;