mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/student-h5.git
synced 2025-12-06 09:26:46 +08:00
99 lines
3.5 KiB
JavaScript
99 lines
3.5 KiB
JavaScript
/*
|
|
* @Author: lixg lixg@dongwu-inc.com
|
|
* @Date: 2023-01-17 19:47:07
|
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
|
* @LastEditTime: 2023-03-03 10:30:46
|
|
* @FilePath: /stu_h5/src/store/index.js
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
*/
|
|
import { createStore } from 'vuex'
|
|
import { PROJECT_PROCESS, ROUTER_PROCESS } from "@/api/api";
|
|
import { request } from "@/api/request";
|
|
import { TASK_TYPES } from "@/api/CONST";
|
|
|
|
export default createStore({
|
|
state: {
|
|
userInfo: {},
|
|
projectInfo: {},
|
|
routerInfo: {}
|
|
},
|
|
getters: {
|
|
|
|
},
|
|
mutations: {
|
|
SET_USER(state, userInfo) {
|
|
state.userInfo = userInfo
|
|
},
|
|
SET_PROJECT_INFO(state, info) {
|
|
state.projectInfo = info
|
|
},
|
|
INIT_PROJECT_INFO(state) {
|
|
if (state.projectInfo.status === -1) {
|
|
state.projectInfo.stageProcessList.forEach((t) => {
|
|
t.statusName = '已结束';
|
|
t.taskProcessList?.forEach((s) => s.statusName = '已结束')
|
|
})
|
|
return
|
|
}
|
|
if (state.projectInfo.unlockMode === 1) {
|
|
state.projectInfo.stageProcessList.forEach((t) => {
|
|
t.statusName = '进行中'
|
|
t.taskProcessList?.forEach((s) => s.statusName = (s.status === 1) ? '已完成' : TASK_TYPES.toName[s.type])
|
|
t.taskProcessList?.every((s) => s.status === 1) && (t.statusName = '已完成')
|
|
})
|
|
return
|
|
}
|
|
state.projectInfo.stageProcessList?.some((t) => {
|
|
t.statusName = '已完成'
|
|
const stageState = t.taskProcessList?.some((s) => {
|
|
s.unlock = true
|
|
s.statusName = '已完成'
|
|
s.status !== 1 && (s.statusName = TASK_TYPES.toName[s.type])
|
|
return state.projectInfo.unlockMode === 2 ? s.status !== 1 : (s.status !== 1 && s.flag)
|
|
})
|
|
stageState && (t.statusName = '进行中');
|
|
return stageState
|
|
})
|
|
},
|
|
SET_ROUTER_INFO(state, info) {
|
|
state.routerInfo = info
|
|
},
|
|
INIT_ROUTER_INFO(state) {
|
|
// state.routerInfo.unlockMode 1自由模式 2闯关模式 3 闯关模式 必修 flag true
|
|
if (state.routerInfo.status === -1) {
|
|
state.routerInfo.statusName = '已结束'
|
|
state.routerInfo.taskBoList.forEach((t) => t.statusName = '已结束')
|
|
return
|
|
}
|
|
state.routerInfo.statusName = '进行中'
|
|
if (state.routerInfo.unlockMode === 1) {
|
|
state.routerInfo.taskBoList?.forEach((s) => s.statusName = (s.status === 1) ? '已完成' : TASK_TYPES.toName[s.type])
|
|
state.routerInfo.taskBoList?.every((s) => s.status === 1) && (state.routerInfo.statusName = '已完成')
|
|
return
|
|
}
|
|
state.routerInfo.statusName = '已完成'
|
|
state.routerInfo.taskBoList?.some((s) => {
|
|
s.unlock = true
|
|
s.statusName = '已完成'
|
|
s.status !== 1 && (s.statusName = TASK_TYPES.toName[s.type])
|
|
return state.routerInfo.unlockMode === 2 ? s.status !== 1 : (s.status !== 1 && s.flag)
|
|
}) && (state.routerInfo.statusName = '进行中')
|
|
},
|
|
},
|
|
actions: {
|
|
getProjectInfo(content, { projectId, type }) {
|
|
request(PROJECT_PROCESS, { projectId, type }).then(res => {
|
|
content.commit('SET_PROJECT_INFO', res.data)
|
|
content.commit('INIT_PROJECT_INFO')
|
|
})
|
|
},
|
|
getRouterInfo(content, { routerId }) {
|
|
request(ROUTER_PROCESS, { routerId }).then(res => {
|
|
content.commit('SET_ROUTER_INFO', res.data)
|
|
content.commit('INIT_ROUTER_INFO')
|
|
})
|
|
},
|
|
},
|
|
modules: {}
|
|
})
|