Jelajahi Sumber

feat(工具栏): 添加投票功能支持

- 新增投票工具图标和国际化文本
- 在折叠工具栏中添加投票选项
- 实现点击投票工具时的处理逻辑
lsc 2 hari lalu
induk
melakukan
68dd3ec15f

+ 0 - 1
package-lock.json

@@ -6656,7 +6656,6 @@
       "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.4.0.tgz",
       "integrity": "sha512-Iq/024CydcE46FZqWPU4t4lw4uYOdLnFSO1RNxJVt2qY9zxIjmnkBqhHnYaReWM82kmNnaXs7OkfgRrV2GEjyw==",
       "dev": true,
-      "license": "MIT",
       "dependencies": {
         "@babel/core": "^7.23.0",
         "@babel/plugin-proposal-decorators": "^7.23.0",

TEMPAT SAMPAH
src/assets/img/tool_photo.png


TEMPAT SAMPAH
src/assets/img/tool_vote.png


+ 13 - 0
src/components/CollapsibleToolbar/index2.vue

@@ -231,6 +231,7 @@
         </div>
         <img class="submenu-img" v-else-if="hoveredTool === 'qa'" key="qa" :src="toolAnswer" alt="">
         <img class="submenu-img" v-else-if="hoveredTool === 'choice'" key="choice" :src="toolChoice" alt="">
+        <img class="submenu-img" v-else-if="hoveredTool === 'vote'" key="vote" :src="toolVote" alt="">
       </transition>
       <div class="submenu-item-box">
         <div class="submenu-item" @click="handleToolClick('choice')" @mouseenter="hoveredTool = 'choice'"
@@ -248,6 +249,14 @@
           </svg>
           <span class="submenu-label">{{ lang.ssQandA }}</span>
         </div>
+        <div class="submenu-item" @click="handleToolClick('vote')" @mouseenter="hoveredTool = 'vote'"
+          @mouseleave="hoveredTool = null">
+          <svg class="submenu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
+              <polyline points="9 11 12 14 22 4"></polyline>
+              <path d="M21 12v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h11"></path>
+          </svg>
+          <span class="submenu-label">{{ lang.ssVote }}</span>
+        </div>
         <div class="submenu-item" @click="handleToolClick('creative')" @mouseenter="hoveredTool = null"
           @mouseleave="hoveredTool = null">
           <svg class="submenu-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -545,6 +554,7 @@ import SpeakingPanel from '@/views/Editor/EnglishSpeaking/SpeakingPanel.vue'
 import { lang } from '@/main'
 import toolChoice from '@/assets/img/tool_choice.jpeg'
 import toolAnswer from '@/assets/img/tool_answer.png'
+import toolVote from '@/assets/img/tool_vote.png'
 
 interface ContentItem {
   tool?: number
@@ -835,6 +845,9 @@ const handleToolClick = (tool: string) => {
   else if (tool === 'choice') {
     parentWindow?.addTool?.(45)
   }
+  else if (tool === 'vote') {
+    parentWindow?.addTool?.(78)
+  }
   else if (tool === 'qa') {
     parentWindow?.addTool?.(15)
   }

+ 1 - 0
src/views/lang/cn.json

@@ -161,6 +161,7 @@
   "ssContentList": "内容列表",
   "ssChoiceQ": "选择",
   "ssQandA": "问答",
+  "ssVote": "投票",
   "ssNoLearn": "暂无学习内容",
   "ssNeedUpload": "请先上传或创建学习内容",
   "ssPreview": "预览",

+ 1 - 0
src/views/lang/en.json

@@ -160,6 +160,7 @@
   "ssCreative": "CocoFlow Creative Space",
   "ssContentList": "Content list",
   "ssQandA": "Q&A",
+  "ssVote": "Vote",
   "ssNoLearn": "No learning content",
   "ssNeedUpload": "Please upload or create learning content first",
   "ssPreview": "Preview",

+ 1 - 0
src/views/lang/hk.json

@@ -160,6 +160,7 @@
   "ssCreative": "創作空間",
   "ssContentList": "內容列表",
   "ssQandA": "問答",
+  "ssVote": "投票",
   "ssNoLearn": "暫無學習內容",
   "ssNeedUpload": "請先上傳或創建學習內容",
   "ssPreview": "預覽",