123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- <template>
- <view class="main">
- <view class="top">
- <view class="nameBox">
- <view class="name">{{ param.patientName ? param.patientName : '还未绑定就诊人' }}</view>
- <text class="icon arrow" style="margin-left: 10px;"></text>
- <view class="change" @click="showChange = true">切换就诊人</view>
- </view>
- <view class="cardNum">{{param.patientName ? param.patientId : '还未绑定就诊人'}}</view>
- <view style="display: flex;text-align: center;margin: 5px;padding: 13px;font-size: 13px;"
- @click="calendar = true">
- <input placeholder="点击选择时间" :disabled="true" v-model="startTime" type="select" />
- <view>至</view>
- <input placeholder="点击选择时间" :disabled="true" v-model="endTime" type="select" />
- </view>
- </view>
- <view class="tab">
- <u-tabs :list="tab" :current="current" keyName="label" @click="click"></u-tabs>
- </view>
- <view class="content">
- <view class="list">
- <view class="item" v-for="(item, index) in list"
- @click="go(`/pages/detection/detail?id=${item.id}&orcId=${item.orcId}&patientName=${param.patientName}&patientId=${param.patientId}&reportCompleteTime=${item.reportCompleteTime}&sampleReceivedDate=${item.sampleReceivedDate}`)">
- <view class="title omit">{{ item.medTechProName }}</view>
- <view class="time">{{ item.dischargeTime }}</view>
- </view>
- </view>
- <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
- <u-empty v-if="!loadMore && list.length == 0"></u-empty>
- </view>
- <u-calendar :show="calendar" monthNum="120" mode="range" :maxDate="util.getDate()" minDate="2020-01-01"
- @confirm="confirm" @close="close()" :closeOnClickOverlay="true"></u-calendar>
- <u-popup :show="showChange" @close="closePopup" @open="openPopup" :round="10" :closeable="true">
- <view>
- <view class="userChangeTitle">请选择就诊人</view>
- <scroll-view scroll-y="true" class="scroll-Y" style="max-height: 300px;">
- <u-radio-group v-model="param.patientId" iconPlacement="left" placement="column">
- <u-radio v-for="(item,index) in userList" :name="item.patientId" @change="groupChange(item)"
- :customStyle="{ backgroundColor: '#F8F8F8', margin:'5px 20px',borderRadius: '10px',padding: '10px'}">
- <view class="userChangeItem" @click="groupChange(item)">
- <view class="userChangeItemName">{{ item.patientName }}</view>
- <view class="userChangeCartNo">{{ item.patientId }}</view>
- </view>
- </u-radio>
- </u-radio-group>
- </scroll-view>
- </view>
- </u-popup>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- userList: [],
- showChange: false,
- current: 0,
- time: null,
- tab: [{
- label: '检测报告'
- }, ],
- startTime: null,
- endTime: null,
- list: [],
- param: {
- // pageNum: 1,
- // pageSize: 10,
- patientId: '',
- patientName: '',
- },
- loadMore: true,
- calendar: false,
- user: {},
- userInfo: {},
- }
- },
- onLoad() {
- this.setDefTime()
- this.user = this.getUser();
- this.getUserList();
- this.getUserInfo()
- },
- methods: {
- getUserInfo() {
- this.http.request({
- url: '/app/user/info',
- success: (res) => {
- this.user = res.data.data;
- this.param.patientId = res.data.data.patientId
- this.param.patientName = res.data.data.patientName
- this.getData();
- }
- });
- },
- groupChange(n) {
- uni.showModal({
- title: '提示',
- content: '确定切换就诊人',
- success: (res) => {
- if (res.confirm) {
- this.http.request({
- url: '/app/user/bind/change/' + n.id,
- success: (res) => {
- this.param.patientName = n.patientName
- this.param.patientId = n.patientId
- this.closePopup()
- this.refresh()
- }
- });
- }
- }
- });
- },
- getUserList() {
- this.http.request({
- url: '/app/user/bind/list',
- success: (res) => {
- this.userList = res.data.data
- }
- });
- },
- openPopup() {
- },
- closePopup() {
- this.showChange = false
- },
- setDefTime() {
- const today = new Date();
- const todayYear = today.getFullYear()
- const todayMonth = (today.getMonth() + 1) < 10 ? "0" + (today.getMonth() + 1) : (today.getMonth() + 1)
- const todayDay = today.getDate() < 10 ? "0" + today.getDate() : today.getDate()
- this.param.endTime = todayYear + todayMonth + todayDay
- this.endTime = todayYear + '-' + todayMonth + '-' + todayDay
- let beforeTime = new Date(today.getTime() - 24 * 60 * 60 * 1000 * 30);
- //一个月前
- let beforeTimeYear = beforeTime.getFullYear();
- let beforeTimeMonth = beforeTime.getMonth() + 1;
- let beforeTimeDay = beforeTime.getDate();
- beforeTimeMonth = beforeTimeMonth < 10 ? "0" + beforeTimeMonth : beforeTimeMonth;
- beforeTimeDay = beforeTimeDay < 10 ? "0" + beforeTimeDay : beforeTimeDay;
- this.param.startTime = beforeTimeYear + beforeTimeMonth + beforeTimeDay
- this.startTime = beforeTimeYear + "-" + beforeTimeMonth + "-" + beforeTimeDay
- },
- confirm(e) {
- this.calendar = false;
- this.param.startTime = e[0].replace(/-/g, '');;
- this.param.endTime = e[e.length - 1].replace(/-/g, '');;
- this.startTime = e[0]
- this.endTime = e[e.length - 1]
- this.refresh();
- },
- close() {
- this.calendar = false;
- },
- getData() {
- //判断是否有绑定患者
- if (this.param.patientName) {
- this.http.request({
- url: '/app/obrRequest/' + this.param.patientId,
- data: this.param,
- success: (res) => {
- this.list = res.data.data
- this.loadMore = false
- // this.loadMore = res.data.pages > this.param.pageNum ? true : false;
- // this.list.push(...res.data.rows);
- }
- });
- } else {
- this.loadMore = false
- }
- },
- click(e) {
- this.current = e.index;
- this.param.type = e.dictValue;
- this.refresh();
- },
- selectTime(e) {
- console.log(e);
- },
- go(url) {
- uni.navigateTo({
- url: url
- });
- },
- //刷新数据
- refresh() {
- this.loadMore = true;
- this.param.pageNum = 1;
- this.list = [];
- this.getData();
- }
- }
- }
- </script>
- <style lang="scss">
- .top {
- padding: 15px;
- background-color: white;
- border-radius: 8px;
- .nameBox {
- display: flex;
- align-items: center;
- .name {
- font-weight: bold;
- font-size: 16px;
- }
- .change {
- color: royalblue;
- margin-left: 20px;
- }
- }
- .cardNum {
- padding-top: 10px;
- font-size: 14px;
- }
- }
- .content {
- padding: 15px;
- background-color: white;
- border-radius: 8px;
- .list {
- .item {
- overflow: hidden;
- padding: 13px 0;
- border-bottom: 1px solid $line;
- margin-bottom: 10px;
- .title {
- font-size: 18px;
- font-weight: bold;
- }
- .time {
- font-size: 14px;
- padding-top: 15px;
- color: $font-c;
- }
- }
- }
- }
- .userChangeTitle {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 48px;
- font-weight: bold;
- }
- .userChangeItem {
- width: 100%;
- .userChangeItemName {
- padding: 5px 10px;
- }
- .userChangeCartNo {
- padding: 5px 10px;
- }
- }
- </style>
|