Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
N
nse-ui
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
吴超
nse-ui
Commits
f49582cd
Commit
f49582cd
authored
Aug 23, 2025
by
周海峰
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://code.palacesun.com/wuchao/nse-ui
parents
b8ac88fb
0edeea68
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
391 行增加
和
81 行删除
+391
-81
src/api/ruleConfig/dict/discover.js
+44
-0
src/api/ruleConfig/discover.js
+54
-0
src/components/collapseView/index.vue
+11
-7
src/views/ruleConfig/Discover/index.vue
+55
-19
src/views/ruleConfig/Discover/modules/AddDomain.vue
+1
-5
src/views/ruleConfig/Discover/modules/AddRules.vue
+226
-50
没有找到文件。
src/api/ruleConfig/dict/discover.js
0 → 100644
View file @
f49582cd
// 发现方式
export
const
discoverTypeList
=
[
{
label
:
"字段"
,
value
:
"1"
,
},
{
label
:
"数据"
,
value
:
"2"
,
},
]
// 发现规则类型
export
const
singleDiscoverRuleType
=
[
{
label
:
"正则表达式"
,
value
:
"01"
,
},
{
label
:
"自定义方法"
,
value
:
"04"
,
},
{
label
:
"字典发现"
,
value
:
"03"
,
},
]
// 匹配方式
export
const
matchingList
=
[
{
value
:
"001"
,
label
:
'等于'
},
{
value
:
"002"
,
label
:
'包含'
},
{
value
:
"003"
,
label
:
'左匹配'
},
{
value
:
"004"
,
label
:
'右匹配'
},
]
\ No newline at end of file
src/api/ruleConfig/discover.js
View file @
f49582cd
...
...
@@ -63,4 +63,57 @@ export function getDictinaryTypes(query) {
method
:
'get'
,
params
:
query
})
}
/**
* 发现规则 - 增加规则
* @param {*} data
* @returns
*/
export
function
addRule
(
data
)
{
return
request
({
url
:
'/core/searchregex/add'
,
method
:
'post'
,
data
:
data
})
}
/**
* 发现规则 - 删除规则
* @param {*} data
* @returns
*/
export
function
delRule
(
data
)
{
return
request
({
url
:
'/core/searchregex/del'
,
method
:
'post'
,
data
:
data
})
}
/**
* 发现规则 - 设置默认规则
* @param {*} data
* @returns
*/
export
function
setdefault
(
data
)
{
return
request
({
url
:
'/core/searchregex/setdefault'
,
method
:
'post'
,
data
:
data
})
}
/**
* 发现规则 - 设置测试
* @param {*} data
* @returns
*/
export
function
testRegex
(
data
)
{
return
request
({
url
:
'/core/searchregex/testRegex'
,
method
:
'post'
,
data
:
data
})
}
\ No newline at end of file
src/components/collapseView/index.vue
View file @
f49582cd
...
...
@@ -26,17 +26,21 @@ const mainDeletion = (item) => {
}
// 子级监听
const
itemClick
=
(
item
)
=>
{
emit
(
"change"
,
item
);
const
itemClick
=
(
item1
,
item2
)
=>
{
const
data
=
{
parentItem
:
item1
,
item
:
item2
}
emit
(
"change"
,
data
);
}
// 默认项
const
defaultClick
=
(
item
)
=>
{
const
defaultClick
=
(
item
)
=>
{
emit
(
"default"
,
item
);
}
// 子删除
const
childDelete
=
(
item
)
=>
{
const
childDelete
=
(
item
)
=>
{
emit
(
"childDelete"
,
item
);
}
</
script
>
...
...
@@ -58,11 +62,11 @@ const childDelete = (item) => {
</span>
<template
#
content
>
<div>
<div
class=
"rule__item"
v-for=
"(itemTwo, i) in item.list"
:key=
"i"
@
click=
"itemClick(itemTwo)"
>
<div
class=
"rule__item"
v-for=
"(itemTwo, i) in item.list"
:key=
"i"
@
click=
"itemClick(item
,item
Two)"
>
<span>
{{
itemTwo
.
name
}}
</span>
<div
class=
"default"
></div>
<div
class=
"default"
v-if=
"itemTwo.defaulttype === '1'"
></div>
<div
class=
"rule__item__btns"
>
<el-icon
color=
"#2c9ef7"
:size=
"15"
v-if=
"itemTwo.isCheck"
@
click
.
stop=
"defaultClick(itemTwo)"
style=
"margin-right: 8px;"
>
<el-icon
color=
"#2c9ef7"
:size=
"15"
v-if=
"itemTwo.isCheck
&& itemTwo.defaulttype !== '1'
"
@
click
.
stop=
"defaultClick(itemTwo)"
style=
"margin-right: 8px;"
>
<circle-check
/>
</el-icon>
<el-icon
color=
"rgb(13, 215, 141)"
:size=
"15"
v-if=
"itemTwo.isDelete"
@
click
.
stop=
"childDelete(itemTwo)"
>
...
...
src/views/ruleConfig/Discover/index.vue
View file @
f49582cd
...
...
@@ -7,18 +7,17 @@ import AddDomain from './modules/AddDomain.vue' // 数据域表单
import
AddRules
from
'./modules/AddRules.vue'
// 发现规则表单
import
ModalPop
from
"@/components/EditPop/ModalPop.vue"
import
{
query
,
getDictinaryTypes
,
delDataArea
}
from
'@/api/ruleConfig/discover'
import
{
query
,
delDataArea
,
delRule
,
setdefault
}
from
'@/api/ruleConfig/discover'
const
splitNum
=
ref
(
0.31
)
// 左右分割比例
const
collapseList
=
ref
([])
// 数据域数据
const
dictinaryTypeList
=
ref
([])
// 字典分类数据
const
data
=
reactive
({
domainForm
:
{
},
rulesForm
:
{
},
queryParams
:
{
areaType
:
"0"
,
...
...
@@ -66,8 +65,9 @@ const getCollapse = () => {
isDelete
:
true
,
}
})
if
(
collapseList
.
value
.
length
<
0
)
return
if
(
collapseList
.
value
.
length
<
0
)
return
domainForm
.
value
=
collapseList
.
value
[
0
]
rightType
.
value
=
'domain'
})
}
...
...
@@ -85,8 +85,13 @@ const addDomainClick = () => {
}
// 新增发现规则
const
collapseAdd
=
()
=>
{
console
.
log
(
'新增发现规则'
)
const
collapseAdd
=
(
item
)
=>
{
console
.
log
(
'新增发现规则'
,
item
)
const
{
id
,
dataarea
}
=
item
rulesForm
.
value
=
{
dataarea_id
:
id
,
type
:
dataarea
}
modalPopData
.
title
=
'新增发现规则'
modalPopData
.
type
=
'rules'
modalPopData
.
show
=
true
...
...
@@ -95,6 +100,7 @@ const collapseAdd = () => {
// 删除发现规则
const
collapseDelete
=
(
item
)
=>
{
console
.
log
(
'删除发现规则'
,
item
)
delData
.
value
=
item
modalData
.
type
=
'rules'
modalData
.
cancel
=
true
modalData
.
icon
=
'error'
...
...
@@ -132,8 +138,35 @@ const modalConfirm = () => {
})
}
else
if
(
modalData
.
type
===
'rules'
)
{
console
.
log
(
'删除发现规则确认'
)
const
data
=
{
ruleid
:
delData
.
value
.
ruleid
,
rulename
:
delData
.
value
.
name
,
tid
:
delData
.
value
.
tid
}
delRule
(
data
).
then
(
res
=>
{
const
{
flag
}
=
res
if
(
flag
)
{
ElMessage
.
success
(
'删除成功'
)
getCollapse
()
}
else
{
ElMessage
.
error
(
'删除失败'
)
}
})
}
else
if
(
modalData
.
type
===
'default'
)
{
console
.
log
(
'设置默认项'
)
const
data
=
{
ruleid
:
delData
.
value
.
ruleid
,
rulename
:
delData
.
value
.
name
,
}
setdefault
(
data
).
then
(
res
=>
{
const
{
flag
}
=
res
if
(
flag
)
{
ElMessage
.
success
(
'设置成功'
)
getCollapse
()
}
else
{
ElMessage
.
error
(
'设置失败'
)
}
})
}
modalData
.
show
=
false
}
...
...
@@ -146,12 +179,20 @@ const viewClick = (item) => {
// 规则点击监听
const
collapseChange
=
(
item
)
=>
{
rulesForm
.
value
=
item
const
{
id
,
dataarea
}
=
item
.
parentItem
rulesForm
.
value
=
{
...
item
.
item
,
...{
dataarea_id
:
id
,
type
:
dataarea
}
}
rightType
.
value
=
'rules'
}
// 发现规则设置默认项
const
collapseDefault
=
(
item
)
=>
{
delData
.
value
=
item
modalData
.
type
=
'default'
modalData
.
cancel
=
false
modalData
.
icon
=
'error'
...
...
@@ -166,20 +207,13 @@ const AddFormConfirm = (item) => {
getCollapse
()
}
else
if
(
modalPopData
.
type
===
'rules'
)
{
console
.
log
(
'新增发现规则确认'
,
item
)
getCollapse
()
}
modalPopData
.
show
=
false
}
const
getDictionaryTypesFunc
=
()
=>
{
getDictinaryTypes
({}).
then
(
res
=>
{
const
{
data
}
=
res
dictinaryTypeList
.
value
=
data
})
}
onMounted
(()
=>
{
getCollapse
()
getDictionaryTypesFunc
()
})
</
script
>
...
...
@@ -193,8 +227,10 @@ onMounted(() => {
<div
class=
"app-container__body"
>
<Split
v-model=
"splitNum"
>
<
template
#
left
>
<div
class=
"demo-split-pane"
style=
"padding: 0 0 10px 0;width: 100%;overflow: auto;height: 100%;display: flex;flex-direction: column;"
>
<div
class=
"mb20"
style=
"padding-right: 38px;display: flex;align-items: center;justify-content: space-between;"
>
<div
class=
"demo-split-pane"
style=
"padding: 0 0 10px 0;width: 100%;overflow: auto;height: 100%;display: flex;flex-direction: column;"
>
<div
class=
"mb20"
style=
"padding-right: 38px;display: flex;align-items: center;justify-content: space-between;"
>
<el-input
class=
"mr20"
v-model=
"queryParams.rulename"
placeholder=
"数据域名称搜索"
>
<template
#
suffix
>
<el-icon
style=
"vertical-align: middle;cursor: pointer;"
@
click=
"getCollapse"
>
...
...
@@ -237,7 +273,7 @@ onMounted(() => {
<
template
#
content
>
<AddDomain
type=
"add"
@
cancel=
"modalPopCancel"
@
confirm=
"AddFormConfirm"
v-if=
"modalPopData.type === 'domain'"
/>
<AddRules
type=
"add"
@
cancel=
"modalPopCancel"
@
confirm=
"AddFormConfirm"
<AddRules
type=
"add"
:itemData=
"rulesForm"
@
cancel=
"modalPopCancel"
@
confirm=
"AddFormConfirm"
v-if=
"modalPopData.type === 'rules'"
/>
</
template
>
</ModalPop>
...
...
src/views/ruleConfig/Discover/modules/AddDomain.vue
View file @
f49582cd
...
...
@@ -27,7 +27,6 @@ const data = reactive({
});
const
{
form
,
rules
}
=
toRefs
(
data
);
const
readOnly
=
ref
(
true
);
const
formRef
=
ref
<
FormInstance
>
();
...
...
@@ -91,10 +90,7 @@ const addDataAreaFun = () => {
addDataArea
({
tCoreDataArea
:
tCoreDataArea
}).
then
(
res
=>
{
const
{
flag
}
=
res
if
(
flag
)
{
ElMessage
.
success
({
message
:
props
.
type
===
'add'
?
'新增成功'
:
'修改成功'
,
type
:
'success'
,
})
ElMessage
.
success
(
props
.
type
===
"add"
?
"新增成功"
:
"修改成功"
);
if
(
props
.
type
===
'edit'
)
{
readOnly
.
value
=
true
}
...
...
src/views/ruleConfig/Discover/modules/AddRules.vue
View file @
f49582cd
<
script
setup
lang=
"ts"
name=
"AddRules"
>
import
{
onMounted
,
reactive
,
ref
,
toRefs
,
watch
}
from
"vue"
;
import
{
Switch
}
from
"view-ui-plus"
;
import
type
{
FormInstance
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
getDictinaryTypes
}
from
"@/api/ruleConfig/discover"
;
import
{
addRule
,
testRegex
}
from
"@/api/ruleConfig/discover"
;
import
{
discoverTypeList
,
singleDiscoverRuleType
,
matchingList
,
}
from
"@/api/ruleConfig/dict/discover"
;
const
props
=
defineProps
<
{
modelValue
:
boolean
;
itemData
?:
Object
;
type
:
string
;
}
>
();
const
emit
=
defineEmits
([
"
update:modelValue"
,
"
cancel"
,
"confirm"
]);
const
emit
=
defineEmits
([
"cancel"
,
"confirm"
]);
const
subRuleidList
=
ref
([])
const
data
=
reactive
({
rules
:
{},
form
:
<
any
>
{
dataarea_id
:
""
,
id
:
""
,
name
:
""
,
type
:
""
,
flag
:
""
,
discoverway
:
"01"
,
regex
:
""
,
icon
:
""
,
ruleexample
:
""
,
ruleargument
:
""
,
rulegroupname
:
""
,
dictionaryClass
:
""
,
matchingway
:
""
,
defaulttype
:
"0"
,
remark
:
""
,
testString
:
""
},
rules
:
{
name
:
[
{
required
:
true
,
message
:
"请输入发现规则名称"
,
trigger
:
[
"blur"
],
},
],
flag
:
[
{
required
:
true
,
message
:
"请选择发现方式"
,
trigger
:
[
"change"
],
},
],
dictionaryClass
:
[
{
required
:
true
,
message
:
"请选择字典分类"
,
trigger
:
[
"change"
],
},
],
matchingway
:
[
{
required
:
true
,
message
:
"请输入数据域名称"
,
trigger
:
[
"change"
],
},
],
ruleexample
:
[
{
required
:
true
,
message
:
"请输入样例"
,
trigger
:
[
"blur"
],
},
],
},
});
const
{
rules
}
=
toRefs
(
data
);
const
{
form
,
rules
}
=
toRefs
(
data
);
const
readOnly
=
ref
(
true
);
const
radio
=
ref
(
1
);
const
radioOptions
=
ref
([
{
label
:
"正则表达式"
,
value
:
1
,
},
{
label
:
"自定义方法"
,
value
:
2
,
},
{
label
:
"字典发现"
,
value
:
3
,
},
]);
const
dictinaryTypeList
=
ref
([]);
// 字典分类列表
const
formRef
=
ref
<
FormInstance
>
();
const
modalData
=
reactive
({
show
:
false
,
text
:
""
,
icon
:
""
,
type
:
""
,
});
watch
(
()
=>
props
.
type
,
()
=>
[
props
.
type
,
props
.
itemData
]
,
(
newVal
)
=>
{
readOnly
.
value
=
props
.
type
===
"edit"
?
true
:
false
;
if
(
props
.
itemData
)
{
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
props
.
itemData
));
form
.
value
=
{
...
form
.
value
,
...
data
};
}
},
{
deep
:
true
,
immediate
:
true
}
);
// 取消
const
cancel
=
()
=>
{
if
(
props
.
type
===
"edit"
)
{
...
...
@@ -49,74 +111,179 @@ const cancel = () => {
};
const
confirm
=
()
=>
{
formRef
.
value
?.
validate
((
valid
)
=>
{
if
(
valid
)
{
addDataFun
();
}
else
{
}
});
};
// 添加规则
const
addDataFun
=
()
=>
{
const
searchRegex
=
{
searchRegex
:
form
.
value
,
subRuleidList
:
subRuleidList
.
value
,
};
if
(
props
.
type
===
"edit"
)
{
readOnly
.
value
=
true
;
searchRegex
.
searchRegex
=
{
...
searchRegex
.
searchRegex
,
...{
id
:
form
.
value
.
ruleid
},
};
}
emit
(
"confirm"
);
addRule
(
searchRegex
).
then
((
res
)
=>
{
const
{
flag
}
=
res
;
if
(
flag
)
{
ElMessage
.
success
(
props
.
type
===
"add"
?
"新增成功"
:
"修改成功"
);
if
(
props
.
type
===
"edit"
)
{
readOnly
.
value
=
true
;
}
else
if
(
props
.
type
===
"add"
)
{
form
.
value
=
{
dataarea_id
:
""
,
id
:
""
,
name
:
""
,
type
:
""
,
flag
:
""
,
discoverway
:
"01"
,
regex
:
""
,
icon
:
""
,
ruleexample
:
""
,
ruleargument
:
""
,
rulegroupname
:
""
,
dictionaryClass
:
""
,
matchingway
:
""
,
defaulttype
:
"0"
,
remark
:
""
,
testString
:
""
};
}
emit
(
"confirm"
);
}
});
};
// 字典分类
const
getDictionaryTypesFunc
=
()
=>
{
getDictinaryTypes
({}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
dictinaryTypeList
.
value
=
data
;
});
};
// 规则测试
const
testRegexFun
=
()
=>
{
const
{
dictionaryClass
,
discoverway
,
matchingway
,
regex
,
testString
}
=
form
.
value
;
const
data
=
{
dictionaryClass
:
dictionaryClass
,
discoverway
:
discoverway
,
matchingway
:
matchingway
,
regex
:
regex
,
subRuleidList
:
subRuleidList
.
value
,
testString
:
testString
,
};
formRef
.
value
?.
validate
((
valid
)
=>
{
if
(
valid
)
{
testRegex
(
data
).
then
((
res
)
=>
{
const
{
flag
,
msg
}
=
res
;
if
(
flag
)
{
modalData
.
icon
=
"success"
;
modalData
.
text
=
"恭喜您,测试通过!"
;
modalData
.
show
=
true
;
}
else
{
modalData
.
icon
=
"error"
;
modalData
.
text
=
msg
;
modalData
.
show
=
true
;
}
})
}
else
{
}
});
};
// 成功回调
const
modalConfirm
=
()
=>
{
modalData
.
type
=
""
;
modalData
.
show
=
false
;
};
// 关闭回调
const
modalCancel
=
()
=>
{
modalData
.
type
=
""
;
modalData
.
show
=
false
;
};
onMounted
(()
=>
{
getDictionaryTypesFunc
();
});
</
script
>
<
template
>
<div>
<el-form
ref=
"formRef"
:model=
"
modelValue
"
label-width=
"110px"
:disabled=
"readOnly"
>
<el-form-item
label=
"发现规则名"
required
>
<el-input
v-model=
"
modelValue
.name"
:placeholder=
"!readOnly ? '请输入发现规则名' : ''"
></el-input>
<el-form
ref=
"formRef"
:model=
"
form"
:rules=
"rules
"
label-width=
"110px"
:disabled=
"readOnly"
>
<el-form-item
label=
"发现规则名"
prop=
"name"
required
>
<el-input
v-model=
"
form
.name"
:placeholder=
"!readOnly ? '请输入发现规则名' : ''"
></el-input>
</el-form-item>
<el-form-item
label=
"数据域"
>
<div>
{{
modelValue
.
nam
e
}}
</div>
<div>
{{
form
.
typ
e
}}
</div>
</el-form-item>
<el-form-item
label=
"发现方式"
required
>
<el-form-item
label=
"发现方式"
prop=
"flag"
required
>
<div
style=
"width: 100%;background: #F3F5FA;"
>
<el-input
v-model=
"modelValue.name"
v-if=
"readOnly"
></el-input>
<el-select
v-model=
"modelValue.name"
v-if=
"!readOnly"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-select
v-model=
"form.flag"
>
<el-option
v-for=
"item in discoverTypeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item
label=
"发现规则类型"
>
<el-radio-group
v-model=
"radio"
>
<el-radio
:label=
"item.value"
v-for=
"(item,index) in radioOptions"
:key=
"index"
>
{{
item
.
label
}}
</el-radio>
<el-radio-group
v-model=
"form.discoverway"
v-if=
"!readOnly"
>
<el-radio
:label=
"item.value"
v-for=
"(item,index) in form.flag !== '1' ? singleDiscoverRuleType : singleDiscoverRuleType.slice(0,1)"
:key=
"index"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
<el-radio-group
v-model=
"form.discoverway"
v-if=
"readOnly"
>
<el-radio
:label=
"item.value"
v-for=
"(item,index) in singleDiscoverRuleType.filter(f => f.value=== form.discoverway)"
:key=
"index"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"正则表达式"
required
v-if=
"radio === 1"
>
<el-input
v-model=
"modelValue.name"
:placeholder=
"!readOnly ? '请输入正则表达式' : ''"
></el-input>
<el-form-item
label=
"正则表达式"
prop=
"regex"
required
:rules=
"[
{ required: true, message: '请输入正则表达式', trigger:'blur' }]" v-if="form.discoverway === '01'">
<el-input
v-model=
"form.regex"
:placeholder=
"!readOnly ? '请输入正则表达式' : ''"
></el-input>
</el-form-item>
<el-form-item
label=
"JAVA方法"
required
v-if=
"radio === 2"
>
<el-input
v-model=
"modelValue.name"
:placeholder=
"!readOnly ? '请输入JAVA方法' : ''"
></el-input>
<el-form-item
label=
"JAVA方法"
prop=
"regex"
required
:rules=
"[
{ required: true, message: '请输入JAVA方法', trigger:'blur' }]" v-if="form.discoverway === '04'">
<el-input
v-model=
"form.regex"
:placeholder=
"!readOnly ? '请输入JAVA方法' : ''"
></el-input>
</el-form-item>
<el-form-item
label=
"字典分类"
required
v-if=
"radio === 3
"
>
<el-form-item
label=
"字典分类"
prop=
"dictionaryClass"
required
v-if=
"form.discoverway === '03'
"
>
<div
style=
"width: 100%;background: #F3F5FA;"
>
<el-input
v-model=
"modelValue.name"
v-if=
"readOnly"
></el-input>
<el-select
v-model=
"modelValue.name"
v-if=
"!readOnly"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-select
v-model=
"form.dictionaryClass"
>
<el-option
v-for=
"item in dictinaryTypeList"
:key=
"item.value"
:label=
"item.text"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item
label=
"匹配方式"
required
v-if=
"radio === 3
"
>
<el-form-item
label=
"匹配方式"
prop=
"matchingway"
required
v-if=
"form.discoverway === '03'
"
>
<div
style=
"width: 100%;background: #F3F5FA;"
>
<el-input
v-model=
"modelValue.name"
v-if=
"readOnly"
></el-input>
<el-select
v-model=
"modelValue.name"
v-if=
"!readOnly"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-select
v-model=
"form.matchingway"
>
<el-option
v-for=
"item in matchingList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item
label=
"样例"
required
>
<el-input
v-model=
"
modelValue.nam
e"
:placeholder=
"!readOnly ? '请输入样例' : ''"
></el-input>
<el-form-item
label=
"样例"
prop=
"ruleexample"
required
>
<el-input
v-model=
"
form.ruleexampl
e"
:placeholder=
"!readOnly ? '请输入样例' : ''"
></el-input>
</el-form-item>
<el-form-item
label=
"测试"
>
<div
style=
"width: 100%;display: flex;align-items: center;"
>
<el-input
v-model=
"
modelValue.name
"
style=
"flex: 1;"
:placeholder=
"!readOnly ? '请输入测试' : ''"
></el-input>
<el-button
type=
"primary"
>
测试
</el-button>
<el-input
v-model=
"
form.testString
"
style=
"flex: 1;"
:placeholder=
"!readOnly ? '请输入测试' : ''"
></el-input>
<el-button
type=
"primary"
@
click=
"testRegexFun"
>
测试
</el-button>
</div>
</el-form-item>
<el-form-item
label=
"备注"
>
<el-input
v-model=
"
modelValue.name
"
:placeholder=
"!readOnly ? '请输入备注' : ''"
></el-input>
<el-input
v-model=
"
form.remark
"
:placeholder=
"!readOnly ? '请输入备注' : ''"
></el-input>
</el-form-item>
<el-form-item
label=
"默认规则"
>
<Switch
:disabled=
"readOnly"
>
<Switch
true-value=
"1"
false-value=
"0"
v-model=
"form.defaulttype"
:disabled=
"readOnly"
>
<template
#
open
>
<span>
是
</span>
</
template
>
...
...
@@ -131,6 +298,9 @@ const confirm = () => {
<el-button
type=
"info"
style=
"width: 150px;"
@
click=
"cancel"
v-if=
"!readOnly"
>
取消
</el-button>
<el-button
type=
"primary"
style=
"width: 150px;"
@
click=
"confirm"
v-if=
"!readOnly"
>
确认
</el-button>
</div>
<Modal
v-model=
"modalData.show"
:icon=
"modalData.icon"
:cancel=
"false"
:text=
"modalData.text"
@
confirm=
"modalConfirm"
@
cancel=
"modalCancel"
/>
</div>
</template>
...
...
@@ -143,4 +313,9 @@ const confirm = () => {
display
:
flex
;
justify-content
:
center
;
}
:deep
(
.el-form-item__error
)
{
left
:
auto
;
right
:
30px
;
top
:
24%
;
}
</
style
>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论