فهرست منبع

富文本修改,输入框伸缩功能,大于小于判断

reaper 4 سال پیش
والد
کامیت
f630752895

+ 103 - 56
src/components/knowledgeExtra/AddAssess/ScoreResultsTable.vue

@@ -1,3 +1,66 @@
+<style lang="less" scoped>
+.ScoreResults {
+  width: 100%;
+  padding: 30px 30px 0 30px;
+  box-sizing: border-box;
+  h4 {
+    font-size: 14px;
+  }
+  /deep/.el-table th,
+  .el-table tr {
+    height: 50px;
+    background: #e3eaf4;
+  }
+  /deep/.el-table th {
+    padding: 0;
+  }
+  .btn_box {
+    width: 100%;
+    height: 100%;
+    padding: 20px 0;
+    display: flex;
+    align-items: center;
+    justify-content: space-around;
+    .btn_div {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+    }
+    img {
+      width: 16px;
+      height: 16px;
+      cursor: pointer;
+    }
+  }
+  .range_box {
+    display: flex;
+    position: relative;
+    .range_child {
+      flex: 1;
+      &:nth-child(1) {
+        margin-right: 20px;
+      }
+      /deep/.el-form-item__content {
+        position: static;
+      }
+      /deep/ .is-error .el-form-item__error {
+        left: 70px;
+      }
+    }
+  }
+  /deep/.el-input--mini .el-input__inner {
+    width: 100%;
+  }
+  /deep/.el-form-item--mini.el-form-item,
+  .el-form-item--small.el-form-item {
+    padding: 18px 0;
+  }
+}
+/deep/ .el-textarea__inner {
+  overflow-y: hidden;
+}
+</style>
 <template>
   <div class="ScoreResults">
     <h4>得分结果:</h4>
@@ -36,12 +99,19 @@
               <el-form-item
                 label="大于:"
                 label-width="70px"
-                :prop="`scoreresultsdatas[${scope.$index}].content.max`"
-                :rules="rules.max"
+                :prop="`scoreresultsdatas[${scope.$index}].content.min`"
+                :rules="[
+                  {
+                    validator: (rule, value, callback) => {
+                      validateMinMax(scope, rule, value, callback);
+                    },
+                    trigger: ['blur']
+                  }
+                ]"
               >
                 <el-input
                   type="text"
-                  v-model="scope.row.content.max"
+                  v-model="scope.row.content.min"
                   clearable
                   placeholder="请输入"
                 ></el-input>
@@ -51,12 +121,19 @@
               <el-form-item
                 label="小于:"
                 label-width="70px"
-                :prop="`scoreresultsdatas[${scope.$index}].content.min`"
-                :rules="rules.min"
+                :prop="`scoreresultsdatas[${scope.$index}].content.max`"
+                :rules="[
+                  {
+                    validator: (rule, value, callback) => {
+                      validateMinMax(scope, rule, value, callback);
+                    },
+                    trigger: ['blur']
+                  }
+                ]"
               >
                 <el-input
                   type="text"
-                  v-model="scope.row.content.min"
+                  v-model="scope.row.content.max"
                   clearable
                   placeholder="请输入"
                 ></el-input>
@@ -75,9 +152,13 @@
             :rules="rules.soureResult"
           >
             <el-input
-              type="text"
+              type="textarea"
+              rows="1"
+              :autosize="true"
+              resize="none"
               v-model="scope.row.result"
               clearable
+              maxlength="300"
               placeholder="请输入"
             ></el-input>
           </el-form-item>
@@ -90,9 +171,13 @@
             :rules="rules.sourePushInfo"
           >
             <el-input
-              type="text"
+              type="textarea"
+              rows="1"
+              :autosize="true"
+              resize="none"
               v-model="scope.row.pushInfo"
               clearable
+              maxlength="300"
               placeholder="请输入"
             ></el-input>
           </el-form-item>
@@ -110,6 +195,16 @@ export default {
       rules: rules
     };
   },
