| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import I18nBehavior from "../../../../i18n/behavior";
- import { getOfflineTreatmentListMethod } from "../../request";
- Page({
- behaviors: [I18nBehavior],
- data: {
- i18n: {
- offlineTreatment: { title: '线下', ing: '进行中', finish: '完成' },
- },
- currentTab: "",
- treatmentList: [],
- isLoading: false,
- treatmentId: "",
- },
- async onLoad(options: any) {
- console.log(options, '传过来的参数')
- if (options.id) {
- this.setData({
- treatmentId: options.id,
- });
- }
- // await this.getOfflineTreatmentList("");
- },
- async onShow() {
- await this.getOfflineTreatmentList("");
- },
- // 跳转到核销记录
- onRecord(e: any) {
- const id = e.currentTarget.dataset.id;
- if (id) {
- wx.navigateTo({
- url: `/module/care/pages/care/verifyRecord?id=${id}`,
- });
- }
- },
- // 去预约
- goAppointment(e: any) {
- const { item } = e.currentTarget.dataset;
- const { offlineId, conditioningProgramName, offlineDuration, itemImgSecond, estimatedStartDate } = item;
- const goodsInfo = {
- name: conditioningProgramName || '',
- duration: offlineDuration || 0,
- image: itemImgSecond || '',
- offlineId: offlineId || '',
- serviceTime: estimatedStartDate || '',
- }
- console.log(goodsInfo, "goodsInfo======去预约页面")
- if (offlineId) {
- // 去预约页面
- wx.navigateTo({
- url: `/module/order/pages/appointment/appointment?goodsInfo=${JSON.stringify(goodsInfo)}`,
- });
- } else {
- wx.showToast({
- title: "线下服务ID不能为空",
- icon: "none",
- });
- }
- // const id = e.currentTarget.dataset.id;
- // if (id) {
- // // 跳转到预约页面,传递项目id
- // wx.navigateTo({
- // url: `/module/care/pages/careDetail/careDetail?id=${id}`,
- // });
- // }
- },
- onTabChange(e: any) {
- const progress = e.detail.value;
- this.setData({
- currentTab: progress,
- });
- // 不立即清空数据,避免空状态闪烁
- this.getOfflineTreatmentList(progress);
- },
- // 获取线下非药物治疗记录列表
- async getOfflineTreatmentList(progress: string) {
- // 启用加载态,保留当前列表,避免空态闪烁
- this.setData({ isLoading: true });
- try {
- const res = await getOfflineTreatmentListMethod(progress);
- console.log(res.data, "res.data")
- // 确保 res.data 是数组,避免 undefined 或 null 导致的错误
- const list = Array.isArray(res?.data) ? res.data : [];
- // 如果传入了treatmentId,标记匹配的项目为高亮并置顶
- const treatmentId = this.data.treatmentId;
- console.log(treatmentId, "treatmentId")
- console.log(list, "list")
- if (treatmentId && list.length > 0) {
- const highlightedList = list.map((item: any) => ({
- ...item,
- isHighlighted: item.id === treatmentId || String(item.id) === String(treatmentId),
- }));
- // 将高亮的项目移到最前面
- const highlightedItem = highlightedList.find((item: any) => item.isHighlighted);
- const otherItems = highlightedList.filter((item: any) => !item.isHighlighted);
- const sortedList = highlightedItem ? [highlightedItem, ...otherItems] : highlightedList;
- console.log(sortedList, "sortedList")
- this.setData({ treatmentList: sortedList, isLoading: false });
- } else {
- // 只有在数据加载完成后才更新列表
- this.setData({ treatmentList: list, isLoading: false });
- }
- } catch (error: any) {
- console.error('获取数据失败:', error);
- // 只有在真正出错时才显示错误提示
- wx.showToast({
- title: error.errMsg || "获取数据失败",
- icon: "none",
- });
- this.setData({ treatmentList: [], isLoading: false });
- }
- },
- });
|