myDynamic.js 6.77 KB
import {
  getDynamicList,
  meetingCollection,
  updateMeetingTask
} from "../../api/request";
import { dealFileTime, uniqueObject } from "../../utils/utils";
Component({
  mixins: [],
  data: {
    isTop: false,
    isTouchMove: false,
    touchMoveId: "",
    startX: "",
    startY: "",
    dynamicList: [],
    current: 1,
    size: 10,
    noData: false
  },
  props: {},
  didMount() {
    this.getPages(1);
  },
  didUpdate() { },
  didUnmount() { },
  methods: {
    getPages(current) {
      let that = this;
      let data = {
        current: current,
        size: 10
      };
      getDynamicList(data).then(res => {
        if (!res.data.data) {
          return;
        }
        // 第一层日程数据处理
        if (res.data.data) {
          let 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
                );
              }
              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);
                  }
                  meetingLogDataList[item.meetingLogDataList[i].resourceId] =
                    item.meetingLogDataList[i];
                }
              }
            }
            for (let item in meetingLogDataList) {
              meetingLogDataListArr.push(meetingLogDataList[item]);
            }
            return {
              scheduleId: item.scheduleId,
              title: item.title,
              traceTime: item.traceTime,
              meetingLogDataList: meetingLogDataListArr
            };
          });
          if (current === 1) {
            that.setData({
              dynamicList: dynamicList,
              current: current,
              noData: dynamicList.length === that.data.size ? true : false
            });
          } else {
            let dynamicListData = [...that.data.dynamicList];
            dynamicListData.push.apply(dynamicListData, dynamicList);
            that.setData({
              dynamicList: dynamicListData,
              current: current,
              noData: dynamicList.length === that.data.size ? true : false
            });
          }
        }
      });
    },
    // touchstart(e) {
    //   this.setData({
    //     startX: e.changedTouches[0].clientX,
    //     startY: e.changedTouches[0].clientY,
    //     isTouchMove: this.data.isTouchMove
    //       ? !this.data.isTouchMove
    //       : this.data.isTouchMove
    //   });
    // },
    // touchmove(e) {
    //   var that = this,
    //     startX = that.data.startX, //开始X坐标
    //     startY = that.data.startY, //开始Y坐标
    //     touchMoveX = e.changedTouches[0].clientX, //滑动变化坐标
    //     touchMoveY = e.changedTouches[0].clientY, //滑动变化坐标
    //     //获取滑动角度
    //     angle = that.angle(
    //       { X: startX, Y: startY },
    //       { X: touchMoveX, Y: touchMoveY }
    //     );
    //   var isTouchMove;
    //   //滑动超过30度角 return
    //   if (Math.abs(angle) > 30) return;
    //   if (touchMoveX > startX) {
    //     //右滑
    //     isTouchMove = false;
    //   } else {
    //     //左滑
    //     isTouchMove = true;
    //   }
    //   //更新数据
    //   that.setData({
    //     isTouchMove: isTouchMove,
    //     touchMoveId: e.currentTarget.dataset.id
    //   });
    // },
    // angle(start, end) {
    //   var _X = end.X - start.X,
    //     _Y = end.Y - start.Y;
    //   //返回角度 /Math.atan()返回数字的反正切值
    //   return (360 * Math.atan(_Y / _X)) / (2 * Math.PI);
    // },
    changeCollection(e) {
      let that = this;
      let index = e.target.dataset.index;
      let data = {
        scheduleId: e.target.dataset.scheduleid,
        collection: e.target.dataset.collection
      };
      meetingCollection(data).then(res => {
        console.log(res);
        if (e.target.dataset.collection === "N") {
          that.setData(
            {
              current: 1
            },
            () => {
              that.getPages(1);
            }
          );
        } else {
          let dynamicList = [...this.data.dynamicList];
          let ReplaceItem = dynamicList[index];
          ReplaceItem.traceTime = res.data.data;
          dynamicList.splice(index, 1);
          dynamicList.unshift(ReplaceItem);
          that.setData({
            dynamicList: dynamicList
          });
        }
      });
    },
    previewFileInDingTalk(e) {
      let fileMsg = e.currentTarget.dataset.file;
      dd.previewFileInDingTalk({
        corpId: dd.corpId,
        spaceId: fileMsg.spaceId,
        fileId: fileMsg.fileId,
        fileName: fileMsg.fileName,
        fileSize: fileMsg.fileSize,
        fileType: fileMsg.fileType
      });
    },
    onScrollToLower() {
      if (!this.data.noData) {
        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
          });
        }
      });
    }
  }
});