|
@@ -1,8 +1,9 @@
|
|
|
import { computed, ref, provide } from 'vue';
|
|
|
import { useScale } from '../util/wheel';
|
|
|
+
|
|
|
import TaskExplain from '../TaskExplain/index.vue';
|
|
|
import TaskTemplate from '../task_template/index.vue';
|
|
|
-import { addTaskList } from './TaskData';
|
|
|
+import PreviewPage from '../previews';
|
|
|
|
|
|
/**
|
|
|
* 任务类型相关
|
|
@@ -49,75 +50,51 @@ export const taskTypeArray = [
|
|
|
sidebarListName: 'after_task_list'
|
|
|
}
|
|
|
];
|
|
|
+// 页面状态
|
|
|
+export const pageStateList = ['editor', 'preview'];
|
|
|
+export let curPageState = ref(pageStateList[0]); // 当前页面状态
|
|
|
+export function changeCurPageState(type) {
|
|
|
+ curPageState.value = type;
|
|
|
+}
|
|
|
+export let isMindMapping = ref(false);
|
|
|
|
|
|
export function useTaskType() {
|
|
|
- const mainPageTypeList = [TaskExplain, TaskTemplate]; // 主页面类型列表
|
|
|
- let curPageType = ref(mainPageTypeList[1]); // 当前页面类型
|
|
|
- let curSelectTaskType = ref(taskTypeArray[1].type); // 当前选中的任务类型
|
|
|
+ const mainPageTypeList = [TaskExplain, TaskTemplate, PreviewPage]; // 主页面类型列表
|
|
|
|
|
|
- let curTaskType = computed(() => {
|
|
|
- if (curPageType.value === mainPageTypeList[0]) return TASK_EXPLAIN;
|
|
|
- return curSelectTaskType.value;
|
|
|
- }); // 当前任务类型
|
|
|
+ let curTaskType = ref(taskTypeArray[1].type); // 当前任务类型
|
|
|
+
|
|
|
+ let curPageType = computed(() => {
|
|
|
+ if (curPageState.value === pageStateList[1]) return mainPageTypeList[2];
|
|
|
+ if (curTaskType.value === TASK_EXPLAIN) return mainPageTypeList[0];
|
|
|
+ return mainPageTypeList[1];
|
|
|
+ }); // 当前页面类型
|
|
|
|
|
|
// 当前任务类型对象
|
|
|
let curTaskTypeObj = computed(() => taskTypeArray.find(({ type }) => type === curTaskType.value));
|
|
|
provide('curTaskTypeObj', curTaskTypeObj);
|
|
|
|
|
|
- // 切换当前页面类型
|
|
|
- function changeCurPageType(type) {
|
|
|
- curPageType.value = type;
|
|
|
- }
|
|
|
-
|
|
|
const { resetScale } = useScale();
|
|
|
- // 切换任务类型
|
|
|
+
|
|
|
+ // 处理切换任务类型
|
|
|
function changeTaskType(type) {
|
|
|
if (type === TASK_EXPLAIN) {
|
|
|
- changeCurPageType(mainPageTypeList[0]);
|
|
|
- resetScale();
|
|
|
- } else {
|
|
|
- curSelectTaskType.value = type;
|
|
|
- changeCurPageType(mainPageTypeList[1]);
|
|
|
+ curTaskType.value = type;
|
|
|
+ return resetScale();
|
|
|
+ }
|
|
|
+ if ([taskTypeArray[1].type, taskTypeArray[2].type, taskTypeArray[3].type].includes(type)) {
|
|
|
+ return (curTaskType.value = type);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- // 显示选择任务类型
|
|
|
- let visible = ref(false);
|
|
|
- let isAddSubtask = ref(false); // 是否添加子任务
|
|
|
- let selectFn = null;
|
|
|
- function changeVisible(show, attr) {
|
|
|
- visible.value = show;
|
|
|
- let { isAdd, fn } = attr;
|
|
|
- isAddSubtask.value = isAdd;
|
|
|
- selectFn = fn;
|
|
|
- }
|
|
|
- provide('visible', {
|
|
|
- visible,
|
|
|
- changeVisible
|
|
|
- });
|
|
|
-
|
|
|
- // 添加任务
|
|
|
- function addTask(taskClassifyType) {
|
|
|
- addTaskList(curTaskTypeObj.value.sidebarListName, taskClassifyType);
|
|
|
- }
|
|
|
|
|
|
- function selectTaskClassify(taskClassifyType) {
|
|
|
- if (!taskClassifyType) return;
|
|
|
- visible.value = false;
|
|
|
- selectFn ? selectFn(taskClassifyType) : addTask(taskClassifyType);
|
|
|
- if (selectFn) selectFn = null;
|
|
|
+ if (type === pageStateList[1]) {
|
|
|
+ return changeCurPageState(pageStateList[1]);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- provide('addTask', addTask);
|
|
|
-
|
|
|
return {
|
|
|
curTaskType,
|
|
|
curTaskTypeObj,
|
|
|
curPageType,
|
|
|
mainPageTypeList,
|
|
|
- visible,
|
|
|
- isAddSubtask,
|
|
|
- changeTaskType,
|
|
|
- selectTaskClassify
|
|
|
+ changeTaskType
|
|
|
};
|
|
|
}
|