+  methods: {
+    validateMinMax(scope, rule, value, callback) {
+      const { min, max } = scope.row.content;
+      if (min || max) {
+        callback();
+      } else {
+        callback(new Error("大于和小于至少完整填写一个"));
+      }
+    }
+  },
   props: {
     list: {
       default: []
@@ -118,51 +213,3 @@ export default {
 };
 </script>
 
-<style lang="less" scoped>
-.ScoreResults {
-  width: 100%;
-  padding: 30px 30px 0 30px;
-  box-sizing: border-box;
-  h4 {
-    font-size: 14px;
-  }
-  /deep/.el-table th,
-  .el-table tr {
-    height: 50px;
-    background: #e3eaf4;
-  }
-  /deep/.el-table th {
-    padding: 0;
-  }
-  .btn_box {
-    width: 100%;
-    height: 100%;
-    display: flex;
-    align-items: center;
-    justify-content: space-around;
-    .btn_div {
-      flex: 1;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-    }
-    img {
-      width: 16px;
-      height: 16px;
-      cursor: pointer;
-    }
-  }
-  .range_box {
-    display: flex;
-    .range_child {
-      flex: 1;
-      &:nth-child(1) {
-        margin-right: 20px;
-      }
-    }
-  }
-  /deep/.el-input--mini .el-input__inner {
-    width: 100%;
-  }
-}
-</style>

+ 93 - 19
src/components/knowledgeExtra/AddAssess/index.vue

@@ -91,7 +91,7 @@
     }
   }
   .rich_text {
-    padding: 0 10px;
+    padding: 10px 37px;
   }
 }
 .rich_text {
@@ -243,7 +243,7 @@ it .ql-editor,
         <div class="rich_text" v-if="table.textType === 12">
           <el-form-item
             label="概述:"
-            label-width="100px"
+            label-width="70px"
             ref="editor"
             :prop="`klScaleParent[${tableIndex}].klScaleSaveGroup[0].content`"
             :rules="rules.fwbContent"
@@ -254,6 +254,7 @@ it .ql-editor,
               :options="editorOption"
               class="ql-editor"
               ref="quillEditor"
+              @change="onEditorChange($event)"
             ></quillEditor>
           </el-form-item>
         </div>
@@ -307,9 +308,9 @@ import rules from "./rules";
 const defaultDate = {
   groupId: new Date().valueOf().toString(),
   issueId: new Date().valueOf().toString() + "-" + new Date().valueOf(),
-  two_constant: "",
+  two_constant: 0,
   two_content: "",
-  two_factor: "",
+  two_factor: 1,
   two_orderNo: 0,
   two_remark: "",
   two_resultType: 0,
@@ -365,9 +366,9 @@ export default {
               {
                 groupId: 0,
                 issueId: 0,
-                two_constant: "",
+                two_constant:0,
                 two_content: "",
-                two_factor: "",
+                two_factor: 1,
                 two_orderNo: 0,
                 two_remark: "",
                 two_resultType: 0,
@@ -504,6 +505,18 @@ export default {
     };
   },
   methods: {
+    onEditorChange(e){
+       e.quill.deleteText(1000,4);
+       console.log(e.quill.getLength());
+      //  if(e.quill.getLength()>1000){
+
+      //  }
+      // if(this.form.intro==''){
+      //   this.TiLength=0
+      // }else{
+      //   this.TiLength=e.quill.getLength()-1
+      // }
+    },
     // 提交 (父级调用)
     assessCommit() {
       this.$refs["scaleFormRef"].validate((valid) => {
@@ -521,10 +534,9 @@ export default {
           return false;
         }
       });
-      console.log("/one/", this.scaleData);
       // 提交数据的处理 start....
       // 1. 新建一个整体对象
-      const obj = {
+      const params = {
         conceptId: 0,
         klScaleParent: [],
         modifier: "0"
@@ -532,11 +544,11 @@ export default {
       // 2. 遍历数据
       this.scaleData.klScaleParent.forEach((table, tableIndex) => {
         // 3. 将第一层数据格式顺序放进新对象(对应一个表格的数据)
-        obj.klScaleParent.push({
+        params.klScaleParent.push({
           ...table,
           klScaleSaveGroup: []
         });
-        // 4. 建立一个新数组  用于后边赋值  obj.klScaleParent[tableIndex].klScaleSaveGroup = groupArr;
+        // 4. 建立一个新数组  用于后边赋值  params.klScaleParent[tableIndex].klScaleSaveGroup = groupArr;
         let groupArr = [];
         // 5. 遍历数据 添加组、问题、以及选项。
         table.klScaleSaveGroup.forEach((group, groupIndex) => {
@@ -546,14 +558,14 @@ export default {
           // 6. 查看数组中有没有同组的,如果没有同组的,直接push
           if (groupFindIndex === -1) {
             groupArr.push({
-              groupNum: group.groupId,
+              groupNum: 0,
               klScaleSub: [
                 {
                   issueId: group.issueId,
                   constant: group.two_constant,
                   content: group.two_content,
                   factor: group.two_factor,
-                  orderNo: group.two_orderNo,
+                  orderNo: 0,
                   remark: group.two_remark,
                   resultType: group.two_resultType,
                   ruleCode: group.two_ruleCode,
@@ -564,7 +576,7 @@ export default {
                   klScaleDetail: [
                     {
                       content: group.content,
-                      orderNo: group.orderNo,
+                      orderNo: 0,
                       pushInfo: group.pushInfo,
                       remark: group.remark,
                       result: group.result,
@@ -591,7 +603,7 @@ export default {
                 constant: group.two_constant,
                 content: group.two_content,
                 factor: group.two_factor,
-                orderNo: group.two_orderNo,
+                orderNo: 0,
                 remark: group.two_remark,
                 resultType: group.two_resultType,
                 ruleCode: group.two_ruleCode,
@@ -602,7 +614,7 @@ export default {
                 klScaleDetail: [
                   {
                     content: group.content,
-                    orderNo: group.orderNo,
+                    orderNo: 0,
                     pushInfo: group.pushInfo,
                     remark: group.remark,
                     result: group.result,
@@ -619,7 +631,7 @@ export default {
                 issueIdFindIndex
               ].klScaleDetail.push({
                 content: group.content,
-                orderNo: group.orderNo,
+                orderNo: 0,
                 pushInfo: group.pushInfo,
                 remark: group.remark,
                 result: group.result,
@@ -631,11 +643,73 @@ export default {
             }
           }
         });
-        // 将groupArr赋值到提交数据中
-        obj.klScaleParent[tableIndex].klScaleSaveGroup = groupArr;
+        // 10. 将groupArr赋值到提交数据中
+        params.klScaleParent[tableIndex].klScaleSaveGroup = groupArr;
       });
 
-      console.dir(obj);
+      // 11.将得分结果中的content转成字符串  max和min
+      const scoreresultPatam = this.scoreresults.scoreresultsdatas.map(
+        (item, index) => {
+          return {
+            ...item,
+            orderNo: index,
+            content: JSON.stringify(item.content)
+          };
+        }
+      );
+      // 12. 创建一个得分结果的表格  并将数据赋值上
+      const table = {
+        constant: 0,
+        content: "得分结果",
+        factor: 0,
+        klScaleSaveGroup: [
+          {
+            groupNum: 0,
+            klScaleSub: [
+              {
+                constant: 0,
+                content: "得分范围",
+                factor: 0,
+                klScaleDetail: [...scoreresultPatam],
+                orderNo: 0,
+                remark: "string",
+                resultType: 0,
+                ruleCode: "string",
+                score: 0,
+                selectType: 0,
+                status: 0,
+                textType: 0
+              }
+            ]
+          }
+        ],
+        orderNo: 0,
+        remark: "string",
+        resultType: 0,
+        ruleCode: "string",
+        score: 0,
+        status: 0,
+        textType: 13
+      };
+      // 13. 将得分结果加入到提交数据中
+      params.klScaleParent.push(table);
+      // 14  提交数据设置新的orderNo,删除issueId
+      params.klScaleParent.forEach((tableItem, tableIndex) => {
+        tableItem.orderNo = tableIndex;
+        tableItem.klScaleSaveGroup.forEach((groupItem, groupIndex) => {
+          groupItem.groupNum = groupIndex;
+          groupItem.klScaleSub.forEach((issueItem, issueIndex) => {
+            issueItem.orderNo = issueIndex;
+            issueItem.issueId && delete issueItem.issueId;
+            issueItem.klScaleDetail.forEach((optionItem, optionIndex) => {
+              optionItem.orderNo = optionIndex;
+            });
+          });
+        });
+      });
+
+      console.dir(params);
+
       // 提交数据的处理 end....
     },
     /**

+ 5 - 1
src/components/knowledgeExtra/AddAssess/rules.js

@@ -18,9 +18,12 @@ export default {
   issueConstant: [
     { required: true, message: "请输入常数", trigger: ["blur"] },
   ],
-  score: [
+  content: [
     { required: true, message: "请输入选项内容", trigger: ["blur"] },
   ],
+  score: [
+    { required: true, message: "请输入分值", trigger: ["blur"] },
+  ],
   result: [
     { required: true, message: "请输入结果", trigger: ["blur"] },
   ],
@@ -30,6 +33,7 @@ export default {
   // 概述
   fwbContent: [
     { required: true, message: "请输入概述", trigger: ["blur"] },
+    { max: 1000, message: "最多输入1000字", trigger: ["blur"] },
   ],
   // 得分结果
   max: [

+ 34 - 13
src/components/knowledgeExtra/AddAssess/scale-table.vue

@@ -57,6 +57,14 @@
     margin-right: 4px;
   }
 }
+/deep/.el-form-item--mini.el-form-item,
+.el-form-item--small.el-form-item {
+  padding: 18px 0;
+  position: static;
+}
+/deep/ .el-textarea__inner {
+  overflow-y: hidden;
+}
 </style>
 <template>
   <div class="scaleTable" :id="`scaleTableRef[${tableIndex}]`">
@@ -166,11 +174,7 @@
             </div>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="two_content"
-          label="问题内容"
-          :width="tableResultType === 1 ? '140px' : ''"
-        >
+        <el-table-column prop="two_content" label="问题内容">
           <template slot="header">
             <div class="custom_table_header">问题内容</div>
           </template>
@@ -180,9 +184,13 @@
               :rules="rules.issueContent"
             >
               <el-input
-                type="text"
+                type="textarea"
+                rows="1"
+                :autosize="true"
+                resize="none"
                 v-model="scope.row.two_content"
                 clearable
+                maxlength="300"
                 placeholder="请输入"
               ></el-input>
             </el-form-item>
@@ -191,7 +199,7 @@
         <el-table-column
           prop="two_factor"
           label="系数"
-          width="70px"
+          width="90px"
           v-if="tableResultType === 2"
         >
           <template slot-scope="scope">
@@ -211,7 +219,7 @@
         <el-table-column
           prop="two_constant"
           label="常数"
-          width="70px"
+          width="90px"
           v-if="tableResultType === 2"
         >
           <template slot-scope="scope">
@@ -282,13 +290,17 @@
           </template>
           <template slot-scope="scope">
             <el-form-item
-            :prop="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].content`"
+              :prop="`klScaleParent[${tableIndex}].klScaleSaveGroup[${scope.$index}].content`"
               :rules="rules.content"
             >
               <el-input
-                type="text"
+                type="textarea"
+                rows="1"
+                :autosize="true"
+                resize="none"
                 v-model="scope.row.content"
                 clearable
+                maxlength="300"
                 placeholder="请输入"
               ></el-input>
             </el-form-item>
@@ -309,7 +321,8 @@
             >
               <el-input
                 type="text"
-                v-model="scope.row.score"
+                maxlength="6"
+                v-model.number="scope.row.score"
                 clearable
                 placeholder="请输入"
               ></el-input>
@@ -328,9 +341,13 @@
               :rules="rules.result"
             >
               <el-input
-                type="text"
+                type="textarea"
+                rows="1"
+                :autosize="true"
+                resize="none"
                 v-model="scope.row.result"
                 clearable
+                maxlength="300"
                 placeholder="请输入"
               ></el-input>
             </el-form-item>
@@ -347,9 +364,13 @@
               :rules="rules.pushInfo"
             >
               <el-input
-                type="text"
+                type="textarea"
+                rows="1"
+                :autosize="true"
+                resize="none"
                 v-model="scope.row.pushInfo"
                 clearable
+                maxlength="300"
                 placeholder="请输入"
               ></el-input>
             </el-form-item>