Quellcode durchsuchen

fix(workPage): 优化表单输入和保存逻辑

将@blur事件改为@input实现实时保存
添加防抖函数防止频繁保存请求
修复拖拽功能中drag事件处理问题
更新选项空值校验提示文本
SanHQin vor 5 Tagen
Ursprung
Commit
2695f36bee

+ 1 - 1
dist/index.html

@@ -37,7 +37,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: '黑体';
-    }</style><link href=./static/css/app.a90bc33ca631666c3581324e85976ff1.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.23ea04dc469b57e2b4f8.js></script><script type=text/javascript src=./static/js/vendor.714ff2bfc93f2f096b79.js></script><script type=text/javascript src=./static/js/app.f66ffcf3cd68f916dfd7.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.02ffa6f50406d998c9062e6de8bf9c4b.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.23ea04dc469b57e2b4f8.js></script><script type=text/javascript src=./static/js/vendor.714ff2bfc93f2f096b79.js></script><script type=text/javascript src=./static/js/app.f078d7b4637efc0c1343.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/app.02ffa6f50406d998c9062e6de8bf9c4b.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/app.02ffa6f50406d998c9062e6de8bf9c4b.css.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/workPage.d51f56f9bae42bf970e747d7c63659fa.css


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/css/workPage.d51f56f9bae42bf970e747d7c63659fa.css.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.f078d7b4637efc0c1343.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.f078d7b4637efc0c1343.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/manifest.23ea04dc469b57e2b4f8.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/workPage-manifest.2ece51fa34be51c8610a.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/workPage.1e772c6b32c3a35a19bc.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/workPage.1e772c6b32c3a35a19bc.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/workPage.f64544b287376d5537d1.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/workPage.f64544b287376d5537d1.js.map


+ 1 - 1
dist/workPage.html

