import dayjs from 'dayjs'; const app = getApp(); const licia = require('miniprogram-licia'); Page({ data: { today: dayjs().format('YYYY年MM月DD日 dddd'), configList: [], infoList: [], storyList: [], userInfo: {} as any, anyWhere: false, regGuide: true, adlList: [], adlNum: '', adlNewRecord: {} as any, liveList: [], liveStatus: app.globalData.liveStatus, liveDownList: [], detail: {}, referralFromShow: false, publicCard: false, // toastShow: true, // toastType: "doubleStandards", // toastType: "vipScan", // toastType: "healthCare", // toastType: "aldAlert", // toastType:"dedicatedDoctor", // toastType: 'referral-toast', // toastType: 'public-toast', toastShow: false, toastType: '', toastParams: {} as any, sliderTop: 0, unreadCount: 0, options: {} as any, }, onLoad(options) { const systemInfo = wx.getSystemInfoSync(); app.getTheme().then((res) => { this.setData({ theme: res, }); }); this.setData({ sliderTop: systemInfo.screenHeight - 160, options, }); }, onShow() { app.waitLogin({}).then(() => { app.zdMpBehavior({ PageName: 'PG_PATIENTHOME' }); this.setData({ anyWhere: app.globalData.anyWhere, }); if (this.data.options.es === '201501') { app.globalData.IsAliQiWei = 1; app.zdMpBehavior({ PageName: 'JUMP_PATIENT_HOME_INDEX' }); this.setData({ options: {}, }); } app.getUserInfo(this, true, (userInfo) => { this.setData({ userInfo, publicCard: userInfo.isShowFollowGuide == 1, }); this.getPopup(); this.getConfig(userInfo); this.getSystemConfig(); if (userInfo.ExclusiveDoctorId > 0) { this.getUnreadCount(); } if (userInfo.UserType == 4) { this.getLastRecord(); } }); }); }, getUnreadCount() { wx.ajax({ method: 'GET', url: '?r=xd/message-interact/get-unread-count', data: {}, }).then((res) => { this.setData({ unreadCount: res, }); }); }, getSystemConfig() { wx.ajax({ method: 'GET', url: '?r=xd/common/get-config', data: {}, }).then((res) => { this.setData({ systemConfig: res, }); }); }, getLastRecord() { wx.ajax({ method: 'GET', url: '?r=xd/medication/last-record', }).then((res) => { this.setData({ detail: { weekName: dayjs(res.InjectionDate).format('ddd'), days: dayjs().diff(res.InjectionDate, 'day'), ...res, }, }); }); }, getConfig(userInfo: any) { let UserType = userInfo.UserType; if (UserType <= 2) { UserType = 1; } wx.ajax({ method: 'GET', url: `?r=xd/mini-conf/get-config`, data: { userType: UserType }, }).then((res) => { res = res.map((item: any) => { if (item.code == 'spread1' || item.code == 'spread2' || item.code == 'serviceConf') { item.subList = item.subList.filter((subItem) => { return subItem.showStatus == 1; }); } // if (item.name === 'BANNER-MINIDOVTOR') { // item.subList = item.subList // .filter((subItem: any) => { // return subItem.linkUrl !== 'MINIDOCTOR' || userInfo.EntryThreePeriod === 1 // }) // .filter((subItem: any) => { // return subItem.linkUrl !== 'MINIDOCTOR-1.0' || userInfo.EntryTwoPeriod === 1 // }) // } return item; }); this.setData({ configList: res, }); res.forEach((item) => { if (item.code == 'article') { this.getInfoList(item.configId); } if (item.code == 'story') { this.getStoryList(item.configId); } if (item.code == 'adl') { this.getAdl(); } if (item.code == 'activity2') { this.getActivity(item.configId, item.showNum, 'liveList'); } if (item.code == 'activity1') { this.getActivity(item.configId, item.showNum, 'liveDownList'); } }); }); }, async getPopup() { const data5 = await wx.ajax({ method: 'GET', url: '?r=xd/popup/info', data: { Type: 5, }, }); if (data5.showAlert) { this.setData({ toastShow: data5.showAlert, toastType: 'doubleStandards', toastParams: data5, }); return; } const data4 = await wx.ajax({ method: 'GET', url: '?r=xd/popup/info', data: { Type: 4, }, }); if (data4.showAlert) { this.setData({ toastShow: data4.showAlert, toastType: 'vipScan', toastParams: {}, }); return; } const data1 = await wx.ajax({ method: 'GET', url: '?r=xd/popup/info', data: { Type: 1 }, }); if (!Array.isArray(data1)) { this.setData({ toastShow: true, toastType: 'healthCare', toastParams: data1, }); return; } const data2 = await wx.ajax({ method: 'GET', url: '?r=xd/popup/info', data: { Type: 2, }, }); if (data2.showAlert && this.data.userInfo.UserType == 4) { this.setData({ toastShow: data2.showAlert, toastType: 'aldAlert', toastParams: { id: data2.articleId, }, }); } const data3 = await wx.ajax({ method: 'GET', url: '?r=xd/popup/info', data: { Type: 6, }, }); if (data3.showAlert) { this.setData({ toastShow: data3.showAlert, toastType: 'dedicatedDoctor', toastParams: {}, }); } const data6 = await wx.ajax({ method: 'GET', url: '?r=xd/re-visit/get-popup-show-status', }); if (data6.showStatus === 1) { this.setData({ toastShow: true, toastType: 'referral-toast', toastParams: {}, }); } }, setPopupInfo() { wx.ajax({ method: 'POST', url: '?r=xd/popup/update-click-status', data: { Type: 1, Id: this.data.toastParams.Id, }, }).then((_res) => {}); }, setBannerClick() { wx.ajax({ method: 'POST', url: '?r=xd/nrdl/add-banner-click-record', data: {}, }); }, getInfoList(configId: string) { wx.ajax({ method: 'GET', url: '?r=xd/pic-text/index-list', data: { count: 0, ConfigId: configId, }, }).then((res) => { this.setData({ infoList: licia.chunk(res.list, 3), }); }); }, getStoryList(configId: string) { wx.ajax({ method: 'GET', url: '?r=xd/story/index-list', data: { count: 0, ConfigId: configId, }, }).then((res) => { this.setData({ storyList: res.list, }); }); }, getAdl() { wx.ajax({ method: 'GET', url: '?r=xd/adl/index', data: {}, }).then((res) => { const newRecord = res.newRecord; this.setData({ adlList: res.list, adlNum: res.count, adlNewRecord: { days: dayjs().diff(newRecord.CreateTime, 'day'), ...newRecord, newCreateTime: dayjs(newRecord.CreateTime).format('YYYY-MM-DD'), }, }); }); }, getActivity(ConfigId: string, count: number, key: string) { wx.ajax({ method: 'GET', url: '?r=xd/activity/index-list', data: { ConfigId, count }, }).then((res) => { this.setData({ [key]: res.list.map((item) => { item.EndTimeValue = dayjs(item.EndTime).valueOf(); item.BeginTimeValue = dayjs(item.BeginTime).valueOf(); item.SignUpDeadlineValue = dayjs(item.SignUpDeadline).valueOf(); item.BeginDate = dayjs(item.BeginTime).format('YYYY-MM-DD'); item.EndDate = dayjs(item.EndTime).format('YYYY-MM-DD'); item.isDay = item.BeginDate == item.EndDate; item.BeginHm = dayjs(item.BeginTime).format('HH:mm'); item.EndHm = dayjs(item.EndTime).format('HH:mm'); item.BeginTime = dayjs(item.BeginTime).format('YYYY-MM-DD HH:mm'); item.EndTime = dayjs(item.EndTime).format('YYYY-MM-DD HH:mm'); return item; }), }); }); }, routerTo(e) { let { url, active, code } = e.currentTarget.dataset; if (!url) return; if (code === 'adl') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEADLMODULE' }); } if (code === 'drugs') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEMEDICATIONMODULE' }); } if (code === 'story' && url === '/pages/story/index') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMESTORIESVIEWALL' }); } if (code === 'story' && url.includes('/pages/publishStoryDetail/index')) { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMESTORYCLICK' }); } if (code === 'activity2' && url === '/pages/live/index') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEONLINEACTIVITIESVIEWALL' }); } if (code === 'activity2' && url === '/pages/live/index?index=0') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEONLINEACTIVITIESMONTHLYPOSTER' }); } if (code === 'activity2' && url.includes('/pages/liveDetail/index')) { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEONLINEACTIVITIESCARD' }); } if (code === 'activity1' && url === '/pages/live/index') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEOFFLINEACTIVITIESVIEWALL' }); } if (code === 'activity1' && url.includes('/pages/liveDetail/index')) { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEOFFLINEACTIVITIESCARD' }); } if (code === 'article' && url === '/pages/repository/index') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMERECOMMENDEDREADINGVIEWALL' }); } if (code === 'article' && url.includes('/pages/repositoryDetail/index')) { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMERECOMMENDEDREADINGARTICLE' }); } if (code === 'serviceConf') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMESERVICE' }); } if (url === '/pages/interactivePatient/index') { app.zdMpBehavior({ PageName: 'BTN_PATIENTHOMEDOCTORCARD' }); } if (url === 'NRDL') { this.setBannerClick(); this.handleNRDL(); return; } if (url.includes('loginState')) { url = url + encodeURIComponent(app.globalData.loginState); app.permissionVerification(2, 11, `/pages/repository/index`).then(() => { wx.navigateTo({ url, }); }); return; } wx.navigateTo({ url, fail() { app.globalData.active = active; wx.switchTab({ url, }); }, }); }, handleReg() { app.permissionVerification(3, 0, ''); }, handleMiniDoctor(e) { const { link } = e.currentTarget.dataset; let period = ''; if (link === 'MINIDOCTOR-1.0') { period = '2'; } wx.navigateTo({ url: `/pages/webview/index?period=${period}`, }); }, handleQuestion() { app.permissionVerification(2, 11, `/pages/repository/index`).then(() => { const webviewUrl = encodeURIComponent( `${app.globalData.url}/zdcare/#/info?loginState=${app.globalData.loginState}`, ); wx.navigateTo({ url: `/pages/webview/index?url=${webviewUrl}`, }); }); }, handleSlider() { wx.ajax({ method: 'POST', url: '?r=xd/nrdl/add-slide-click-record', data: {}, }); this.handleNRDL(); }, handleNRDL() { app.permissionVerification(3, 12, `/pages/index/index`).then(() => { wx.navigateTo({ url: `/pages/nrdl/index`, }); // if (this.data.userInfo.has7DayAdl === 1) { // wx.navigateTo({ // url: `/pages/nrdl/index`, // }); // } else { // this.setData({ // toastShow: true, // toastType: "ndrlAldAlert", // }); // } }); }, routerVipTo() { const { MedicineAuditSwitch, UseDrugsAuditStatus, isFollow } = this.data.userInfo; if (MedicineAuditSwitch === '0') { wx.navigateTo({ url: '/pages/vipLogin/index', }); } else if (MedicineAuditSwitch === '1') { const pendPath = { 0: '/gift/pages/vipPending/index', 1: '/gift/pages/vipStartPending/index', }[isFollow]; const url = { 1: pendPath, 2: '/gift/pages/vipReject/index', }[UseDrugsAuditStatus]; wx.navigateTo({ url: url || '/gift/pages/vipCert/index', }); } else { wx.showToast({ icon: 'none', title: '工程师正在努力建设中,敬请期待!', }); } }, handleToastOk() { const { toastType } = this.data; if (toastType === 'vipScan') { this.routerVipTo(); this.handleToastCancel(); } else if (toastType === 'aldAlert') { wx.navigateTo({ url: '/pages/adl/index', }); this.handleToastCancel(); } else if (toastType === 'healthCare') { this.setPopupInfo(); this.handleNRDL(); this.handleToastCancel(); } else if (toastType === 'ndrlAldAlert') { wx.navigateTo({ url: '/pages/adl/index?nrdl=1', }); this.handleToastCancel(); } else if (toastType === 'doubleStandards') { wx.navigateTo({ url: '/pages/adl/index', }); this.handleToastCancel(); } else if (toastType === 'dedicatedDoctor') { wx.ajax({ method: 'POST', url: '?r=xd/popup/close-popup', data: { Type: 6, }, }).then((_res) => { wx.navigateTo({ url: '/pages/interactivePatient/index', }); }); this.handleToastCancel(null, false); } else if (toastType === 'referral-toast') { this.setData({ referralFromShow: true, }); wx.ajax({ method: 'POST', url: '?r=xd/re-visit/update-popup-show-status', data: {}, }); this.handleToastCancel(null, false); } }, handleToastCancel(_e = null, sure = true) { const { toastType } = this.data; if (toastType === 'doubleStandards' && sure) { wx.ajax({ method: 'POST', url: '?r=xd/popup/close-popup', data: { Type: 5, }, }); } else if (toastType === 'dedicatedDoctor' && sure) { wx.ajax({ method: 'POST', url: '?r=xd/popup/close-popup', data: { Type: 6, }, }); } else if (toastType === 'referral-toast') { wx.ajax({ method: 'POST', url: '?r=xd/re-visit/update-popup-show-status', data: {}, }); } this.setData({ toastShow: false, toastType: '', toastParams: '', }); }, handlePublic() { this.setData({ toastShow: true, toastType: 'public-toast', toastParams: {}, }); this.handlePublicClose(); }, handlePublicClose() { this.setData({ publicCard: false, }); wx.ajax({ method: 'POST', url: '?r=xd/account/add-user-subscribe-guide-record', data: {}, }); }, handleMp(e: any) { const { code } = e.currentTarget.dataset; const PageName = { spread1: 'BTN_PATIENTHOMEBANNER1', spread2: 'BTN_PATIENTHOMEBANNER2', }[code]; app.zdMpBehavior({ PageName }); }, handleRegClose() { this.setData({ regGuide: false, }); }, });