Browse Source

查询检验报告修改为手动选择日期范围。

lighter 4 years ago
parent
commit
43b35e782c
2 changed files with 48 additions and 45 deletions
  1. 13 0
      src/utils/date.js
  2. 35 45
      src/views/hospital-service/check-exam/CheckExamIndex.vue

+ 13 - 0
src/utils/date.js

@@ -12,6 +12,19 @@ export function getDate() {
   return year + '-' + month + '-' + day
 }
 
+export function formatDate(date) {
+  const year = date.getFullYear()
+  let month = date.getMonth() + 1
+  let day = date.getDate()
+  if (month < 10) {
+    month = '0' + month
+  }
+  if (day < 10) {
+    day = '0' + day
+  }
+  return year + '-' + month + '-' + day
+}
+
 export function getOneMonthOffset() {
   const myDate = new Date()
   let year = myDate.getFullYear()

+ 35 - 45
src/views/hospital-service/check-exam/CheckExamIndex.vue

@@ -1,6 +1,7 @@
 <template>
   <window-size>
-    <van-cell title="选择年月" is-link arrow-direction="down" :value="dateText" @click="data.showDatePicker = true" />
+    <van-cell title="选择日期区间" :value="date" @click="showDateRange = true" />
+    <van-calendar v-model:show="showDateRange" :min-date="minDate" type="range" @confirm="onConfirm" />
     <div v-show="examIndex.length > 0">
       <div style="height: 5px"></div>
       <van-tag type="success" size="large" round plain>已发布报告</van-tag>
@@ -20,26 +21,17 @@
       </div>
     </div>
     <van-empty :image="empty" description="您当前没有报告项目" v-show="examIndex.length === 0" />
-    <van-popup v-model:show="data.showDatePicker" position="bottom" :style="{ height: '50%' }">
-      <van-datetime-picker
-        v-model="data.currentDate"
-        type="year-month"
-        title="选择年月"
-        :min-date="data.minDate"
-        :max-date="data.maxDate"
-        :formatter="formatter"
-        @confirm="confirmPickDate"
-      />
-    </van-popup>
   </window-size>
 </template>
 
 <script>
+import Cookies from 'js-cookie'
 import store from '../../../store'
 import empty from '../../../assets/empty.png'
 import { useRouter } from 'vue-router'
-import { computed, onMounted, reactive } from 'vue'
+import { computed, onMounted, ref } from 'vue'
 import { checkExamIndex } from '../../../api/check-exam'
+import { formatDate } from '../../../utils/date'
 export default {
   name: 'CheckExamIndex',
   setup() {
@@ -49,55 +41,53 @@ export default {
       height: store.state.windowSize.h - 125 + 'px',
       overflowY: 'auto',
     }
-    const data = reactive({
-      showDatePicker: true,
-      minDate: new Date(2015, 0, 1),
-      maxDate: new Date(),
-      currentDate: store.state.currentExamDate ? store.state.currentExamDate : new Date(),
-    })
+    const date = ref('')
+    const showDateRange = ref(false)
     const examIndex = computed(() => {
       return store.state.examIndexArray
     })
-    const dateText = computed(() => {
-      return data.currentDate.getFullYear() + '年' + (data.currentDate.getMonth() + 1) + '月'
-    })
-    const formatter = (type, val) => {
-      if (type === 'year') {
-        return `${val}年`
-      } else if (type === 'month') {
-        return `${val}月`
-      }
-      return val
-    }
-    const confirmPickDate = (val) => {
-      data.showDatePicker = false
-      store.commit('SET_CURRENTEXAMDATE', val)
-      const year = val.getFullYear()
-      const month = val.getMonth() + 1
+
+    const onConfirm = (values) => {
+      showDateRange.value = false
+      const start = formatDate(values[0])
+      const end = formatDate(values[1])
+      Cookies.set('inspection-start-date', start)
+      Cookies.set('inspection-end-date', end)
+      date.value = `${start} - ${end}`
       const param = {
         patientId,
-        year,
-        month,
+        start,
+        end,
       }
       checkExamIndex(param).then((res) => {
         store.commit('SET_EXAMINDEXARRAY', res)
       })
     }
+
     onMounted(() => {
-      if (examIndex.value.length === 0) {
-        confirmPickDate(data.currentDate)
-      } else {
-        data.showDatePicker = false
+      if (Cookies.get('inspection-start-date')) {
+        date.value = Cookies.get('inspection-start-date') + ' - ' + Cookies.get('inspection-end-date')
+        if (examIndex.value.length === 0) {
+          const param = {
+            patientId,
+            start: Cookies.get('inspection-start-date'),
+            end: Cookies.get('inspection-end-date'),
+          }
+          checkExamIndex(param).then((res) => {
+            store.commit('SET_EXAMINDEXARRAY', res)
+          })
+        }
       }
+      showDateRange.value = false
     })
     return {
       scrollStyle,
       empty,
-      data,
-      dateText,
-      formatter,
+      minDate: new Date(2010, 0, 1),
+      date,
       examIndex,
-      confirmPickDate,
+      onConfirm,
+      showDateRange,
     }
   },
 }