index.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import { useRoute } from 'vue-router'
  2. import { createStore } from 'vuex'
  3. // import { ActionContext } from 'vuex'
  4. import type { App } from 'vue'
  5. import {
  6. getEvaluationTaskDetailApi,
  7. } from '@/api/evaluationDataComponent'
  8. import { ElMessage } from 'element-plus'
  9. interface HorizontalMenuItem {
  10. evaluationManageDetailName:string, // 评价管理任务名称
  11. evaluationType:string |number, // 评价方式 0-线上匿名,1-线下答卷,2-线上导入,3-线上实名
  12. isHeadTeacherInvolved:boolean, //班主任是否参与评价
  13. isGenerateAccountByGender:boolean, // 是否按男女生成评价账号
  14. isGenerateReviewCode:boolean, //是否已生成评价码
  15. // 各个步骤的完成状态
  16. isFinishEvaluationData:boolean, // 评价数据是否完成
  17. isFinishTeachingRelationship:boolean, // 授课关系是否完成
  18. isFinishQuestionnaireTemplate:boolean, //问卷模板是否完成
  19. isFinishReviewAccount:boolean, //评价账号是否完成
  20. isFinishParameterSetting:boolean, //参数设置是否完成
  21. isFinishEvaluationProgress:boolean, //评价进度是否完成
  22. isFinsihGenerateAnalysis:boolean, //生成分析是否完成
  23. }
  24. // 定义 RootState 接口(可扩展)
  25. interface RootState {
  26. count: number,
  27. horizontalMenuItems:any[]
  28. evaluationManageStepData:HorizontalMenuItem
  29. }
  30. const route = useRoute()
  31. // type StoreActionContext = ActionContext<RootState, RootState>
  32. // 创建 store 实例
  33. const store = createStore<RootState>({
  34. state: () => ({
  35. count: 0,
  36. horizontalMenuItems:[
  37. {
  38. title:'问卷管理',
  39. route:`/main`,
  40. childrenRoute:[
  41. '/main/createQuestionnaire',
  42. '/main/previewQuestionnaire'
  43. ]
  44. },
  45. {
  46. title:'评价管理',
  47. route:`/main/reviewManagement`,
  48. childrenRoute:[
  49. '/main/reviewManagementDetail'
  50. ]
  51. },
  52. {
  53. title:'评价分析',
  54. route:`/main/reviewAnalysis`,
  55. childrenRoute:[]
  56. },
  57. {
  58. title:'个人中心',
  59. route:`/main/personalCenter`,
  60. childrenRoute:[]
  61. },
  62. ],
  63. evaluationManageStepData:{} //评价管理详情 全局数据
  64. }),
  65. mutations: {
  66. increment(state: RootState) {
  67. state.count++
  68. },
  69. updateEvaluationManageStepData(state,newData){ //更新评价管理详情的数据
  70. state.evaluationManageStepData = {
  71. ...state.evaluationManageStepData,
  72. ...newData
  73. }
  74. }
  75. },
  76. actions: {
  77. increment({ commit }) {
  78. commit('increment')
  79. },
  80. async updateEvaluationManageStepData({commit},evaluationManagementId){
  81. console.log('路由参数',evaluationManagementId)
  82. if(!evaluationManagementId){
  83. ElMessage.warning('请传参')
  84. return
  85. }
  86. let res = await getEvaluationTaskDetailApi(evaluationManagementId)
  87. if(res?.code === 200){
  88. let newData = {
  89. evaluationManageDetailName:res.data.evaluationName,
  90. evaluationType:res.data.evaluationType,
  91. isHeadTeacherInvolved:Boolean(res.data.classMasterStatus),
  92. isGenerateAccountByGender:Boolean(res.data.genderStatus),
  93. isGenerateReviewCode:Boolean(res.data.evaluationCodeStatus),
  94. isFinishEvaluationData:Boolean(res.data.evaluationDataStatus),
  95. isFinishTeachingRelationship:Boolean(res.data.teachingRelationStatus),
  96. isFinishQuestionnaireTemplate:Boolean(res.data.assessmentTemplateStatus),
  97. isFinishReviewAccount:Boolean(res.data.evaluationAccountStatus),
  98. isFinishParameterSetting:Boolean(res.data.paramSetupStatus),
  99. isFinishEvaluationProgress:Boolean(res.data.evaluationProgressStatus),
  100. isFinsihGenerateAnalysis:Boolean(res.data.analysisStatus),
  101. }
  102. commit('updateEvaluationManageStepData',newData)
  103. }
  104. }
  105. },
  106. getters: {
  107. count: (state: RootState) => state.count,
  108. getDemo:(state)=>()=>{
  109. return state.horizontalMenuItems.map(item=>{
  110. return item
  111. })
  112. },
  113. getEvaluationManageStepData:(state)=>state.evaluationManageStepData
  114. }
  115. })
  116. // 提供一个方法用于注册到 Vue 应用中
  117. export function setupStore(app: App) {
  118. app.use(store)
  119. }
  120. export default store