GradeStep.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <div class="grade-step">
  3. <div
  4. class="grade-step-other"
  5. v-if="steps.otherStep && steps.otherStep.length"
  6. >
  7. <div
  8. v-for="(step, sindex) in steps.otherStep"
  9. :key="sindex"
  10. :class="[
  11. 'step-item',
  12. {
  13. 'step-act': curStep.name === step.name,
  14. 'step-other': step.type !== 'done',
  15. },
  16. ]"
  17. @click="selectStep(step)"
  18. >
  19. <p>{{ showCount || step.type !== "undo" ? step.count : "" }}</p>
  20. <p class="step-name">{{ step.name }}</p>
  21. <p>{{ showCount || step.type !== "undo" ? step.count : "" }}</p>
  22. </div>
  23. </div>
  24. <div class="grade-step-level">
  25. <div
  26. v-for="(step, sindex) in steps.levelStep"
  27. :key="sindex"
  28. :class="[
  29. 'step-item',
  30. {
  31. 'step-act': curStep.name === step.name,
  32. 'step-other': step.type !== 'done',
  33. },
  34. ]"
  35. @click="selectStep(step)"
  36. >
  37. <p>
  38. <span>{{ showCount ? step.gcount + "/" : "" }}</span>
  39. <span>{{ step.gpercent }}%</span>
  40. <span>({{ step.pt }}%)</span>
  41. </p>
  42. <p class="step-name">{{ step.name }}</p>
  43. <p>
  44. <span>{{ showCount ? step.count + "/" : "" }}</span>
  45. <span>{{ step.percent }}%</span>
  46. <span v-if="step.kdpt !== null">({{ step.kdpt }}%)</span>
  47. </p>
  48. </div>
  49. </div>
  50. </div>
  51. </template>
  52. <script>
  53. export default {
  54. name: "grade-step",
  55. props: {
  56. steps: {
  57. type: Object,
  58. default() {
  59. return { levelStep: [], otherStep: [] };
  60. },
  61. },
  62. initStep: {
  63. type: Object,
  64. default() {
  65. return { type: "analysis", name: "analysis" };
  66. },
  67. },
  68. showCount: {
  69. type: Boolean,
  70. default: true,
  71. },
  72. },
  73. data() {
  74. return {
  75. curStep: {},
  76. };
  77. },
  78. mounted() {
  79. this.curStep = { ...this.initStep };
  80. },
  81. methods: {
  82. selectStep(step) {
  83. this.curStep = { ...step };
  84. this.$emit("on-change", this.curStep);
  85. },
  86. },
  87. };
  88. </script>