import dayjs from 'dayjs' const licia = require('miniprogram-licia') const app = getApp() Page({ data: { nav: 0, userInfo: {}, fold1: false, fold2: false, fold3: false, fold4: false, periodOne: {}, periodTwo: {}, periodThree: {}, periodFour: {}, medical: { lastBleedingInfo: { bleedingPartList: [], }, }, followExam: { recommendDate: [], } as any, calendarConfig: { multi: false, hideSelectYear: true, markToday: '今', // 当天日期展示不使用默认数字,用特殊文字标记 autoChoosedWhenJump: true, firstDayOfWeek: 'Mon', theme: 'geneb', takeoverTap: true, highlightToday: true, onlyShowCurrentMonth: true, disableMode: { type: 'after', // [‘before’, 'after'] }, }, }, onLoad(options) { if (options.nav) { this.setData({ nav: Number(options.nav), }) } }, onShow() { app.waitLogin({ type: 1 }).then(() => { this.getInfo() app.getUserInfo(1).then((userInfo) => { this.setData({ userInfo: { ...userInfo, CreateTime: dayjs(userInfo.CreateTime).format('YYYY年MM月DD日'), }, }) }) }) }, handleNav(e) { const { nav } = e.currentTarget.dataset this.setData({ nav, }) this.getInfo() }, getInfo() { const { nav } = this.data if (nav == 0) { wx.ajax({ method: 'GET', url: '?r=wtx/treatment/get-archives', data: {}, }).then((res) => { this.setData({ ...res, }) }) } if (nav == 1) { wx.ajax({ method: 'GET', url: '?r=wtx/treatment/get-medical-history-info', data: {}, }).then((res) => { this.setData({ medical: res, }) }) } if (nav == 2) { wx.ajax({ method: 'GET', url: '?r=wtx/treatment/get-follow-up-exam', data: {}, }).then((res) => { this.setData({ followExam: { injectionDateName: dayjs(res.injectionDate).format('YYYY年MM月DD日 ddd'), ...res, }, }) this.getFollowList() }) } }, getFollowList(dateMonth = '') { wx.ajax({ method: 'GET', url: '?r=wtx/treatment/get-follow-up-exam-list', data: { month: dateMonth, }, }).then((res) => { console.log('res: ', res) const { followExam } = this.data this.setCalendarTodos({ bleedDate: [followExam.injectionDate], injectionDate: res, reportInjectionDate: followExam.recommendDate, }) }) }, handleWhenChangeMonth(e) { console.log('DEBUGPRINT[101]: index.ts:129: e=', e) const next = e.detail.next const dateMonth = dayjs(`${next.year}-${next.month}`).format('YYYY-MM') this.getFollowList(dateMonth) }, setCalendarTodos({ bleedDate = [], injectionDate = [], reportInjectionDate = [], }: { bleedDate: any[] injectionDate: string[] reportInjectionDate: string[] }) { const calendar = this.selectComponent('#calendar').calendar const dates: any[] = [] const unionArr = licia.union(bleedDate, injectionDate, reportInjectionDate) unionArr.forEach((date: string) => { let color: string[] = [] if (bleedDate.includes(date)) { color.push('rgba(246, 74, 58, 1)') } if (injectionDate.includes(date)) { color.push('rgba(255, 163, 112, 1)') } if (reportInjectionDate.includes(date)) { color.push('rgba(255, 207, 135, 1)') } dates.push({ year: date.split('-')[0], month: date.split('-')[1], date: date.split('-')[2], color, }) }) calendar.setTodos({ // 待办点标记设置 pos: 'bottom', // 待办点标记位置 ['top', 'bottom'] dotColor: 'purple', // 待办点标记颜色 circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥 showLunar: true, showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效 dates, }) }, handleFold(e) { const { fold } = e.currentTarget.dataset this.setData({ [fold]: !this.data[fold], }) console.log(this.data[fold]) }, handleRevisitRecord() { wx.navigateTo({ url: '/patient/pages/lastDiagnosisReport/index', }) }, handleRevisitDetail(e) { const { id, period } = e.currentTarget.dataset wx.navigateTo({ url: `/patient/pages/lastDiagnosisReport/index?examid=${id}&period=${period}`, }) }, handleRevisitAll() { wx.navigateTo({ url: '/patient/pages/revisitRecord/index', }) }, handleCourse(e: any) { const { progress } = e.currentTarget.dataset wx.navigateTo({ url: `/patient/pages/course/index?current=${progress}`, }) }, handleBbmDetail() { wx.navigateTo({ url: '/patient/pages/bbmReport/index', }) }, handlePreDiagnosisReport(e) { const { id, period } = e.currentTarget.dataset wx.navigateTo({ url: `/patient/pages/preDiagnosisReport/index?examid=${id}&period=${period}`, }) }, }) export {}