1.0.3 • Published 2 months ago
@codernote/plan-hours v1.0.3
计划软件 - 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