@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>工作页面 - CocoFlow</title><link rel=icon href=../static/logo.ico><link href=./static/css/workPage.851dc6c6bc0efa9325ada38e7389707f.css rel=stylesheet></head><body><noscript><strong>We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script type=text/javascript src=./static/js/workPage-manifest.2ece51fa34be51c8610a.js></script><script type=text/javascript src=./static/js/workPage-vendor.7b2c55096449c94cc8fd.js></script><script type=text/javascript src=./static/js/workPage.1e772c6b32c3a35a19bc.js></script></body></html><script>function stopSafari() {
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>工作页面 - CocoFlow</title><link rel=icon href=../static/logo.ico><link href=./static/css/workPage.d51f56f9bae42bf970e747d7c63659fa.css rel=stylesheet></head><body><noscript><strong>We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script type=text/javascript src=./static/js/workPage-manifest.2ece51fa34be51c8610a.js></script><script type=text/javascript src=./static/js/workPage-vendor.7b2c55096449c94cc8fd.js></script><script type=text/javascript src=./static/js/workPage.f64544b287376d5537d1.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

+ 10 - 5
src/components/pages/workPage/components/setChoiceQuestion.vue

@@ -2,7 +2,7 @@
   <div class="setChoiceQuestion">
     <div class="testItem" v-for="(item, index) in jsonData.testJson" :key="item.id">
       <div class="ti_header">
-        <span>{{ lang.ssTopic }}{{ index + 1 }} <span v-if="item.answer.length==0 || item.checkList.some(opt=>opt=='')">{{lang.ssOptionEmpty}}</span></span>
+        <span>{{ lang.ssTopic }}{{ index + 1 }} <span v-if="item.answer.length==0 || item.checkList.some(opt=>!opt)">{{lang.ssNoSettingAnswer}}</span></span>
         <div class="ti_h_edit">
           <span @click="copyTest(item.id)">
             <svg viewBox="0 0 1024 1024" version="1.1" p-id="4608" width="200" height="200">
@@ -41,7 +41,7 @@
       </div>
 
       <div class="ti_title">
-        <el-input class="ti_t_input" type="textarea" v-model="item.teststitle" :rows="3" :autosize="{ minRows: 3, maxRows: 6 }" resize="none" :placeholder="lang.ssEnterTextTitle" @blur="setTestTitle(item.id)"></el-input>
+        <el-input class="ti_t_input" type="textarea" v-model="item.teststitle" :rows="3" :autosize="{ minRows: 3, maxRows: 6 }" resize="none" :placeholder="lang.ssEnterTextTitle" @input="setTestTitle(item.id)"></el-input>
         <div class="uploadImage" @click="uploadImage(item.id)">
           <svg viewBox="0 0 1024 1024" version="1.1" p-id="15953" width="200" height="200">
             <path
@@ -72,7 +72,7 @@
             @dragover.prevent="dragOver($event, item, checkIndex)"
             @drop="drop($event, item, checkIndex)"
             @dragend="dragEnd">
-          <div class="drag">
+          <div class="drag" draggable="true" @dragstart="dragStart($event, item, checkIndex)">
             <svg viewBox="0 0 1024 1024" width="200" height="200">
               <path
                 d="M867.995 459.647h-711.99c-27.921 0-52.353 24.434-52.353 52.353s24.434 52.353 52.353 52.353h711.99c27.921 0 52.353-24.434 52.353-52.353s-24.434-52.353-52.353-52.353z"
@@ -95,7 +95,7 @@
             </svg>
           </div>
           <el-input v-model="item.checkList[checkIndex]" :placeholder="lang.ssEnterOption"
-            @blur="setTestJson()"></el-input>
+            @input="setTestJson()"></el-input>
           <div class="btn">
 
             <div @click="addCheck(item.id, checkIndex)">
@@ -142,7 +142,7 @@
           </div>
         </div>
         <el-input type="textarea" rows="3" style="font-size: 1.2rem;" resize="none" v-model="item.explanation"
-          :placeholder="lang.ssEnterExplanation" @blur="setTestJson()"></el-input>
+          :placeholder="lang.ssEnterExplanation" @input="setTestJson()"></el-input>
       </div>
     </div>
 
@@ -331,6 +331,11 @@ export default {
     },
     // 拖拽相关方法
     dragStart(e, item, checkIndex) {
+      if (!e.target.closest('.drag')) {
+        e.preventDefault();
+        return;
+      }
+      console.log('e',e)
       this.dragItem = { item, checkIndex };
       const checkItem = e.target.closest('.checkItem');
       if (checkItem) checkItem.classList.add('dragging');

+ 2 - 2
src/components/pages/workPage/components/setQuestionsAndAnswers.vue

@@ -7,7 +7,7 @@
 
       <div class="ti_title">
         <div class="ti_t_input" contenteditable="true" v-text="jsonData.answerQ"
-          @blur="setTestTitle($event.target.innerText)"></div>
+          @input="setTestTitle($event.target.innerText)"></div>
         <div class="uploadImage" @click="uploadImage()">
           <svg viewBox="0 0 1024 1024" version="1.1" p-id="15953" width="200" height="200">
             <path
@@ -72,7 +72,7 @@
           </div> -->
         </div>
         <el-input type="textarea" rows="3" resize="none" v-model="jsonData.evaluationCriteria" :placeholder="lang.ssEnterEvaluationStandard"
-          @blur="setTestJson()"></el-input>
+          @input="setTestJson()"></el-input>
       </div>
     </div>
 

+ 2 - 2
src/components/pages/workPage/setIndex.vue

@@ -74,7 +74,7 @@ export default {
       this.saveTest();
     },
     // 保存
-    saveTest(){
+    saveTest: _.debounce(function() {
       const params = [{
         uid: this.userid || '',
         id: this.workData.id,
@@ -90,7 +90,7 @@ export default {
         console.log("保存失败",err);
         // this.$message.error("保存失败");
       })
-    }
+    }, 500)
   },
   mounted() {
     this.getWorkData();

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.