SpecialTagModal.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <template>
  2. <qm-dialog
  3. v-if="store.setting.uiSetting['specialTag.modal']"
  4. ref="dialog"
  5. top="10%"
  6. width="300px"
  7. height="160px"
  8. title="特殊标记"
  9. @close="close"
  10. >
  11. <div
  12. class="
  13. tw-flex tw-place-content-between tw-m-4 tw-text-xl tw-cursor-pointer
  14. "
  15. >
  16. <div
  17. @click="toggleTag('√')"
  18. :class="[store.currentSpecialTag === '√' && 'tag-selected', 'tag']"
  19. >
  20. </div>
  21. <div
  22. @click="toggleTag('X')"
  23. :class="[store.currentSpecialTag === 'X' && 'tag-selected', 'tag']"
  24. >
  25. X
  26. </div>
  27. <div
  28. @click="toggleTag('乄')"
  29. :class="[store.currentSpecialTag === '乄' && 'tag-selected', 'tag']"
  30. >
  31. </div>
  32. <div
  33. @click="toggleTag('_____')"
  34. :class="[store.currentSpecialTag === '_____' && 'tag-selected', 'tag']"
  35. style="width: 60px"
  36. >
  37. <u>下划线</u>
  38. </div>
  39. </div>
  40. <div class="tw-flex tw-place-content-between tw-mt-8">
  41. <qm-button
  42. type="primary"
  43. shape="round"
  44. size="large"
  45. :clickTimeout="300"
  46. @click="clearLatestTagOfCurrentTask"
  47. >
  48. 回退
  49. </qm-button>
  50. <qm-button
  51. type="primary"
  52. shape="round"
  53. size="large"
  54. :clickTimeout="300"
  55. @click="clearAllTagsOfCurrentTask"
  56. >
  57. 清除全部
  58. </qm-button>
  59. </div>
  60. </qm-dialog>
  61. </template>
  62. <script lang="ts">
  63. import { defineComponent } from "vue";
  64. import { store } from "./store";
  65. export default defineComponent({
  66. name: "SpecialTagModal",
  67. setup() {
  68. function clearLatestTagOfCurrentTask() {
  69. if (!store.currentMarkResult) return;
  70. store.currentMarkResult.specialTagList.splice(-1);
  71. }
  72. function clearAllTagsOfCurrentTask() {
  73. if (!store.currentMarkResult) return;
  74. store.currentMarkResult.specialTagList = [];
  75. }
  76. const toggleTag = (tagName: string) => {
  77. if (store.currentSpecialTag === tagName) {
  78. store.currentSpecialTag = undefined;
  79. } else {
  80. store.currentSpecialTag = tagName;
  81. store.currentScore = undefined;
  82. }
  83. };
  84. const close = () => {
  85. store.currentSpecialTag = undefined;
  86. store.setting.uiSetting["specialTag.modal"] = false;
  87. };
  88. return {
  89. store,
  90. toggleTag,
  91. close,
  92. clearLatestTagOfCurrentTask,
  93. clearAllTagsOfCurrentTask,
  94. };
  95. },
  96. });
  97. </script>
  98. <style>
  99. .tag {
  100. width: 30px;
  101. height: 30px;
  102. text-align: center;
  103. border-radius: 2px;
  104. }
  105. .tag-selected {
  106. background-color: lightgrey;
  107. }
  108. </style>