/**
|
* 模板属性效验规则
|
* @author wangting
|
* @date 2022-2-21
|
*/
|
layui.define(['layer','element','form','table','dynamicCondition' ,'tree'],function(exports){
|
var webUtil = $webUtil;
|
var Class = function(){
|
this.MODELNAME = "mdm/CodeClassifyVerifyUser";
|
this.moduleKey = "CodeClassifyVerifyUser";
|
this.id = "CodeClassifyVerifyUser";
|
this.backPath = configData.compatibility? path:configData.mdmService;
|
this.url = {
|
controller:'codeClassifyController/'
|
};
|
this.getContent=function(){
|
var that = this;
|
var filter = "verifyuser_" + that.id;
|
var html=[
|
'<div class="easyui-layout UIContentLayout" id="easyuiLayout_', filter, '" data-options="fit:true" style="display:block;overflow-y: hidden;">',
|
'<div data-options="region:\'west\',split:true" style="width:400px;padding: 5px;">',
|
'<div>',
|
'<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
'<div class="checkMsg_', filter, '" style="margin:-10px 0 10px 110px"></div>',
|
'<button class="layui-btn layui-btn-sm toolbar_', filter, '_check" style="margin:0 0 0 110px"><i class="layui-icon layui-icon-ok"></i>检查</button>',
|
'<button class="layui-btn layui-btn-sm toolbar_', filter, '_chear">清空内容</button>',
|
'<button class="layui-btn layui-btn-sm toolbar_',filter,'_add"> 确定 </button>',
|
'</div>',
|
'</div>',
|
'<div data-options="region:\'center\'" style="padding-left: 5px;padding-right: 5px;" id="border_', filter, '">',
|
'<div class="layui-center" style="overflow-y:auto;">',
|
'<table class="layui-table" lay-size="sm" lay-even lay-filter="table_' + filter + '" id="table_' + filter + '" ></table>',
|
'</div>',
|
'</div>',
|
'</div>'
|
]
|
return html.join('');
|
};
|
this.init=function(){
|
};
|
|
this.showReferDialog=function (options){
|
var that=this;
|
if(!options){
|
options={}
|
}
|
if(options.id){
|
that.id=options.id
|
}
|
var target = options.target;
|
var form = layui.form;
|
var table = layui.table;
|
var filter = "verifyuser_" + that.id;
|
var verifyuserIndex = webUtil.dialog({
|
title: '属性验证规则',
|
btn: [],
|
content: that.getContent(),
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero, layerIndex, classP) {
|
var easyuiLayout = $('#easyuiLayout_' + filter)
|
easyuiLayout.css({height: 600, width: 1050})
|
easyuiLayout.parent().parent().css({margin: '5px'})
|
easyuiLayout.layout();
|
form.addItems(filter, [{
|
field: 'regexp',
|
title: '正则表达式',
|
type: 'textarea',
|
textWidth: 240,
|
textStyle: 'height:200px;'
|
}, {
|
field: 'content',
|
title: '测试内容',
|
type: 'textarea',
|
textWidth: 240,
|
textStyle: 'height:200px;'
|
}],
|
function () {
|
form.setValues({regexp: options.value}, filter)
|
webUtil.relocationOpen(classP)
|
}, {}, {labelWidth: 110});
|
var tableData = that.getTableData()
|
table.render({
|
elem: '#table_' + filter,
|
id: 'table_' + filter,
|
height: 585,
|
limit: -1,
|
cols: [[{
|
field: 'name',
|
title: '表达式',
|
width: 300
|
}, {
|
field: 'description',
|
title: '使用说明',
|
width: 310
|
}]],
|
data: tableData,
|
done: function (res, cur, total) {
|
},
|
rowDBLClick: function (thisTableFilter, record) {
|
var regexpValue = form.getValues(filter).regexp;
|
regexpValue += record.name
|
form.setValues({regexp: regexpValue}, filter);
|
}
|
});
|
|
//清除内容
|
$('.toolbar_' + filter + '_chear').click(function () {
|
form.setValues({content: '',regexp:''}, filter);
|
$('.checkMsg_' + filter).text('')
|
})
|
//验证
|
$('.toolbar_' + filter + '_check').click(function () {
|
var values = form.getValues(filter);
|
if (values.regexp == '') {
|
$('.checkMsg_' + filter).text('正则表达式为空').css({color: 'red'})
|
return;
|
}
|
if(values.content=='') {
|
$('.checkMsg_' + filter).text('测试内容为空').css({color: 'red'})
|
return;
|
}
|
var reg = new RegExp(values.regexp);
|
if (reg.test(values.content)) {
|
$('.checkMsg_' + filter).text('检查通过').css({color: 'green'})
|
} else {
|
$('.checkMsg_' + filter).text('效验失败').css({color: 'red'})
|
}
|
})
|
//确定
|
$('.toolbar_'+filter+'_add').click(function (){
|
if (form.validata(filter)) {
|
var values = form.getValues(filter, true);
|
target.setValue(options.filter,options.name,values.regexp,values.regexp,true);
|
layer.close(verifyuserIndex);
|
}
|
})
|
}
|
});
|
}
|
this.getTableData=function (){
|
return [{name: '[\u3000\uff01-\uff5f]+', description: '全角符号'},
|
{name: '[^\u3000\uff01-\uff5f]+', description: '半角符号'},
|
{name: '(([-|+]{1}[\\d]+℃~[-|+]{1}[\\d]+℃)|无)', description: '温度范围,示例 -55℃~+125℃'},
|
{name: '[\\d]{15}|[\\d]{18}|[\\d]{17}X', description: '身份证号码(15或18位数字、17位数字X) '},
|
{name: '男|女|男性|女性', description: '中文性别'},
|
{name: '[\\d]+', description: '数字'},
|
{name: '[a-zA-Z]+', description: '字母'},
|
{name: '[A-Z]+', description: '大写字母'},
|
{name: '[a-z]+', description: '小写字母'},
|
{name: '[0-9a-zA-Z]+', description: '字母、数字组合'},
|
{name: '((0[\\d]{3}-[\\d]{7})|(0[\\d]{2}-[\\d]{8})|([\\d]{7,8}))', description: '电话号码'},
|
{name: '-?[1-9]\\d*', description: '整数'},
|
{name: '[1-9]\\d*', description: '正整数'},
|
{name: '-[1-9]\\d*', description: '负整数'},
|
{name: '-[1-9]\\d*|0', description: '非正整数(负整数+0)'},
|
{name: '[1-9]\\d*|0', description: '非负整数(正整数+0)'},
|
{name: '-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)', description: '浮点数'},
|
{name: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '正浮点数'},
|
{name: '-[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*', description: '负浮点数'},
|
{name: '[(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0', description: '非正浮点数(负浮点数 + 0)'},
|
{name: '[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0', description: '非负浮点数(正浮点数 + 0)'},
|
{name: 'x', description: '字符 x'},
|
{name: '\\\\', description: '反斜线字符'},
|
{name: '\\0n', description: '带有八进制值 0 的字符 n (0 <= n <= 7)'},
|
{name: '\\0nn', description: '带有八进制值 0 的字符 nn (0 <= n <= 7)'},
|
{name: '\\0mnn', description: '带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)'},
|
{name: '\\xhh', description: '带有十六进制值 0x 的字符 hh'},
|
{name: '\\uhhhh', description: '带有十六进制值 0x 的字符 hhhh'},
|
{name: '\\t', description: '制表符 (\'\u0009\')'},
|
{name: '\\n', description: '新行(换行)符 (\'\u000A\')'},
|
{name: '\\r', description: '回车符 (\'\u000D\')'},
|
{name: '\\f', description: '换页符 (\'\u000C\')'},
|
{name: '\\a', description: '报警 (bell) 符 (\'\u0007\')'},
|
{name: '\\e', description: '转义符 (\'\u001B\')'},
|
{name: '\\cx', description: '对应于 x 的控制符'},
|
{name: '[abc]', description: 'a、b 或 c(简单类)'},
|
{name: '[^abc]', description: '任何字符,除了 a、b 或 c(否定)'},
|
{name: '[a-zA-Z]', description: 'a 到 z 或 A 到 Z,两头的字母包括在内(范围)'},
|
{name: '[a-d[m-p]]', description: 'a 到 d 或 m 到 p:[a-dm-p](并集)'},
|
{name: '[a-z&&[def]]', description: '\td、e 或 f(交集)'},
|
{name: '[a-z&&[^bc]]', description: 'a 到 z,除了 b 和 c:[ad-z](减去)'},
|
{name: '[a-z&&[^m-p]]', description: 'a 到 z,而非 m 到 p:[a-lq-z](减去)'},
|
{name: '.', description: '任何字符(与行结束符可能匹配也可能不匹配)'},
|
{name: '\\d', description: '数字:[0-9]'},
|
{name: '\\D', description: '非数字: [^0-9]'},
|
{name: '\\s', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
|
{name: '\\S', description: '非空白字符:[^\\s]'},
|
{name: '\\w', description: '单词字符:[a-zA-Z_0-9]'},
|
{name: '\\W', description: '非单词字符:[^\\w]'},
|
{name: '\\p{Lower}', description: '小写字母字符:[a-z]'},
|
{name: '\\p{Upper}', description: '大写字母字符:[A-Z]'},
|
{name: '\\p{ASCII}', description: '所有 ASCII:[\x00-\x7F]'},
|
{name: '\\p{Alpha}', description: '字母字符:[\\p{Lower}\\p{Upper}]'},
|
{name: '\\p{Digit}', description: '十进制数字:[0-9]'},
|
{name: '\\p{Alnum}', description: '字母数字字符:[\\p{Alpha}\\p{Digit}]'},
|
{name: '\\p{Punct}', description: '标点符号:!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'},
|
{name: '\\p{Graph}', description: '可见字符:[\\p{Alnum}\\p{Punct}]'},
|
{name: '\\p{Print}', description: '可打印字符:[\\p{Graph}\x20]'},
|
{name: '\\p{Blank}', description: '空格或制表符:[ \\t]'},
|
{name: '\\p{Cntrl}', description: '控制字符:[\x00-\x1F\x7F]'},
|
{name: '\\p{XDigit}', description: '十六进制数字:[0-9a-fA-F]'},
|
{name: '\\p{Space}', description: '空白字符:[ \\t\\n\x0B\\f\\r]'},
|
{name: '\\p{javaLowerCase}', description: '等效于 java.lang.Character.isLowerCase()'},
|
{name: '\\p{javaUpperCase}', description: '等效于 java.lang.Character.isUpperCase()'},
|
{name: '\\p{javaWhitespace}', description: '等效于 java.lang.Character.isWhitespace()'},
|
{name: '\\p{javaMirrored}', description: '等效于 java.lang.Character.isMirrored()'},
|
{name: '\\p{InGreek}', description: 'Greek 块(简单块)中的字符'},
|
{name: '\\p{Lu}', description: '大写字母(简单类别)'},
|
{name: '\\p{Sc}', description: '货币符号'},
|
{name: '\\P{InGreek}', description: '所有字符,Greek 块中的除外(否定)'},
|
{name: '[\\p{L}&&[^\\p{Lu}]]', description: '所有字母,大写字母除外(减去)'},
|
{name: '^', description: '行的开头'},
|
{name: '$', description: '行的结尾'},
|
{name: '\\b', description: '单词边界'},
|
{name: '\\B', description: '非单词边界'},
|
{name: '\\A', description: '输入的开头'},
|
{name: '\\G', description: '上一个匹配的结尾'},
|
{name: '\\Z', description: '输入的结尾,仅用于最后的结束符(如果有的话)'},
|
{name: '\\z', description: '输入的结尾'},
|
{name: 'X ?', description: 'X,一次或一次也没有'},
|
{name: 'X *', description: 'X,零次或多次'},
|
{name: 'X +', description: 'X,一次或多次'},
|
{name: 'X {n }', description: 'X,恰好 n 次'},
|
{name: 'X {n ,}', description: 'X,至少 n 次'},
|
{name: 'X {n ,m }', description: 'X,至少 n 次,但是不超过 m 次'},
|
{name: 'X ??', description: 'X,一次或一次也没有'},
|
{name: 'X *?', description: 'X,零次或多次'},
|
{name: 'X +?', description: 'X,一次或多次'},
|
{name: 'X {n }?', description: 'X,恰好 n 次'},
|
{name: 'X {n ,}?', description: 'X,至少 n 次'},
|
{name: 'X {n ,m }?', description: 'X,至少 n 次,但是不超过 m 次'},
|
{name: 'X ?+', description: 'X,一次或一次也没有'},
|
{name: 'X *+', description: 'X,零次或多次'},
|
{name: 'X ++', description: 'X,一次或多次'},
|
{name: 'X {n }+', description: 'X,恰好 n 次'},
|
{name: 'X {n ,}+', description: 'X,至少 n 次'},
|
{name: 'X {n ,m }+', description: 'X,至少 n 次,但是不超过 m 次'},
|
{name: 'XY', description: 'X 后跟 Y'},
|
{name: 'X |Y', description: 'X 或 Y'},
|
{name: '(X )', description: 'X,作为捕获组'},
|
{name: '\\n', description: '任何匹配的 n<sup>th</sup> 捕获组'},
|
{name: '\\', description: 'Nothing,但是引用以下字符'},
|
{name: '\\Q', description: 'Nothing,但是引用所有字符,直到 \\E'},
|
{name: '\\E', description: 'Nothing,但是结束从 \\Q 开始的引用'},
|
{name: '(?:X )', description: 'X,作为非捕获组'},
|
{name: '(?idmsux-idmsux)', description: 'Nothing,但是将匹配标志由 on 转为 off'},
|
{name: '(?idmsux-idmsux:X )', description: 'X,作为带有给定标志 on - off 的非捕获组'},
|
{name: '(?=X )', description: 'X,通过零宽度的正 lookahead'},
|
{name: '(?!X )', description: 'X,通过零宽度的负 lookahead'},
|
{name: '(?<=X )', description: 'X,通过零宽度的正 lookbehind'},
|
{name: '(?<!X )', description: 'X,通过零宽度的负 lookbehind'},
|
{name: '(?>X )', description: 'X,作为独立的非捕获组'}
|
]
|
}
|
this.refresh = function (buttonid,ele) {
|
};
|
this.ADVQUERY = function () {
|
var that = this;
|
};
|
};
|
var cs = new Class();
|
exports(cs.MODELNAME,cs);
|
});
|