|
@@ -1,137 +1,173 @@
|
|
|
-import { doctorInfo, doctorOrderSourceList } from './service';
|
|
|
-import * as utils from '../../utils';
|
|
|
+import { doctorInfo, doctorOrderSourceList, getDepDoctorList } from "./service";
|
|
|
+import { doctorSchedule } from "../../../../core/utils/ywtService";
|
|
|
+import * as utils from "../../utils";
|
|
|
+const datePeriodMap = {
|
|
|
+ 全天: 1,
|
|
|
+ 上午: 2,
|
|
|
+ 下午: 3,
|
|
|
+ 夜间: 4,
|
|
|
+ 下半夜: 5,
|
|
|
+ 午间: 6,
|
|
|
+};
|
|
|
Component({
|
|
|
- props: {},
|
|
|
- data: {
|
|
|
- doctor: {
|
|
|
- doctorId: '',
|
|
|
- name: '',
|
|
|
- picUrl: '',
|
|
|
- level: '',
|
|
|
- description: '',
|
|
|
- specialty: '',
|
|
|
- departments: []
|
|
|
- },
|
|
|
- days: [],
|
|
|
- startTime: '',
|
|
|
- endTime: '',
|
|
|
- showIntro: false,
|
|
|
- showRange: false,
|
|
|
- rangeItem: {},
|
|
|
- routeState: {}
|
|
|
- },
|
|
|
+ props: {},
|
|
|
+ data: {
|
|
|
+ doctor: {
|
|
|
+ doctorId: "",
|
|
|
+ name: "",
|
|
|
+ picUrl: "",
|
|
|
+ level: "",
|
|
|
+ description: "",
|
|
|
+ specialty: "",
|
|
|
+ departments: [],
|
|
|
+ },
|
|
|
+ days: [],
|
|
|
+ startTime: "",
|
|
|
+ endTime: "",
|
|
|
+ showIntro: false,
|
|
|
+ showRange: false,
|
|
|
+ rangeItem: {},
|
|
|
+ routeState: {},
|
|
|
+ },
|
|
|
|
|
|
- didMount() {
|
|
|
- const d = new Date();
|
|
|
- const startTime = d.toLocaleDateString().replace(/\//g, '-');
|
|
|
- d.setDate(d.getDate() + 7);
|
|
|
- const endTime = d.toLocaleDateString().replace(/\//g, '-');
|
|
|
- this.setData({
|
|
|
- startTime,
|
|
|
- endTime
|
|
|
- });
|
|
|
- const {
|
|
|
- query = {
|
|
|
- depId: '',
|
|
|
- doctorId: ''
|
|
|
- }
|
|
|
- } = this.$page.data;
|
|
|
- this.init(query);
|
|
|
- },
|
|
|
+ didMount() {
|
|
|
+ const d = new Date();
|
|
|
+ const startTime = d.toLocaleDateString().replace(/\//g, "-");
|
|
|
+ d.setDate(d.getDate() + 7);
|
|
|
+ const endTime = d.toLocaleDateString().replace(/\//g, "-");
|
|
|
+ this.setData({
|
|
|
+ startTime,
|
|
|
+ endTime,
|
|
|
+ });
|
|
|
+ const {
|
|
|
+ query = {
|
|
|
+ depId: "",
|
|
|
+ doctorId: "",
|
|
|
+ },
|
|
|
+ } = this.$page.data;
|
|
|
+ this.init(query);
|
|
|
+ },
|
|
|
|
|
|
- methods: {
|
|
|
- init(query) {
|
|
|
- my.showLoading();
|
|
|
- Promise.all([doctorInfo({
|
|
|
- doctorId: query.doctorId
|
|
|
- }).then(res => {
|
|
|
- this.setData({
|
|
|
- doctor: res
|
|
|
- });
|
|
|
- }), doctorOrderSourceList({
|
|
|
- depId: query.depId,
|
|
|
- doctorId: query.doctorId,
|
|
|
- startTime: this.data.startTime,
|
|
|
- endTime: this.data.endTime
|
|
|
- }).then(res => {
|
|
|
- const days = [];
|
|
|
- res.forEach(item => {
|
|
|
- const {
|
|
|
- date
|
|
|
- } = utils.cuttingDate(item.startTime);
|
|
|
- const temp = days.find(m => m.date === date);
|
|
|
+ methods: {
|
|
|
+ init(query) {
|
|
|
+ my.showLoading();
|
|
|
+ Promise.all([
|
|
|
+ doctorInfo({
|
|
|
+ doctorId: query.doctorId,
|
|
|
+ }).then((res) => {
|
|
|
+ this.setData({
|
|
|
+ doctor: res,
|
|
|
+ });
|
|
|
+ }),
|
|
|
+ getDepDoctorList({
|
|
|
+ depId: query.depId,
|
|
|
+ depCode: query.depCode,
|
|
|
+ doctorCode: query.doctorCode,
|
|
|
+ }).then((result) => {
|
|
|
+ const list = result.list[0].orderSources || [];
|
|
|
+ const days = [];
|
|
|
+ list.forEach((item) => {
|
|
|
+ const date = item.serviceDate;
|
|
|
+ const temp = days.find((m) => m.date === date);
|
|
|
+ if (temp) {
|
|
|
+ temp.orderSources.push(item);
|
|
|
+ } else {
|
|
|
+ days.push({
|
|
|
+ date,
|
|
|
+ today: date === utils.cuttingDate().date,
|
|
|
+ orderSources: [item],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.setData({
|
|
|
+ days,
|
|
|
+ });
|
|
|
+ }),
|
|
|
+ ]).then(() => {
|
|
|
+ my.hideLoading();
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- if (temp) {
|
|
|
- temp.orderSources.push(item);
|
|
|
- } else {
|
|
|
- days.push({
|
|
|
- date,
|
|
|
- today: date === utils.cuttingDate().date,
|
|
|
- orderSources: [item]
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- this.setData({
|
|
|
- days
|
|
|
- });
|
|
|
- })]).then(() => {
|
|
|
- my.hideLoading();
|
|
|
- });
|
|
|
- },
|
|
|
+ // 查看更多
|
|
|
+ showIntro() {
|
|
|
+ this.setData({
|
|
|
+ showIntro: true,
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- // 查看更多
|
|
|
- showIntro() {
|
|
|
- this.setData({
|
|
|
- showIntro: true
|
|
|
- });
|
|
|
- },
|
|
|
+ onClose() {
|
|
|
+ this.setData({
|
|
|
+ showIntro: false,
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- onClose() {
|
|
|
- this.setData({
|
|
|
- showIntro: false
|
|
|
- });
|
|
|
- },
|
|
|
+ getQuery() {
|
|
|
+ const { $routeConfig } = this.$page;
|
|
|
+ return $routeConfig.query;
|
|
|
+ },
|
|
|
|
|
|
- // 跳转预约
|
|
|
- onAppointment({
|
|
|
- target
|
|
|
- }) {
|
|
|
- const {
|
|
|
- query = {
|
|
|
- depId: ''
|
|
|
- }
|
|
|
- } = this.$page.data;
|
|
|
- const {
|
|
|
- doctor
|
|
|
- } = this.data;
|
|
|
- const depName = (doctor.departments.find(m => m.departmentId === query.depId) || {
|
|
|
- name: ''
|
|
|
- }).name;
|
|
|
- const routeState = {
|
|
|
- query: {
|
|
|
- level: doctor.level,
|
|
|
- depName,
|
|
|
- doctorId: doctor.doctorId,
|
|
|
- doctorName: doctor.name,
|
|
|
- queueNum: '',
|
|
|
- payType: '就诊时支付',
|
|
|
- districtName: doctor.districtName
|
|
|
- },
|
|
|
- title: '挂号确认',
|
|
|
- pageType: 'order-pay'
|
|
|
- };
|
|
|
- this.setData({
|
|
|
- showRange: true,
|
|
|
- rangeItem: target.dataset.row,
|
|
|
- routeState
|
|
|
- });
|
|
|
- },
|
|
|
+ // 跳转预约
|
|
|
+ async onAppointment({ target }) {
|
|
|
+ const cost = target.dataset.row.list[0].cost || "0";
|
|
|
+ const {
|
|
|
+ query = {
|
|
|
+ depId: "",
|
|
|
+ },
|
|
|
+ } = this.$page.data;
|
|
|
+ const { doctor } = this.data;
|
|
|
+ const depName = (
|
|
|
+ doctor.departments.find((m) => m.departmentId === query.depId) || {
|
|
|
+ name: "",
|
|
|
+ }
|
|
|
+ ).name;
|
|
|
+ const routeState = {
|
|
|
+ query: {
|
|
|
+ level: doctor.level,
|
|
|
+ depName,
|
|
|
+ doctorId: doctor.doctorId,
|
|
|
+ doctorName: doctor.name,
|
|
|
+ queueNum: "",
|
|
|
+ payType: "就诊时支付",
|
|
|
+ districtName: doctor.districtName,
|
|
|
+ },
|
|
|
+ title: "挂号确认",
|
|
|
+ pageType: "order-pay",
|
|
|
+ };
|
|
|
+ const { hospitalId, depCode, doctorCode } = this.getQuery();
|
|
|
+ let newList = [];
|
|
|
+ let finalList = [];
|
|
|
+ const [result] = await doctorSchedule({
|
|
|
+ hospitalId: Number(hospitalId),
|
|
|
+ deptCode: depCode,
|
|
|
+ doctorCode,
|
|
|
+ serviceDate: target.dataset.row.date,
|
|
|
+ period: datePeriodMap[target.dataset.row.name],
|
|
|
+ });
|
|
|
+ if (result && result.data) {
|
|
|
+ newList = result.data.length > 0 ? result.data[0].schedule : [];
|
|
|
+ finalList = newList.map((items) => {
|
|
|
+ const { startTime, endTime, availableLeftNum } = items;
|
|
|
+ return Object.assign(items, {
|
|
|
+ sTime: startTime,
|
|
|
+ eTime: endTime,
|
|
|
+ remain: availableLeftNum,
|
|
|
+ cost,
|
|
|
+ serviceDate: target.dataset.row.date,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ target.dataset.row.list = finalList;
|
|
|
+ this.setData({
|
|
|
+ showRange: true,
|
|
|
+ rangeItem: target.dataset.row,
|
|
|
+ routeState,
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
- onTimeRangeClose() {
|
|
|
- this.setData({
|
|
|
- showRange: false
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-});
|
|
|
+ onTimeRangeClose() {
|
|
|
+ this.setData({
|
|
|
+ showRange: false,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+});
|