浏览代码

拼音框中输入汉字时,输入框下面红字提示“术语拼音仅支持字母、数字和标点符号”,输入中文时无法保存

morphone1995 4 年之前
父节点
当前提交
ce01606e47
共有 1 个文件被更改,包括 21 次插入7 次删除
  1. 21 7
      src/components/cdssManage/knowledge/AddKnowledge.vue

+ 21 - 7
src/components/cdssManage/knowledge/AddKnowledge.vue

@@ -37,7 +37,7 @@
               ></el-input>
             </el-form-item>
             <el-form-item label="术语拼音" prop="pycode">
-              <el-input v-model.trim="form.pycode" placeholder="请输入术语拼音"></el-input>
+              <el-input v-model.trim="form.pycode" placeholder="请输入术语拼音" ref="pycode"></el-input>
             </el-form-item>
             <!-- 诊断 -->
             <DiseaseForm v-if="form.labelType==='医保疾病名称'" :data="form" @handleInput="handleInput"></DiseaseForm>
@@ -141,6 +141,16 @@ export default {
     CommonForm
   },
   data() {
+    let reg = /^[a-zA-Z0-9:.,?!@]{0,100}[#$^]?$/;
+    let checkFrequency = (rule, value, callback) => {
+      let pycode = this.$refs.pycode.value;
+      console.log(pycode);
+      if (!reg.test(pycode.trim())) {
+        callback('术语拼音仅支持字母、数字和标点符号');
+      } else {
+        callback();
+      }
+    };
     return {
       form: {
         age: '', //年龄
@@ -189,7 +199,12 @@ export default {
           { max: 100, message: '最多输入100字', trigger: 'blur' }
         ],
         pycode: [
-          { required: true, message: '请输入术语拼音', trigger: 'change' }
+          { required: true, message: '请输入术语拼音', trigger: 'change' },
+          {
+            required: true,
+            validator: checkFrequency,
+            trigger: ['blur', 'change']
+          }
         ]
       },
       isEdit: false,
@@ -197,7 +212,7 @@ export default {
       nameFlag: '', // 判断术语名称是否被修改
       isValidate: true,
       id: '',
-      isTrans: true   // 拼音是否转换成功
+      isTrans: true // 拼音是否转换成功
     };
   },
   watch: {},
@@ -447,8 +462,8 @@ export default {
       });
     },
 
-    handleInput(val){
-      this.isTrans = false
+    handleInput(val) {
+      this.isTrans = false;
     },
 
     // 处理拼音转换&验证唯一性
@@ -483,14 +498,13 @@ export default {
               this.rules.name = this.rules.name.slice(0, 1); // 删除校验
             } else {
               this.isValidate = true; // 校验通过
-              this.isTrans = true
+              this.isTrans = true;
               // 不存在
               this.form.pycode = pinyin.getCamelChars(e.target.value);
             }
           }
         });
       }
-      
     }
   }
 };