|
@@ -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,
|
|
|
}
|
|
|
},
|
|
|
}
|