瀏覽代碼

bug修复

chenrui 3 年之前
父節點
當前提交
b8c75f4129
共有 3 個文件被更改,包括 93 次插入31 次删除
  1. 10 0
      src/libs/getDate.js
  2. 62 0
      src/views/common/rangeDateTime.vue
  3. 21 31
      src/views/power/OperateJournal/OperateJournal.vue

+ 10 - 0
src/libs/getDate.js

@@ -16,6 +16,16 @@ export default {
     obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD')
     return obj
   },
+  // 获取今日的开始结束时间  年月日时分秒
+  getTodayTime () {
+    const obj = {
+      starttime: '',
+      endtime: ''
+    }
+    obj.starttime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss')
+    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD HH:mm:ss')
+    return obj
+  },
   //  近7天
   getRecentday () {
     const obj = {

+ 62 - 0
src/views/common/rangeDateTime.vue

@@ -0,0 +1,62 @@
+<template>
+  <a-range-picker
+    style="width:100%"
+    :value="date"
+    show-time
+    :disabledDate="disabledDate"
+    :format="dateFormat"
+    @change="dateChange"
+    @calendarChange="dateCalendarChange"
+    :placeholder="['开始时间', '结束时间']" />
+</template>
+<script>
+import moment from 'moment'
+export default {
+  props: {
+    value: {
+      type: Array,
+      default: () => {
+        return []
+      }
+    }
+  },
+  data () {
+    return {
+      date: this.value,
+      dateFormat: 'YYYY-MM-DD HH:mm:ss',
+      selectPriceDate: ''
+    }
+  },
+  methods: {
+    // 不可选日期
+    disabledDate (current) {
+      //  最早可倒推选择两年数据,最晚为今天
+      const minYearVs = moment().subtract(2, 'years') //  两年前   负值
+      const maxYearVs = moment().endOf('day') //  今天,包含今天
+      //  限制最多只能查一年区间的数据
+      if (this.selectPriceDate) {
+        const oMinYearVs = moment(this.selectPriceDate, 'YYYY-MM-DD HH:mm:ss').subtract(1, 'years') //  当前选中开始日期前推一年
+        const oMaxYearVs = moment(this.selectPriceDate, 'YYYY-MM-DD HH:mm:ss').add(1, 'years') //  当前选中开始日期后推一年
+        // 判断两个时间段是否相差m天  第二个参数指相差单位,第三个参数指是否返回浮点形式(小数)
+        const beginDate = minYearVs.diff(oMinYearVs, 'days') > 0 ? minYearVs : oMinYearVs // 若当前选中开始日期前推一年超出最多倒推两年数据时,则以两年为标准
+        const endDate = maxYearVs.diff(oMaxYearVs, 'days') > 0 ? oMaxYearVs : maxYearVs // 若当前选中开始日期后推一年超出今天时,则以今天为标准
+        return current && current < beginDate || current && current > endDate
+      } else {
+        return current && current > maxYearVs || current && current < minYearVs
+      }
+    },
+    // 日期  change
+    dateChange (date, dateStrings) {
+      this.selectPriceDate = ''
+      this.date = date
+      this.$emit('change', dateStrings)
+    },
+    dateCalendarChange (date, dateStrings) {
+      this.selectPriceDate = date[0]
+    },
+    resetDate (val) {
+      this.date = val || []
+    }
+  }
+}
+</script>

+ 21 - 31
src/views/power/OperateJournal/OperateJournal.vue

@@ -3,11 +3,11 @@
     <div class="operateJournal">
       <!-- 搜索框 -->
       <div class="table-page-search-wrapper">
-        <a-form layout="inline">
-          <a-row :gutter="48">
-            <a-col :md="8" :sm="24">
+        <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
+          <a-row :gutter="15">
+            <a-col :md="6" :sm="24">
               <a-form-item label="操作时间">
-                <a-range-picker :format="dateFormat" show-time :placeholder="['开始时间', '结束时间']" v-model="time" @change="onChange" />
+                <rangeDateTime ref="rangeDate" :value="time" @change="dateChange" />
               </a-form-item>
             </a-col>
             <a-col :md="6" :sm="24">
@@ -36,23 +36,27 @@
 </template>
 
 <script>
+import moment from 'moment'
+import getDate from '@/libs/getDate'
 import { STable } from '@/components'
 import { journalList } from '@/api/OperateJournal.js'
-import getDate from '@/libs/getDate'
-import moment from 'moment'
+import rangeDateTime from '@/views/common/rangeDateTime.vue'
 export default {
   name: 'OperateJournal',
-  components: { STable },
+  components: { STable, rangeDateTime },
   data () {
     return {
       // 列表
       form: this.$form.createForm(this, {
         name: 'OperateJournal'
       }),
-      time: [moment(getDate.getToday().starttime, this.dateFormat), moment(getDate.getToday().endtime, this.dateFormat)],
+      time: [
+        moment(getDate.getTodayTime().starttime, this.dateFormat),
+        moment(getDate.getTodayTime().endtime, this.dateFormat)
+      ],
       searchData: {
-        beginDate: null, // 查询的开始时间
-        endDate: null, // 查询的结束时间
+        beginDate: getDate.getTodayTime().starttime, // 查询的开始时间
+        endDate: getDate.getTodayTime().endtime, // 查询的结束时间
         queryWord: '' // 操作人
       },
       dateFormat: 'YYYY-MM-DD HH:mm:ss',
@@ -86,8 +90,6 @@ export default {
       ],
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
-        this.searchData.beginDate == null ? (this.searchData.beginDate = getDate.getToday().starttime) : null
-        this.searchData.endDate == null ? (this.searchData.endDate = getDate.getToday().endtime) : null
         return journalList(Object.assign(parameter, this.searchData)).then(res => {
           const no = (res.data.data.pageNo - 1) * res.data.data.pageSize
           for (let i = 0; i < res.data.data.list.length; i++) {
@@ -100,31 +102,19 @@ export default {
     }
   },
   methods: {
-    moment,
-    // 操作时间change
-    onChange (dates, dateStrings) {
-      this.searchData.beginDate = dateStrings[0]
-      this.searchData.endDate = dateStrings[1]
+    //  时间  change
+    dateChange (date) {
+      this.searchData.beginDate = date[0]
+      this.searchData.endDate = date[1]
     },
     // 重置
     resetForm () {
-      this.searchData.beginDate = getDate.getToday().starttime
-      this.searchData.endDate = getDate.getToday().endtime
-      this.time = [moment(getDate.getToday().starttime, this.dateFormat), moment(getDate.getToday().endtime, this.dateFormat)]
+      this.$refs.rangeDate.resetDate(this.time)
+      this.searchData.beginDate = getDate.getTodayTime().starttime
+      this.searchData.endDate = getDate.getTodayTime().endtime
       this.searchData.queryWord = ''
       this.$refs.table.refresh(true)
     }
   }
-  // beforeRouteEnter (to, from, next) {
-  //   next(vm => {
-  //     // const todayDate= [getDate.getToday().starttime, getDate.getToday().endtime]
-  // 	// console.log(todayDate)
-  // 	// vm.searchData.beginDate = getDate.getToday().starttime
-  // 	// vm.searchData.endDate = getDate.getToday().endtime
-  // 	// console.log(vm.searchData.beginDate, '--------------',  vm.searchData.endDate )
-  //   })
-  // }
 }
 </script>
-
-<style></style>