Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jeecg
jeecg-boot
提交
a6d22db4
J
jeecg-boot
项目概览
jeecg
/
jeecg-boot
上一次同步 3 年多
通知
864
Star
24375
Fork
84
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jeecg-boot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a6d22db4
编写于
7月 31, 2019
作者:
JEECG低代码平台
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
j-editable-table支持字典dictCode配置 #253
上级
5ad54c8a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
76 addition
and
13 deletion
+76
-13
ant-design-vue-jeecg/src/components/jeecg/JEditableTable.vue
ant-design-vue-jeecg/src/components/jeecg/JEditableTable.vue
+61
-9
ant-design-vue-jeecg/src/components/jeecg/README_JEditableTable.md
...n-vue-jeecg/src/components/jeecg/README_JEditableTable.md
+5
-4
ant-design-vue-jeecg/src/views/jeecg/JeecgEditableTableExample.vue
...n-vue-jeecg/src/views/jeecg/JeecgEditableTableExample.vue
+10
-0
未找到文件。
ant-design-vue-jeecg/src/components/jeecg/JEditableTable.vue
浏览文件 @
a6d22db4
<!-- JEditableTable -->
<!-- @version 1.4.
1
-->
<!-- @version 1.4.
2
-->
<!-- @author sjlei -->
<
template
>
<a-spin
:spinning=
"loading"
>
...
...
@@ -7,7 +7,7 @@
<!-- 操作按钮 -->
<div
v-if=
"actionButton"
class=
"action-button"
>
<a-button
type=
"primary"
icon=
"plus"
@
click=
"handleClickAdd"
>
新增
</a-button>
<span
class=
"gap"
/
>
<span
class=
"gap"
></span
>
<template
v-if=
"selectedRowIds.length>0"
>
<a-popconfirm
:title=
"`确定要删除这 $
{selectedRowIds.length} 项吗?`"
...
...
@@ -15,7 +15,7 @@
<a-button
type=
"primary"
icon=
"minus"
>
删除
</a-button>
</a-popconfirm>
<template
v-if=
"showClearSelectButton"
>
<span
class=
"gap"
/
>
<span
class=
"gap"
></span
>
<a-button
icon=
"delete"
@
click=
"handleClickClearSelect"
>
清空选择
</a-button>
</
template
>
</template>
...
...
@@ -282,6 +282,7 @@
import
{
FormTypes
,
VALIDATE_NO_PASSED
}
from
'
@/utils/JEditableTableUtil
'
import
{
cloneObject
,
randomString
}
from
'
@/utils/util
'
import
JDate
from
'
@/components/jeecg/JDate
'
import
{
initDictOptions
}
from
'
@/components/dict/JDictSelectUtil
'
// 行高,需要在实例加载完成前用到
let
rowHeight
=
61
...
...
@@ -454,7 +455,7 @@
},
// 侦听器
watch
:
{
dataSource
:
function
(
newValue
)
{
dataSource
:
function
(
newValue
)
{
this
.
initialize
()
let
rows
=
[]
...
...
@@ -556,6 +557,9 @@
return
{}
})
}
if
(
column
.
dictCode
)
{
this
.
_loadDictConcatToOptions
(
column
)
}
}
})
}
...
...
@@ -575,15 +579,15 @@
let
vm
=
this
/** 监听滚动条事件 */
this
.
el
.
inputTable
.
onscroll
=
function
(
event
)
{
this
.
el
.
inputTable
.
onscroll
=
function
(
event
)
{
vm
.
syncScrollBar
(
event
.
target
.
scrollLeft
)
}
this
.
el
.
tbody
.
onscroll
=
function
(
event
)
{
this
.
el
.
tbody
.
onscroll
=
function
(
event
)
{
// vm.recalcTrHiddenItem(event.target.scrollTop)
}
let
{
thead
,
scrollView
}
=
this
.
$refs
scrollView
.
onscroll
=
function
(
event
)
{
scrollView
.
onscroll
=
function
(
event
)
{
// console.log(event.target.scrollTop, ' - ', event.target.scrollLeft)
...
...
@@ -1065,7 +1069,32 @@
}
else
// 使用 else-if 是为了防止一个 rule 中出现两个规则
// 验证规则:正则表达式
if
(
!!
rule
.
pattern
&&
!
isNull
)
{
passed
=
new
RegExp
(
rule
.
pattern
).
test
(
value
)
// 兼容 online 的规则
let
foo
=
[
{
title
:
'
唯一校验
'
,
value
:
'
only
'
,
pattern
:
null
},
{
title
:
'
6到16位数字
'
,
value
:
'
n6-16
'
,
pattern
:
/
\d{6,18}
/
},
{
title
:
'
6到16位任意字符
'
,
value
:
'
*6-16
'
,
pattern
:
/^.
{6,16}
$/
},
{
title
:
'
网址
'
,
value
:
'
url
'
,
pattern
:
/^
(?:([
A-Za-z
]
+
)
:
)?(\/{0,3})([
0-9.
\-
A-Za-z
]
+
)(?:
:
(\d
+
))?(?:\/([^
?#
]
*
))?(?:\?([^
#
]
*
))?(?:
#
(
.*
))?
$/
},
{
title
:
'
电子邮件
'
,
value
:
'
e
'
,
pattern
:
/^
([\w]
+
\.
*
)([\w]
+
)
@
[\w]
+
\.\w{3}(\.\w{2}
|
)
$/
},
{
title
:
'
手机号码
'
,
value
:
'
m
'
,
pattern
:
/^1
[
3456789
]\d{9}
$/
},
{
title
:
'
邮政编码
'
,
value
:
'
p
'
,
pattern
:
/^
[
1-9
]\d{5}
$/
},
{
title
:
'
字母
'
,
value
:
'
s
'
,
pattern
:
/^
[
A-Z|a-z
]
+$/
},
{
title
:
'
数字
'
,
value
:
'
n
'
,
pattern
:
/^-
?\d
+
\.?\d
*$/
},
{
title
:
'
整数
'
,
value
:
'
z
'
,
pattern
:
/^
[
1-9
]\d
*$/
},
{
title
:
'
非空
'
,
value
:
'
*
'
,
pattern
:
/^.+$/
},
{
title
:
'
6到18位字符串
'
,
value
:
'
s6-18
'
,
pattern
:
/^.
{6,18}
$/
},
{
title
:
'
金额
'
,
value
:
'
money
'
,
pattern
:
/^
(([
1-9
][
0-9
]
*
)
|
([
0
]\.\d{0,2}
|
[
1-9
][
0-9
]
*
\.\d{0,2}))
$/
},
]
let
flag
=
false
for
(
let
item
of
foo
)
{
if
(
rule
.
pattern
===
item
.
value
&&
item
.
pattern
)
{
passed
=
new
RegExp
(
item
.
pattern
).
test
(
value
)
flag
=
true
break
}
}
if
(
!
flag
)
passed
=
new
RegExp
(
rule
.
pattern
).
test
(
value
)
}
// 如果没有通过验证,则跳出循环。如果通过了验证,则继续验证下一条规则
if
(
!
passed
)
{
...
...
@@ -1227,7 +1256,7 @@
change
=
false
value
=
replace
target
.
value
=
replace
if
(
typeof
selectionStart
===
'
number
'
)
{
if
(
typeof
selectionStart
===
'
number
'
)
{
target
.
selectionStart
=
selectionStart
-
1
target
.
selectionEnd
=
selectionStart
-
1
}
...
...
@@ -1322,6 +1351,19 @@
this
.
uploadValues
[
id
]
=
null
},
/** 加载数据字典并合并到 options */
_loadDictConcatToOptions
(
column
)
{
initDictOptions
(
column
.
dictCode
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
column
.
options
=
(
column
.
options
||
[]).
concat
(
res
.
result
)
}
else
{
console
.
group
(
`JEditableTable 查询字典(
${
column
.
dictCode
}
)发生异常`
)
console
.
log
(
res
.
message
)
console
.
groupEnd
()
}
})
},
/* --- common function end --- */
/* --- 以下是辅助方法,多用于动态构造页面中的数据 --- */
...
...
@@ -1483,6 +1525,7 @@
border-bottom: @border;
/** 隐藏thead的滑块 */
&::-webkit-scrollbar-thumb {
box-shadow: none !important;
background-color: transparent !important;
...
...
@@ -1588,15 +1631,19 @@
}
/* 设置placeholder的颜色 */
&::-webkit-input-placeholder { /* WebKit browsers */
color: #ccc;
}
&:-moz-placeholder { /* Mozilla Firefox 4 to 18 */
color: #ccc;
}
&::-moz-placeholder { /* Mozilla Firefox 19+ */
color: #ccc;
}
&:-ms-input-placeholder { /* Internet Explorer 10+ */
color: #ccc;
}
...
...
@@ -1615,16 +1662,21 @@
.thead, .thead .tr, .scroll-view {
@scrollBarSize: 6px;
/* 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
&::-webkit-scrollbar {
width: @scrollBarSize;
height: @scrollBarSize;
background-color: transparent;
}
/* 定义滚动条轨道 */
&::-webkit-scrollbar-track {
background-color: #f0f0f0;
}
/* 定义滑块 */
&::-webkit-scrollbar-thumb {
background-color: #eee;
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
...
...
ant-design-vue-jeecg/src/components/jeecg/README_JEditableTable.md
浏览文件 @
a6d22db4
...
...
@@ -36,10 +36,11 @@
#### 当 type=select 时所需的参数
| 参数 | 类型 | 必填 | 说明 |
|------------|---------|------|--------------------------------------|
| options | array | ✔️ | 下拉选项列表,详见下表 |
| allowInput | boolean | | 是否允许用户输入内容,并创建新的内容 |
| 参数 | 类型 | 必填 | 说明 |
|------------|---------|------|----------------------------------------------------|
| options | array | ✔️ | 下拉选项列表,详见下表 |
| allowInput | boolean | | 是否允许用户输入内容,并创建新的内容 |
| dictCode | String | | 数据字典Code,若options也有值,则拼接再options后面 |
##### options 所需参数
...
...
ant-design-vue-jeecg/src/views/jeecg/JeecgEditableTableExample.vue
浏览文件 @
a6d22db4
...
...
@@ -109,6 +109,16 @@
placeholder
:
'
请选择${title}
'
,
validateRules
:
[{
required
:
true
,
message
:
'
请选择${title}
'
}]
},
{
title
:
'
性别(字典)
'
,
key
:
'
sex_dict
'
,
width
:
'
300px
'
,
type
:
FormTypes
.
select
,
options
:
[],
dictCode
:
'
sex
'
,
placeholder
:
'
请选择${title}
'
,
validateRules
:
[{
required
:
true
,
message
:
'
请选择${title}
'
}]
},
{
title
:
'
多选测试
'
,
key
:
'
multipleSelect
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录