myDynamic.js 4.9 KB
import {
  getDynamicList,
  meetingCollection,
  updateMeetingTask
} from "../../api/request";
import { getCreateShowTime, uniqueObject } from "../../utils/utils";
import create from 'dd-store';

create.Component({
  mixins: [],
  data: {
    traceTime: '1970-03-01 00:00:00',
    isStopBodyScroll: false,
    loading: true,
    dynamicList: [],
    current: 1,
    pages: 1,
    size: 10

  },
  props: {},
  didMount() {
    this.getPages(1);
  },
  didUpdate() { },
  didUnmount() { },
  methods: {
    setBodyDisableScroll(isStopBodyScroll) {
      this.setData({
        isStopBodyScroll
      })
    },
    //点击页面关闭侧滑模块
    closeSwipe() {
      if (this.$store.closeActiveSwipe) {
        this.$store.closeActiveSwipe()
      }
    },
    getPages(current) {
      getDynamicList({
        current,
        size: 10
      }).then(res => {

        if (!res.data.data) {
          return;
        }

        // 第一层日程数据处理
        const dynamicList = res.data.data.records.map((item, index) => {
          // 第二层日程下的动态数据处理
          let meetingLogDataList = {};
          let meetingLogDataListArr = [];

          for (let i = 0; i < item.meetingLogDataList.length; i++) {
            if (item.meetingLogDataList[i].creatorInfo) {
              item.meetingLogDataList[i].creatorInfo = JSON.parse(
                item.meetingLogDataList[i].creatorInfo
              );
            }
            if (item.meetingLogDataList[i].createTime) {
              item.meetingLogDataList[i].createTime = getCreateShowTime(
                item.meetingLogDataList[i].createTime
              );
            }
            let itemData = item.meetingLogDataList[i].meetingLogResource;
            if (itemData) {
              if (itemData.taskInfos || itemData.fileInfos) {
                if (itemData.creatorInfo) {
                  itemData.creatorInfo = JSON.parse(itemData.creatorInfo);
                }
                if (itemData.fileInfos) {
                  itemData.fileInfos = JSON.parse(itemData.fileInfos);
                }
                if (itemData.taskInfos) {
                  itemData.taskInfos = JSON.parse(itemData.taskInfos);
                }
                if (itemData.acceptorInfo) {
                  itemData.acceptorInfo = JSON.parse(itemData.acceptorInfo);
                }
              }
            }
          }
          return {
            scheduleId: item.scheduleId,
            title: item.title,
            traceTime: item.traceTime,
            meetingLogDataList: item.meetingLogDataList
          };
        });

        //第一页数据会重新请求需要替换
        if (current === 1) {
          this.setData({
            dynamicList
          });
        } else {
          const newDynamicList = this.data.dynamicList.concat(dynamicList);
          this.setData({
            dynamicList: newDynamicList
          });
        }
        this.setData({
          current: res.data.data.current,
          pages: res.data.data.pages,
          loading: false
        });
      });
    },
    changeCollection(e) {
      const { index, scheduleId, collection } = e.target.dataset;
      meetingCollection({
        scheduleId,
        collection
      }).then(res => {
        //取消置顶
        if (collection === "N") {
          // 重新获取第一页的数据 
          this.getPages(1);
        } else {
          //置顶
          const dynamicList = this.data.dynamicList;
          const replaceItem = dynamicList[index];
          dynamicList[index].traceTime = res.data.data;
          dynamicList.splice(index, 1);
          dynamicList.unshift(replaceItem);
          this.setData({
            dynamicList: dynamicList
          });
        }
      });
    },
    onScrollToLower() {
      if (this.data.current < this.data.pages) {
        this.getPages(this.data.current + 1);
      }
    },
    onChangeTaskStatusOnList(e) {
      let that = this;
      let data = {
        groupId: e.groupId,
        scheduleId: e.scheduleId,
        resourceType: "task",
        creatorId: getApp().globalData.userid,
        creatorInfo: getApp().globalData.userInfo,
        id: e.id,
        logType: "task_status_modify",
        taskStatus: e.status
      };
      updateMeetingTask(data).then(res => {
        if (res.data.code === 0) {
          let dataIndex1 = "";
          let dataIndex2 = "";
          that.data.dynamicList.map((item, index) => {
            if (item.scheduleId === e.scheduleId) {
              dataIndex1 = index;
              item.meetingLogDataList.map((it, index2) => {
                if (it.meetingLogResource.id == e.id) {
                  dataIndex2 = index2;
                }
              });
            }
          });
          let setData = `dynamicList[${dataIndex1}].meetingLogDataList[${dataIndex2}].meetingLogResource.taskStatus`;
          that.setData({
            [setData]: e.status
          });
        }
      });
    }
  }
});