Browse Source

定位校验未通过的项目

reaper 4 năm trước cách đây
mục cha
commit
1ab781015b

+ 4 - 2
src/components/knowledgeExtra/AddAssess/ScoreResultsTable.vue

@@ -136,6 +136,7 @@
               >
                 <el-input
                   type="number"
+                  :id="`scoreresultsdatas[${scope.$index}].content.min`"
                   v-model.number="scope.row.content.min"
                   clearable
                   placeholder="请输入"
@@ -158,6 +159,7 @@
               >
                 <el-input
                   type="number"
+                  :id="`scoreresultsdatas[${scope.$index}].content.max`"
                   v-model.number="scope.row.content.max"
                   clearable
                   placeholder="请输入"
@@ -177,7 +179,7 @@
             :rules="rules.soureResult"
           >
             <el-input
-              :ref="`scoreresultsdatas[${scope.$index}].result`"
+              :id="`scoreresultsdatas[${scope.$index}].result`"
               type="textarea"
               rows="1"
               :autosize="true"
@@ -197,7 +199,7 @@
             :rules="rules.sourePushInfo"
           >
             <el-input
-              :ref="`scoreresultsdatas[${scope.$index}].pushInfo`"
+              :id="`scoreresultsdatas[${scope.$index}].pushInfo`"
               type="textarea"
               rows="1"
               :autosize="true"

+ 16 - 4
src/components/knowledgeExtra/AddAssess/index.vue

@@ -211,6 +211,7 @@ it .ql-editor,
                   :rules="rules.tableFactor"
                 >
                   <el-input
+                    :id="`klScaleParent[${tableIndex}].factor`"
                     type="number"
                     maxlength="6"
                     v-model.number="table.factor"
@@ -225,6 +226,7 @@ it .ql-editor,
                 >
                   <el-input
                     :ref="`klScaleParent[${tableIndex}].constant`"
+                    :id="`klScaleParent[${tableIndex}].constant`"
                     type="number"
                     maxlength="6"
                     v-model.number="table.constant"
@@ -518,20 +520,30 @@ export default {
   },
   methods: {
     getElementTop(element) {
-      console.log('element',element);
+      console.log("element", element);
       var actualTop = element.offsetTop;
       var current = element.parentNode;
       console.log("actualTop", actualTop);
       console.log("current", current.offsetTop);
-      while (current !== null) {
+      while (
+        current != null &&
+        current.offsetTop != "undefined" &&
+        current.offsetTop != null
+      ) {
+        console.log("???", actualTop, current.offsetTop, current);
         actualTop += current.offsetTop;
+
         current = current.parentNode;
       }
+      console.log("actualTopactualTop", actualTop);
       return actualTop;
     },
     getDom(ref) {
-      // console.log("???", this.getElementTop(document.getElementById(ref)));
-      return this.getElementTop(document.getElementById(ref));
+      console.log('getBoundingClientRect',document.getElementById(ref));
+      // const dom = this.getElementTop(document.getElementById(ref));
+      let dom = document.getElementById(ref).getBoundingClientRect().top; 
+      console.log("dom,dom", dom);
+      return dom;
     },
     CHANGE_ISSUE_CONTENT(data) {
       const { value, tableIndex, rowIndex, name } = data;

+ 6 - 3
src/components/knowledgeExtra/AddAssess/scale-table.vue

@@ -207,6 +207,7 @@
             >
               <el-input
                 :ref="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].two_content`"
+                :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].two_content`"
                 type="textarea"
                 rows="1"
                 :autosize="true"
@@ -265,6 +266,7 @@
               >
                 <el-input
                   type="number"
+                  :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].two_constant`"
                   v-model.number="scope.row.two_constant"
                   placeholder="请输入"
                   style="text-align: center"
@@ -339,7 +341,7 @@
               :rules="rules.content"
             >
               <el-input
-                :ref="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].content`"
+                :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].content`"
                 type="textarea"
                 rows="1"
                 :autosize="true"
@@ -394,6 +396,7 @@
               :rules="rules.score"
             >
               <el-input
+              :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].score`"
                 type="number"
                 maxlength="6"
                 v-model.number="scope.row.score"
@@ -418,7 +421,7 @@
               :rules="rules.result"
             >
               <el-input
-                :ref="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].result`"
+                :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].result`"
                 type="textarea"
                 rows="1"
                 :autosize="true"
@@ -442,7 +445,7 @@
               :rules="rules.pushInfo"
             >
               <el-input
-                :ref="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].pushInfo`"
+                :id="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].pushInfo`"
                 type="textarea"
                 rows="1"
                 :autosize="true"

