| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import { useRoute } from 'vue-router'
- import { createStore } from 'vuex'
- // import { ActionContext } from 'vuex'
- import type { App } from 'vue'
- import {
- getEvaluationTaskDetailApi,
- } from '@/api/evaluationDataComponent'
- import { ElMessage } from 'element-plus'
-
- interface HorizontalMenuItem {
- evaluationManageDetailName:string, // 评价管理任务名称
- evaluationType:string |number, // 评价方式 0-线上匿名,1-线下答卷,2-线上导入,3-线上实名
- isHeadTeacherInvolved:boolean, //班主任是否参与评价
- isGenerateAccountByGender:boolean, // 是否按男女生成评价账号
- isGenerateReviewCode:boolean, //是否已生成评价码
- // 各个步骤的完成状态
- isFinishEvaluationData:boolean, // 评价数据是否完成
- isFinishTeachingRelationship:boolean, // 授课关系是否完成
- isFinishQuestionnaireTemplate:boolean, //问卷模板是否完成
- isFinishReviewAccount:boolean, //评价账号是否完成
- isFinishParameterSetting:boolean, //参数设置是否完成
- isFinishEvaluationProgress:boolean, //评价进度是否完成
- isFinsihGenerateAnalysis:boolean, //生成分析是否完成
- }
- // 定义 RootState 接口(可扩展)
- interface RootState {
- count: number,
- horizontalMenuItems:any[]
- evaluationManageStepData:HorizontalMenuItem
- }
- const route = useRoute()
- // type StoreActionContext = ActionContext<RootState, RootState>
- // 创建 store 实例
- const store = createStore<RootState>({
- state: () => ({
- count: 0,
- horizontalMenuItems:[
- {
- title:'问卷管理',
- route:`/main`,
- childrenRoute:[
- '/main/createQuestionnaire',
- '/main/previewQuestionnaire'
- ]
- },
- {
- title:'评价管理',
- route:`/main/reviewManagement`,
- childrenRoute:[
- '/main/reviewManagementDetail'
- ]
- },
- {
- title:'评价分析',
- route:`/main/reviewAnalysis`,
- childrenRoute:[]
- },
- {
- title:'个人中心',
- route:`/main/personalCenter`,
- childrenRoute:[]
- },
- ],
- evaluationManageStepData:{} //评价管理详情 全局数据
- }),
- mutations: {
- increment(state: RootState) {
- state.count++
- },
- updateEvaluationManageStepData(state,newData){ //更新评价管理详情的数据
- state.evaluationManageStepData = {
- ...state.evaluationManageStepData,
- ...newData
- }
- }
- },
- actions: {
- increment({ commit }) {
- commit('increment')
- },
- async updateEvaluationManageStepData({commit},evaluationManagementId){
- console.log('路由参数',evaluationManagementId)
- if(!evaluationManagementId){
- ElMessage.warning('请传参')
- return
- }
- let res = await getEvaluationTaskDetailApi(evaluationManagementId)
- if(res?.code === 200){
- let newData = {
- evaluationManageDetailName:res.data.evaluationName,
- evaluationType:res.data.evaluationType,
- isHeadTeacherInvolved:Boolean(res.data.classMasterStatus),
- isGenerateAccountByGender:Boolean(res.data.genderStatus),
- isGenerateReviewCode:Boolean(res.data.evaluationCodeStatus),
- isFinishEvaluationData:Boolean(res.data.evaluationDataStatus),
- isFinishTeachingRelationship:Boolean(res.data.teachingRelationStatus),
- isFinishQuestionnaireTemplate:Boolean(res.data.assessmentTemplateStatus),
- isFinishReviewAccount:Boolean(res.data.evaluationAccountStatus),
- isFinishParameterSetting:Boolean(res.data.paramSetupStatus),
- isFinishEvaluationProgress:Boolean(res.data.evaluationProgressStatus),
- isFinsihGenerateAnalysis:Boolean(res.data.analysisStatus),
- }
- commit('updateEvaluationManageStepData',newData)
- }
- }
- },
- getters: {
- count: (state: RootState) => state.count,
- getDemo:(state)=>()=>{
- return state.horizontalMenuItems.map(item=>{
- return item
- })
- },
- getEvaluationManageStepData:(state)=>state.evaluationManageStepData
- }
- })
- // 提供一个方法用于注册到 Vue 应用中
- export function setupStore(app: App) {
- app.use(store)
- }
- export default store
|