1.0.3 • Published 2 months ago

@codernote/plan-hours v1.0.3

Weekly downloads
-
License
-
Repository
-
Last release
2 months ago

计划软件 - hours

计划软件右侧hours

安装

npm install @codernote/plan-hours

使用

// 组件使用示例
<template>
  <PlanHours
    ref="hoursPanel"
    :day="hoursFocusIdx"
    :data="tempInfo"
    :show="showHours"
    :dragTaskInfo="dragTaskInfo"
    :isDragBlockMove="isDragBlockMove"
    :dragOverConfig="dragOverConfig"
    @hide="handleHideHours"
    @moveAreaChange="moveAreaChange"
    @changeTaskInfo="changeTaskInfo"
  />
</template>

<script>

import {
  PlanHours, // 组件
  dragTaskMixin, // mixin
  hoursConstant, // 常量
} from "@codernote/record-list";

export default {
  components: {
    HoursPanel,
  },
  mixins: [
    dragTaskMixin
  ],
  data() {
    return {
      showHours: false,
      tempInfo: {},       // 所有已经安排的任务:{hoursFocusIdx: {level1:[任务], level2:[任务], level3:[任务]}}
      hoursFocusIdx: -1,  // 任务所属时间天数
      goalTable: {
        goalMap: new Map(), // 储存所有项目的微观任务{hoursFocusIdx:{任务所属项目Id:任务}}  (只有level1和level2任务)
        hoursInfo: {        // 所有已经安排的任务:{hoursFocusIdx: {level1:[任务], level2:[任务], level3:[任务]}}
        },
      }
    }
  },
  mounted() { 
    // 初始化测试数据
    this.initData()
  },
  methods: {
    initData() { 
      this.hoursFocusIdx = 13538
      this.goalTable = {
        goalMap: {
          13538: {  // key为当前天数
            '1705142510832': {  // key为任务所属项目Id
              bold: 1, // 非0 即是level1
              finish: 0, // 非0 即是完成
              desc: 'level1--111',   // 内容
              idx: 13538,
              item_id: '1705142510832',
              isAssigned: 1, // 是否被安排
              assignStartTime: '', // 所安排的开始时间
              assignEndTime: '', // 所安排的结束时间
              created_at: 1706334306212,
              type: MEASURE_ENUM.day, // 尺度枚举(同步下标)
            },
            '1705142510831': {  // key为任务所属项目Id
              bold: 0, // 非0 即是level1
              finish: 0, // 非0 即是完成
              desc: 'level2--222',   // 内容
              idx: 13538,
              item_id: '1705142510831',
              isAssigned: 0, // 是否被安排
              assignStartTime: '', // 所安排的开始时间
              assignEndTime: '', // 所安排的结束时间
              created_at: 1706334306212,
              type: MEASURE_ENUM.day, // 尺度枚举(同步下标)
            }
          }
        },
        hoursInfo: {
          13538: {
            level1: [
            {
                "bold": 1,
                "finish": 0,
                "desc": "level1--111",
                "idx": 13538,
                "item_id": "1705142510832",
                "isAssigned": 1,
                "assignStartTime": "8:59",
                "assignEndTime": "9:59",
                "type": 6,
                "level": "level1",
                created_at: 1706334306212,
                "height": 45.470588235294116,
                "top": 90.26470588235294
            }
            ],
            level2: [],
            level3: [
              {  
                assignEndTime: "11:31",
                assignStartTime: "10:31",
                desc: "level3-test",
                finish: 0,
                height: 45.470588235294116,
                idx: 13538,
                inputFocus: false,
                isAssigned: 1,
                item_id: "1706406040037",
                created_at: 1706334306212,
                level: "level3",
                top: 160,
              }
            ],
          }
        }
      }
      this.tempInfo = this.goalTable.hoursInfo[this.hoursFocusIdx]
    },
    /**
     * 任务状态变更
     * @param {Number} type 任务类型  1:添加  2:修改  3:取消
     * @param {Object} item 任务详情
     * @param {String} level 任务等级 level1/level2/level3
     */
    taskStatusChange(type, item = {}, level = '') {
      switch(type) {
        case hoursConstant.ARRANGE_TASK_TYPE.add:
          console.log('添加')
          break;
        case hoursConstant.ARRANGE_TASK_TYPE.update:
          console.log('修改')
          break;
        case hoursConstant.ARRANGE_TASK_TYPE.del:
          console.log('删除')
          break;
      }
    }
  }
}
</script>

props

<PlanHours
  {/* 必需,写死,mixins调用 */}
  ref="hoursPanel"

  {/* 必需,任务所属天数 */}
  :day="noteList"

  {/* 必需,所有已经安排的任务:{hoursFocusIdx: {level1:[任务], level2:[任务], level3:[任务]}} */}
  :data="activeNote"

  {/* 是否显示当前组件,默认false */}
  :show="true"
  
  {/* 必需,引入mixins后,写死 */}
  :dragTaskInfo="dragTaskInfo"

  {/* 必需,引入mixins后,写死 */}
  :isDragBlockMove="isDragBlockMove"

  {/* 必需,引入mixins后,写死 */}
  :dragOverConfig="dragOverConfig"

  {/* 事件:关闭窗口 */}
  @hide="handleHideHours"

  {/* 必需,引入mixins后,写死 */}
  @moveAreaChange="moveAreaChange"

  {/* 必需,引入mixins后,写死 */}
  @changeTaskInfo="changeTaskInfo"
/>

发布

npm publish
1.0.3

2 months ago

1.0.2

2 months ago

1.0.1

2 months ago

1.0.0

2 months ago