liukangdong
2024-06-21 e2525e1ed686dc305e562757c3a00b37ac3beec4
admin/src/components/business/operaVisitsWindow.vue
@@ -50,6 +50,8 @@
          value-format="yyyy-MM-dd HH:mm:ss"
          type="datetime"
          default-time="08:00:00"
          :picker-options="startPickerOptions"
          @change="changeStarttime"
        />
      </el-form-item>
      <el-form-item label="离园时间" prop="endtime">
@@ -58,6 +60,7 @@
          format="yyyy-MM-dd HH:mm"
          value-format="yyyy-MM-dd HH:mm:ss"
          type="datetime"
          :picker-options="endPickerOptions"
          default-time="08:00:00"
        />
      </el-form-item>
@@ -88,6 +91,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import UploadFaceImg from '@/components/common/UploadFaceImg'
import dayjs from 'dayjs'
import { createFk, getVisitedVisitReason, getVisitedMember } from '@/api/business/visits'
export default {
  name: 'OperaVisitsHkWindow',
@@ -101,13 +105,29 @@
      isShowModal: false,
      param: {
        type: 0,
        idcardType: 0
        idcardType: 0,
        starttime: '',
        endtime: ''
      },
      
      VisitReason: [],
      memberList: [],
      uploadData: {
        folder: 'member'
      },
      startPickerOptions: {
        disabledDate (time) {
          return time.getTime() < Date.now() - 8.64e7 // 禁用超过当前时间的日期
        },
        selectableRange: '00:00:00 - 23:59:59' // 这个加上之后,时分秒上面才有禁止选择变灰,如果不加,也可以禁止选择,但是不会变灰
      },
      endPickerOptions: {
        disabledDate: (time) => {
          if (this.param.starttime) {
            return new Date(this.param.starttime).getTime() > time.getTime() + 8.64e7 // 禁用超过当前时间的日期
          }
        },
        selectableRange: '00:00:00 - 23:59:59'
      },
      rules: {
        starttime: [{ required: true, message: '请选择日期', trigger: 'change' }],
@@ -130,6 +150,49 @@
    this.$set(this.param, 'receptMemberId', this.$store.state.userInfo.memberId)
    this.initData()
  },
  watch: {
    'param.starttime': {
      handler (newValue, oldValue) {
        if (newValue) {
          const date = new Date()
          // const min = date.getMinutes()
          // date.setMinutes(min) // 这里加1分钟,是为了解决值改变后,系统秒数就过期限制了,无法点击“此刻”按钮, 如果监听 “系统时间”的改变,则会影响性能。
          const nowDate = dayjs(date).format('HH:mm:ss')
          let st = ''
          if (dayjs(date).format('yyyy-MM-DD') === dayjs(newValue).format('yyyy-MM-DD')) {
            const hh1 = dayjs(newValue).format('HH:mm:ss')
            // if (hh1 < nowDate) {
            //   this.param.starttime = new Date()
            // }
            st = nowDate
          } else {
            st = '00:00:00'
          }
          this.$set(this.startPickerOptions, 'selectableRange', st + ' - 23:59:59')
          // this.startPickerOptions = this.startPickerOptions
        }
      },
      deep: true,
      immediate: true
    },
    'param.endtime': {
      handler (newValue, oldValue) {
        if (newValue) {
          const nowDate = dayjs(this.param.starttime).format('HH:mm:ss')
          let st = ''
          if (dayjs(this.param.starttime).format('yyyy-MM-DD') === dayjs(newValue).format('yyyy-MM-DD')) {
            st = nowDate
          } else {
            st = '00:00:00'
          }
          this.$set(this.endPickerOptions, 'selectableRange', st + ' - 23:59:59')
          // this.startPickerOptions = this.startPickerOptions
        }
      },
      deep: true,
      immediate: true
    }
  },
  methods: {
    initData () {
      getVisitedVisitReason({}).then(res => {
@@ -143,6 +206,9 @@
      this.$set(this.param, 'faceImg', file.imgurl)
      this.$set(this.param, 'faceImgUrl', file.imgurlfull)
    },
    changeStarttime (e) {
      this.$set(this.param, 'endtime', this.param.starttime)
    },
    // 同步信息
    confirm () {
      this.$refs.paramRef.validate((valid) => {