luoyb
2021-02-19 908777578b4fb75dd40f551c391d20f4dfe43d32
fix(信息录入): 输入项校验

1.公用方法增加了计算两个日期之间的天数
2.请假信息录入时的到岗时间为必填项,请假天数根据开始日期和结束日期自动计算

https://www.teambition.com/task/602f7e0b25d38c0044863b59
2个文件已修改
59 ■■■■ 已修改文件
src/utils/myUtil.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Informationinput.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/myUtil.js
@@ -29,6 +29,7 @@
  }
  return { birth: birth, sex: sex, age: age }
}
/**
 * 计算工龄
 * @param {*} entryDate 入职日期
@@ -51,3 +52,18 @@
  }
  return age
}
export function dateDifference(begin, end, flag) {
  let dateSpan
  let iReturn
  begin = Date.parse(begin)
  end = Date.parse(end)
  dateSpan = end - begin
  dateSpan = Math.abs(dateSpan)
  switch (flag) {
    case 'd':
      iReturn = Math.floor(dateSpan / (24 * 3600 * 1000))
      break
  }
  return iReturn
}
src/views/user/Informationinput.vue
@@ -1077,11 +1077,11 @@
              />
            </el-form-item>
            <el-form-item label="请假天数">
            <el-form-item label="请假天数" prop="leaveDay">
              <el-input v-model="leaveInfoForm.leaveDay" />
            </el-form-item>
            <el-form-item label="到岗时间">
            <el-form-item label="到岗时间" prop="returnDate">
              <el-date-picker
                v-model="leaveInfoForm.returnDate"
                value-format="yyyy-MM-dd"
@@ -1818,7 +1818,7 @@
  </div>
</template>
<script>
import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil'
import { calculateSeniority, toCardGetUserInfo, dateDifference } from '@/utils/myUtil'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import Pagination from '@/components/Pagination'
@@ -1907,9 +1907,10 @@
      },
      leaveInfoRules: {
        empName: [{ required: true, message: '请选择员工', trigger: 'blur' }],
        beginTime: [{ required: true, message: '请选择请假开始时间', trigger: 'change' }],
        beginTime: [{ required: true, validator: this.startDate }],
        leaveType: [{ required: true, message: '请选择请假类型', trigger: 'change' }],
        endTime: [{ required: true, message: '请选择请假结束时间', trigger: 'change' }],
        endTime: [{ required: true, validator: this.endDate }],
        returnDate: [{ required: true, message: '请选择到岗时间', trigger: 'change' }],
        reporter: [{ required: true, message: '请输入报备人', trigger: 'blur' }],
        remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
      },
@@ -2967,7 +2968,21 @@
                // 如果起始在结束之前
                callback()
              } else {
                callback(new Error('开始始日期不能在结束日期之后,请重新选择'))
                callback(new Error('开始日期不能在结束日期之后,请重新选择'))
              }
            }
            break
          case 5:
            // 如果结束日期没选,cb
            if (!this.leaveInfoForm.endTime) {
              callback()
            } else {
              // 结束日期有,进行判断
              if (this.compareDate(value, this.leaveInfoForm.endTime)) {
                // 如果起始在结束之前
                callback()
              } else {
                callback(new Error('开始时间不能在结束时间之后,请重新选择'))
              }
            }
            break
@@ -2987,6 +3002,22 @@
              // 起始日期有,进行判断
              if (this.compareDate(this.workExperienceForm.beginDate, value)) {
                // 如果起始在结束之前
                this.leaveInfoForm.leaveDay = dateDifference(this.leaveInfoForm.beginTime, this.leaveInfoForm.endTime, 'd')
                callback()
              } else {
                callback(new Error('结束日期不能在开始始日期之前,请重新选择'))
              }
            }
            break
          case 5:
            // 如果起始日期没选,cb
            if (!this.leaveInfoForm.beginTime) {
              callback()
            } else {
              // 起始日期有,进行判断
              if (this.compareDate(this.leaveInfoForm.beginTime, value)) {
                // 如果起始在结束之前
                this.leaveInfoForm.leaveDay = dateDifference(this.leaveInfoForm.beginTime, this.leaveInfoForm.endTime, 'd')
                callback()
              } else {
                callback(new Error('结束日期不能在开始始日期之前,请重新选择'))