+ 46 - 65
src/components/knowledgeExtra/AddDevKnow.vue

@@ -228,11 +228,7 @@
           </el-form>
         </div>
         <div v-if="AssesComSHow && AssesTabSHow" v-show="tabActive == 'two'">
-          <AddAssess
-            @scrollTo="scrollTo"
-            :childScaleData="scaleData"
-            ref="assessRef"
-          />
+          <AddAssess :childScaleData="scaleData" ref="assessRef" />
         </div>
       </div>
 
@@ -392,9 +388,7 @@ export default {
         .then((res) => {
           if (res.data.code == "0") {
             const data = res.data.data;
-            console.log("??????12121", data.scale);
             if (data.scale) {
-              console.log("!!!!!11111");
               this.scaleData = data.scale;
               this.AssesTabSHow = true;
             } else {
@@ -447,7 +441,6 @@ export default {
                 this.staticTabShow = false;
                 this.tabActiveChange("two");
               }
-              console.log("!!!!!!!!dawdaces", data.scale);
             }
           }
         })
@@ -539,12 +532,6 @@ export default {
         })
         .catch(() => {});
     },
-    scrollTo(value) {
-      let div = this.$refs["elscrollbar"].$refs["wrap"];
-      console.log("after", div.scrollTop);
-      div.scrollTop = value;
-      console.log("before", div.scrollTop);
-    },
     tabActiveChange(type) {
       this.tabActive = type;
       if (type == "two") {
@@ -569,7 +556,6 @@ export default {
     },
     changeWord(newVal) {
       this.tabErrMsg = null;
-      console.log(newVal, "选中");
       if (newVal.typeName == "量表") {
         this.AssesComSHow = true;
       } else {
@@ -693,11 +679,11 @@ export default {
       let positionArr = positiontemp.reduce(function (a, b) {
         return a.concat(b);
       }); // 所有被选中的值集合
-      console.log(positionArr, "positionArr");
-      console.log(this.showType, "当前页的显示类型");
+      // console.log(positionArr, "positionArr");
+      // console.log(this.showType, "当前页的显示类型");
       let isVisFlag = positionArr.some((item) => item === 2);
       let isDiagFlag = positionArr.some((item) => item === 3);
-      console.log(isVisFlag, "isVisFlag是否显示");
+      // console.log(isVisFlag, "isVisFlag是否显示");
       if (
         (this.showType == 3 ||
           this.showType == 4 ||
@@ -705,7 +691,7 @@ export default {
           this.showType == 6) &&
         isVisFlag
       ) {
-        console.log("进入校验");
+        // console.log("进入校验");
         //若医学术语为检验/检查,且内容类型选择了注意事项,此时“注意事项标题”是必填项
         this.$refs.groups && this.$refs.groups.clearValidate();
         this.rules.titleChange.push({
@@ -787,7 +773,7 @@ export default {
             if (valid) {
               resolve(true);
             } else {
-              reject("f", object);
+              reject("top", object);
               return false;
             }
           });
@@ -822,27 +808,6 @@ export default {
       if (this.$refs.assessRef) {
         all.push(...this.$refs.assessRef.assessCommit());
       }
-      console.log("all", all);
-      // await Promise.all(all)
-      //   .then(() => {
-      //     console.log("3.5");
-      //   })
-      //   .catch((err, obj) => {
-      //     console.log("obj", err, obj);
-      //     // 跳转到未校验通过的tab页
-      //     if (err == "f") {
-      //       this.tabActive = "one";
-      //       this.tabErrMsg = `"静态知识"`;
-      //     } else if (err == "c") {
-      //       this.tabActive = "two";
-      //       this.tabErrMsg = `"评估内容"`;
-      //     }
-      //     if (this.staticTabShow) {
-      //       goOn = false;
-      //       outIsVia = false;
-      //     }
-      //   });
-      // console.log(viewHeightArr,'viewHeightArr');
       // 批量处理Promise返回
       let transferedPromises = (promises) => {
         // 返回一个处理之后的promise数组
@@ -852,14 +817,15 @@ export default {
       };
       let promiseArr = transferedPromises(all);
       await Promise.all(promiseArr).then((resArr) => {
-        console.log(resArr);
         let cErrIndex = resArr.findIndex((item) => item.type == "c");
         let fErrIndex = resArr.findIndex((item) => item == "f");
-
-        if (cErrIndex != -1 && fErrIndex != -1) {
+        let topErrIndex = resArr.findIndex((item) => item == "top");
+        if (topErrIndex != -1) {
+          console.log("????");
+          outIsVia = false;
+        } else if (cErrIndex != -1 && fErrIndex != -1) {
           if (this.staticTabShow) {
             goOn = false;
-            outIsVia = false;
           }
           this.tabActive = "one";
           this.tabErrMsg = `"静态知识"和"评估内容"`;
@@ -870,9 +836,23 @@ export default {
           if (cErrArr) {
             cErrArr = Object.keys(cErrArr[0].object);
           }
-          console.log("cErrArr", cErrArr[0]);
-          let domTop = this.$refs.assessRef.getDom(cErrArr[0]);
-          console.log("domTop", domTop);
+
+          this.$nextTick(() => {
+            setTimeout(() => {
+              let domTop = this.$refs.assessRef.getDom(cErrArr[0]);
+              console.log("domTop", domTop);
+              var div = this.$refs["elscrollbar"].$refs["wrap"];
+              console.log("scrollTop-before", div.scrollTop);
+              console.log("domTop", domTop);
+              if (domTop >= 0) {
+                div.scrollTop += domTop - 120;
+              } else {
+                div.scrollTop -= Math.abs(domTop) + 120;
+              }
+
+              console.log("scrollTop-after", div.scrollTop);
+            }, 100);
+          });
         } else if (cErrIndex == -1 && fErrIndex != -1) {
           this.tabActive = "one";
           this.tabErrMsg = `"静态知识"`;
@@ -880,21 +860,26 @@ export default {
           assessRule = true;
         }
       });
+      console.log(this.staticTabShow, goOn);
       if (this.staticTabShow && !goOn) {
-        if (this.staticTabShow) {
-          var div = this.$refs["elscrollbar"].$refs["wrap"];
-          if (outIsVia) {
-            // 外层校验通过,跳转至下层校验具体位置
-            this.$nextTick(() => {
-              div.scrollTop = +viewHeightArr[0] - 150;
-            });
-          } else {
-            // 外层校验没通过,页面滚动到顶部
-            this.$nextTick(() => {
-              div.scrollTop = 0;
-            });
-          }
+        var div = this.$refs["elscrollbar"].$refs["wrap"];
+        if (outIsVia) {
+          // 外层校验通过,跳转至下层校验具体位置
+          console.log("div.scrollTop", div.scrollTop);
+          this.$nextTick(() => {
+            if (viewHeightArr[0] >= 0) {
+              div.scrollTop += viewHeightArr[0] - 120;
+            } else {
+              div.scrollTop -= Math.abs(viewHeightArr[0]) + 120;
+            }
+          });
+        } else {
+          // 外层校验没通过,页面滚动到顶部
+          this.$nextTick(() => {
+            div.scrollTop = 0;
+          });
         }
+
         return;
       }
 
@@ -952,12 +937,10 @@ export default {
         } else {
           paramsAll.details = null;
         }
-        console.log("paramsAll", paramsAll);
         param = paramsAll;
         if (!param.details) param.details = [];
         // 评估内容的数据
         param.scale = {};
-        console.log(this.AssesComSHow);
         if (this.AssesComSHow && this.AssesTabSHow) {
           const assessParam = this.$refs.assessRef.formtParams();
           param.scale = assessParam;
@@ -971,7 +954,6 @@ export default {
       console.log("param-------");
       console.dir(param);
       // return;
-      console.log("this.isEdit", this.isEdit);
       if (!this.isEdit) {
         // 新增页面
         console.log("!!!");
@@ -993,7 +975,6 @@ export default {
 
     //保存编辑 接口
     sendSaveOrEdit(param) {
-      console.log("???????");
       this.isCopy && (param.id = undefined);
       param.source = 1; //0:医院端  1:云平台
       api