田源
2023-06-15 859a64b36d107b147f44eccd0c0a76471c5e49ea
Source/UBCS-WEB/src/components/Tree/attrCrud.vue
@@ -33,8 +33,12 @@
    </template>
<!--    组合规则-->
    <template slot="menuLeft">
      <el-button size="small" @click="isShowformulaEdit=true">组合规则</el-button>
        <formula-editor :visible.sync="isShowformulaEdit" :systemVariableTableData="systemVariableTableData" :thisSceneTableData="thisSceneTableData"></formula-editor>
      <el-button size="small" @click="isShowHandler">组合规则</el-button>
        <formula-editor :visible.sync="isShowformulaEdit"
                        :systemVariableTableData="systemVariableTableData"
                        :thisSceneTableData="thisSceneTableData"
                        @updateFormulaContent="updataFormlaContent"
        ></formula-editor>
    </template>
    <!--        验证规则-->
@@ -266,6 +270,7 @@
      type:Boolean,
      default:false
    },
  },
  data() {
    return {
@@ -696,20 +701,130 @@
          },
          {
            label: "使用说明",
            prop: "shiyong"
            prop: "description"
          }
        ]
      },
      //属性验证规则data
      rulesData: [
        {
          bds: "测试一",
          shiyong: "测试一"
        },
        {bds: '[\u3000\uff01-\uff5f]+', description: '全角符号'},
    {bds: '[^\u3000\uff01-\uff5f]+', description: '半角符号'},
    {bds: '(([-|+]{1}[\\d]+℃~[-|+]{1}[\\d]+℃)|无)', description: '温度范围,示例 -55℃~+125℃'},
    {bds: '[\\d]{15}|[\\d]{18}|[\\d]{17}X', description: '身份证号码(15或18位数字、17位数字X) '},
    {bds: '男|女|男性|女性', description: '中文性别'},
    {bds: '[\\d]+', description: '数字'},
    {bds: '[a-zA-Z]+', description: '字母'},
    {bds: '[A-Z]+', description: '大写字母'},
    {bds: '[a-z]+', description: '小写字母'},
    {bds: '[0-9a-zA-Z]+', description: '字母、数字组合'},
    {bds: '((0[\\d]{3}-[\\d]{7})|(0[\\d]{2}-[\\d]{8})|([\\d]{7,8}))', description: '电话号码'},
    {bds: '-?[1-9]\\d*', description: '整数'},
    {bds: '[1-9]\\d*', description: '正整数'},
    {bds: '-[1-9]\\d*', description: '负整数'},
    {bds: '-[1-9]\\d*|0', description: '非正整数(负整数+0)'},
    {bds: '[1-9]\\d*|0', description: '非负整数(正整数+0)'},
    {bds: '-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)', description: '浮点数'},
    {bds: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '正浮点数'},
    {bds: '-[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '负浮点数'},
    {bds: '[(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0', description: '非正浮点数(负浮点数 + 0)'},
    {bds: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0', description: '非负浮点数(正浮点数 + 0)'},
    {bds: 'x', description: '字符 x'},
    {bds: '\\\\', description: '反斜线字符'},
    {bds: '\\0n', description: '带有八进制值 0 的字符 n (0 <= n <= 7)'},
    {bds: '\\0nn', description: '带有八进制值 0 的字符 nn (0 <= n <= 7)'},
    {bds: '\\0mnn', description: '带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)'},
    {bds: '\\xhh', description: '带有十六进制值 0x 的字符 hh'},
    {bds: '\\uhhhh', description: '带有十六进制值 0x 的字符 hhhh'},
    {bds: '\\t', description: '制表符 (\'\u0009\')'},
    {bds: '\\n', description: '新行(换行)符 (\'\u000A\')'},
    {bds: '\\r', description: '回车符 (\'\u000D\')'},
    {bds: '\\f', description: '换页符 (\'\u000C\')'},
    {bds: '\\a', description: '报警 (bell) 符 (\'\u0007\')'},
    {bds: '\\e', description: '转义符 (\'\u001B\')'},
    {bds: '\\cx', description: '对应于 x 的控制符'},
    {bds: '[abc]', description: 'a、b 或 c(简单类)'},
    {bds: '[^abc]', description: '任何字符,除了 a、b 或 c(否定)'},
    {bds: '[a-zA-Z]', description: 'a 到 z 或 A 到 Z,两头的字母包括在内(范围)'},
    {bds: '[a-d[m-p]]', description: 'a 到 d 或 m 到 p:[a-dm-p](并集)'},
    {bds: '[a-z&&[def]]', description: '\td、e 或 f(交集)'},
    {bds: '[a-z&&[^bc]]', description: 'a 到 z,除了 b 和 c:[ad-z](减去)'},
    {bds: '[a-z&&[^m-p]]', description: 'a 到 z,而非 m 到 p:[a-lq-z](减去)'},
    {bds: '.', description: '任何字符(与行结束符可能匹配也可能不匹配)'},
    {bds: '\\d', description: '数字:[0-9]'},
    {bds: '\\D', description: '非数字: [^0-9]'},
    {bds: '\\s', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
    {bds: '\\S', description: '非空白字符:[^\\s]'},
    {bds: '\\w', description: '单词字符:[a-zA-Z_0-9]'},
    {bds: '\\W', description: '非单词字符:[^\\w]'},
    {bds: '\\p{Lower}', description: '小写字母字符:[a-z]'},
    {bds: '\\p{Upper}', description: '大写字母字符:[A-Z]'},
    {bds: '\\p{ASCII}', description: '所有 ASCII:[\x00-\x7F]'},
    {bds: '\\p{Alpha}', description: '字母字符:[\\p{Lower}\\p{Upper}]'},
    {bds: '\\p{Digit}', description: '十进制数字:[0-9]'},
    {bds: '\\p{Alnum}', description: '字母数字字符:[\\p{Alpha}\\p{Digit}]'},
    {bds: '\\p{Punct}', description: '标点符号:!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'},
    {bds: '\\p{Graph}', description: '可见字符:[\\p{Alnum}\\p{Punct}]'},
    {bds: '\\p{Print}', description: '可打印字符:[\\p{Graph}\x20]'},
    {bds: '\\p{Blank}', description: '空格或制表符:[ \\t]'},
    {bds: '\\p{Cntrl}', description: '控制字符:[\x00-\x1F\x7F]'},
    {bds: '\\p{XDigit}', description: '十六进制数字:[0-9a-fA-F]'},
    {bds: '\\p{Space}', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
    {bds: '\\p{javaLowerCase}', description: '等效于 java.lang.Character.isLowerCase()'},
    {bds: '\\p{javaUpperCase}', description: '等效于 java.lang.Character.isUpperCase()'},
    {bds: '\\p{javaWhitespace}', description: '等效于 java.lang.Character.isWhitespace()'},
    {bds: '\\p{javaMirrored}', description: '等效于 java.lang.Character.isMirrored()'},
    {bds: '\\p{InGreek}', description: 'Greek 块(简单块)中的字符'},
    {bds: '\\p{Lu}', description: '大写字母(简单类别)'},
    {bds: '\\p{Sc}', description: '货币符号'},
    {bds: '\\P{InGreek}', description: '所有字符,Greek 块中的除外(否定)'},
    {bds: '[\\p{L}&&[^\\p{Lu}]]', description: '所有字母,大写字母除外(减去)'},
    {bds: '^', description: '行的开头'},
    {bds: '$', description: '行的结尾'},
    {bds: '\\b', description: '单词边界'},
    {bds: '\\B', description: '非单词边界'},
    {bds: '\\A', description: '输入的开头'},
    {bds: '\\G', description: '上一个匹配的结尾'},
    {bds: '\\Z', description: '输入的结尾,仅用于最后的结束符(如果有的话)'},
    {bds: '\\z', description: '输入的结尾'},
    {bds: 'X ?', description: 'X,一次或一次也没有'},
    {bds: 'X *', description: 'X,零次或多次'},
    {bds: 'X +', description: 'X,一次或多次'},
    {bds: 'X {n }', description: 'X,恰好 n 次'},
    {bds: 'X {n ,}', description: 'X,至少 n 次'},
    {bds: 'X {n ,m }', description: 'X,至少 n 次,但是不超过 m 次'},
    {bds: 'X ??', description: 'X,一次或一次也没有'},
    {bds: 'X *?', description: 'X,零次或多次'},
    {bds: 'X +?', description: 'X,一次或多次'},
    {bds: 'X {n }?', description: 'X,恰好 n 次'},
    {bds: 'X {n ,}?', description: 'X,至少 n 次'},
    {bds: 'X {n ,m }?', description: 'X,至少 n 次,但是不超过 m 次'},
    {bds: 'X ?+', description: 'X,一次或一次也没有'},
    {bds: 'X *+', description: 'X,零次或多次'},
    {bds: 'X ++', description: 'X,一次或多次'},
    {bds: 'X {n }+', description: 'X,恰好 n 次'},
    {bds: 'X {n ,}+', description: 'X,至少 n 次'},
    {bds: 'X {n ,m }+', description: 'X,至少 n 次,但是不超过 m 次'},
    {bds: 'XY', description: 'X 后跟 Y'},
    {bds: 'X |Y', description: 'X 或 Y'},
    {bds: '(X )', description: 'X,作为捕获组'},
    {bds: '\\n', description: '任何匹配的 n<sup>th</sup> 捕获组'},
    {bds: '\\', description: 'Nothing,但是引用以下字符'},
    {bds: '\\Q', description: 'Nothing,但是引用所有字符,直到 \\E'},
    {bds: '\\E', description: 'Nothing,但是结束从 \\Q 开始的引用'},
    {bds: '(?:X )', description: 'X,作为非捕获组'},
    {bds: '(?idmsux-idmsux)', description: 'Nothing,但是将匹配标志由 on 转为 off'},
    {bds: '(?idmsux-idmsux:X )', description: 'X,作为带有给定标志 on - off 的非捕获组'},
    {bds: '(?=X )', description: 'X,通过零宽度的正 lookahead'},
    {bds: '(?!X )', description: 'X,通过零宽度的负 lookahead'},
    {bds: '(?<=X )', description: 'X,通过零宽度的正 lookbehind'},
    {bds: '(?<!X )', description: 'X,通过零宽度的负 lookbehind'},
    {bds: '(?>X )', description: 'X,作为独立的非捕获组'}
      ],
      // 新增业务类型
      businessData: [],
      businessOption: {
        indexClassName:"序号",
        indexLabelClassName:'序号',
        index: true,
        border: true,
        addBtn: false,
@@ -1178,7 +1293,9 @@
    },
    //验证规则检查
    rulesExamine() {
      if(this.RulesForm.expressionText.test(this.RulesForm.TestContent)){
        this.$message.success('校验成功')
      }
    },
    //点击分类注入按钮
    injectBtn(){
@@ -1273,6 +1390,16 @@
      //   console.log(res)
      // })
    },
    //组合规则
    isShowHandler(){
      if(this.CrudSelect.length>1){
        this.$message.warning('只能选择一条模板属性数据')
      }else if(this.CrudSelect.length<1){
        this.$message.warning('请选择一条模板属性数据')
      }else if(this.CrudSelect.length === 1){
       this.isShowformulaEdit=true;
      }
    },
    //全屏编辑
    fullscreenHandle(){
      if(this.crudArray.length<1){
@@ -1290,6 +1417,10 @@
      this.attrEditVisible=false;
      console.log(this.attrEditVisible)
    },
    updataFormlaContent(val){
      console.log(val)
      this.$set(this.attrRow,'componentRule',val)
    },
    // 排序
    sortChange(val) {
      console.log(val)