Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zui
提交
30d98628
Z
zui
项目概览
易企天创
/
zui
大约 1 年 前同步成功
通知
6
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
37
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
37
Issue
37
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
30d98628
编写于
5月 08, 2019
作者:
C
Catouse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* finish task
#15
and task
#16
.
上级
d91fd04d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
92 addition
and
37 deletion
+92
-37
src/js/kindeditor/plugins/advance-table.js
src/js/kindeditor/plugins/advance-table.js
+92
-37
未找到文件。
src/js/kindeditor/plugins/advance-table.js
浏览文件 @
30d98628
...
...
@@ -25,7 +25,8 @@ KindEditor.plugin('table', function (K) {
tableWidthFull
:
'
按页面宽度自适应
'
,
tableBorder
:
'
表格边框
'
,
tableHead
:
'
标题
'
,
tableContent
:
'
内容
'
tableContent
:
'
内容
'
,
mergeSelectedCells
:
'
合并所选单元格
'
,
},
zh_tw
:
{
name
:
'
表格
'
,
...
...
@@ -41,7 +42,8 @@ KindEditor.plugin('table', function (K) {
tableWidthFull
:
'
按頁面寬度自適應
'
,
tableBorder
:
'
表格邊框
'
,
tableHead
:
'
標題
'
,
tableContent
:
'
內容
'
tableContent
:
'
內容
'
,
mergeSelectedCells
:
'
合併所選單元格
'
,
},
en
:
{
name
:
'
Table
'
,
...
...
@@ -57,7 +59,8 @@ KindEditor.plugin('table', function (K) {
tableWidthFull
:
'
Page width adaptive
'
,
tableBorder
:
'
Table border
'
,
tableHead
:
'
Title
'
,
tableContent
:
'
Text
'
tableContent
:
'
Text
'
,
mergeSelectedCells
:
'
Merge Selected Cells
'
,
}
};
var
$elements
=
[];
...
...
@@ -607,6 +610,9 @@ KindEditor.plugin('table', function (K) {
self
.
cmd
.
select
();
self
.
addBookmark
();
},
mergeSelectedCells
:
function
()
{
console
.
log
(
'
mergeSelectedCells
'
);
},
rowsplit
:
function
()
{
var
table
=
self
.
plugin
.
getSelectedTable
()[
0
],
row
=
self
.
plugin
.
getSelectedRow
()[
0
],
...
...
@@ -654,43 +660,54 @@ KindEditor.plugin('table', function (K) {
self
.
addBookmark
();
},
coldelete
:
function
()
{
var
table
=
self
.
plugin
.
getSelectedTable
()[
0
],
row
=
self
.
plugin
.
getSelectedRow
()[
0
],
cell
=
self
.
plugin
.
getSelectedCell
()[
0
],
index
=
cell
.
cellIndex
;
for
(
var
i
=
0
,
len
=
table
.
rows
.
length
;
i
<
len
;
i
++
)
{
var
newRow
=
table
.
rows
[
i
],
newCell
=
newRow
.
cells
[
index
];
if
(
newCell
.
colSpan
>
1
)
{
newCell
.
colSpan
-=
1
;
if
(
newCell
.
colSpan
===
1
)
{
K
(
newCell
).
removeAttr
(
'
colSpan
'
);
var
table
=
self
.
plugin
.
getSelectedTable
()[
0
];
var
cells
=
self
.
plugin
.
getAllSelectedCells
();
if
(
!
cells
.
length
)
return
;
for
(
var
j
=
0
;
j
<
cells
.
length
;
++
j
)
{
var
cell
=
cells
.
get
(
j
);
var
row
=
cell
.
parentNode
;
if
(
!
row
||
!
row
.
parentNode
)
continue
;
var
index
=
cell
.
cellIndex
;
for
(
var
i
=
0
,
len
=
table
.
rows
.
length
;
i
<
len
;
i
++
)
{
var
newRow
=
table
.
rows
[
i
],
newCell
=
newRow
.
cells
[
index
];
if
(
newCell
.
colSpan
>
1
)
{
newCell
.
colSpan
-=
1
;
if
(
newCell
.
colSpan
===
1
)
{
K
(
newCell
).
removeAttr
(
'
colSpan
'
);
}
}
else
{
newRow
.
deleteCell
(
index
);
}
// 跳过不需要删除的行
if
(
newCell
.
rowSpan
>
1
)
{
i
+=
newCell
.
rowSpan
-
1
;
}
}
else
{
newRow
.
deleteCell
(
index
);
}
// 跳过不需要删除的行
if
(
newCell
.
rowSpan
>
1
)
{
i
+=
newCell
.
rowSpan
-
1
;
if
(
row
.
cells
.
length
===
0
)
{
self
.
cmd
.
range
.
setStartBefore
(
table
).
collapse
(
true
);
self
.
cmd
.
select
();
K
(
table
).
remove
();
break
;
}
}
if
(
row
.
cells
.
length
===
0
)
{
self
.
cmd
.
range
.
setStartBefore
(
table
).
collapse
(
true
);
self
.
cmd
.
select
();
K
(
table
).
remove
();
}
else
{
if
(
table
.
parentNode
)
{
self
.
cmd
.
selection
(
true
);
}
self
.
addBookmark
();
},
rowdelete
:
function
()
{
var
table
=
self
.
plugin
.
getSelectedTable
()[
0
],
row
=
self
.
plugin
.
getSelectedRow
()[
0
],
cell
=
self
.
plugin
.
getSelectedCell
()[
0
],
rowIndex
=
row
.
rowIndex
;
// 从下到上删除
for
(
var
i
=
cell
.
rowSpan
-
1
;
i
>=
0
;
i
--
)
{
table
.
deleteRow
(
rowIndex
+
i
);
var
table
=
self
.
plugin
.
getSelectedTable
()[
0
];
var
cells
=
self
.
plugin
.
getAllSelectedCells
();
if
(
!
cells
.
length
)
return
;
for
(
var
j
=
0
;
j
<
cells
.
length
;
++
j
)
{
var
cell
=
cells
.
get
(
j
);
var
row
=
cell
.
parentNode
;
if
(
!
row
||
!
row
.
parentNode
)
continue
;
// 从下到上删除
for
(
var
i
=
cell
.
rowSpan
-
1
;
i
>=
0
;
i
--
)
{
table
.
deleteRow
(
row
.
rowIndex
+
i
);
}
}
if
(
table
.
rows
.
length
===
0
)
{
self
.
cmd
.
range
.
setStartBefore
(
table
).
collapse
(
true
);
...
...
@@ -706,18 +723,54 @@ KindEditor.plugin('table', function (K) {
self
.
plugin
.
getSelectedTable
=
function
()
{
return
K
(
$
(
self
.
cmd
.
range
.
startContainer
).
closest
(
'
table
'
)[
0
]);
};
// 获取选中的行
self
.
plugin
.
getSelectedRow
=
function
()
{
return
K
(
$
(
self
.
cmd
.
range
.
startContainer
).
closest
(
'
tr
'
)[
0
]);
};
// 获取光标所在的单元格
self
.
plugin
.
getSelectedCell
=
function
()
{
return
K
(
$
(
self
.
cmd
.
range
.
startContainer
).
closest
(
'
td,th
'
)[
0
]);
};
// 获取用户拖选的单元格
self
.
plugin
.
getSelectedCells
=
function
()
{
var
table
=
self
.
plugin
.
getSelectedTable
();
if
(
table
.
length
)
{
return
K
(
'
.ke-select-cell
'
,
table
.
get
(
0
));
}
};
// 当用户没有拖选时,获取光标所在的单元格
self
.
plugin
.
getSingleSelectedCell
=
function
()
{
var
selectedCells
=
self
.
plugin
.
getSelectedCells
();
if
(
selectedCells
.
length
)
{
return
;
}
return
self
.
plugin
.
getSelectedCell
();
};
// 获取用户拖选或光标所在位置的单元格
self
.
plugin
.
getAllSelectedCells
=
function
()
{
var
selectedCells
=
self
.
plugin
.
getSelectedCells
();
if
(
selectedCells
.
length
)
{
return
selectedCells
;
}
return
self
.
plugin
.
getSelectedCell
();
};
K
.
each
((
'
prop,cellprop,colinsertleft,colinsertright,rowinsertabove,rowinsertbelow,rowmerge,colmerge,
'
+
'
rowsplit,colsplit,coldelete,rowdelete,delete
'
).
split
(
'
,
'
),
function
(
i
,
val
)
{
var
cond
=
K
.
inArray
(
val
,
[
'
prop
'
,
'
delete
'
])
<
0
?
self
.
plugin
.
getSelectedCell
:
self
.
plugin
.
getSelectedTable
;
var
contextMenuIconClass
=
{
mergeSelectedCells
:
'
ke-icon-tablecolmerge
'
};
K
.
each
((
'
prop,cellprop,colinsertleft,colinsertright,rowinsertabove,rowinsertbelow,mergeSelectedCells,rowmerge,colmerge,rowsplit,colsplit,coldelete,rowdelete,delete
'
).
split
(
'
,
'
),
function
(
i
,
val
)
{
var
cond
;
if
(
val
===
'
prop
'
||
val
===
'
delete
'
)
{
cond
=
self
.
plugin
.
getSelectedTable
;
}
else
if
(
val
===
'
mergeSelectedCells
'
)
{
cond
=
self
.
plugin
.
getSelectedCells
;
}
else
if
(
K
.
inArray
(
val
,
[
'
colinsertleft
'
,
'
colinsertright
'
,
'
rowinsertabove
'
,
'
rowinsertbelow
'
,
'
rowmerge
'
,
'
colmerge
'
,
'
rowsplit
'
,
'
colsplit
'
])
>
-
1
)
{
cond
=
self
.
plugin
.
getSingleSelectedCell
;
}
else
{
cond
=
self
.
plugin
.
getSelectedCell
;
}
self
.
addContextmenu
({
title
:
self
.
lang
(
'
table
'
+
val
),
title
:
lang
[
val
]
||
self
.
lang
(
'
table
'
+
val
),
click
:
function
()
{
self
.
loadPlugin
(
'
table
'
,
function
()
{
self
.
plugin
.
table
[
val
]();
...
...
@@ -726,7 +779,7 @@ KindEditor.plugin('table', function (K) {
},
cond
:
cond
,
width
:
170
,
iconClass
:
'
ke-icon-table
'
+
val
iconClass
:
contextMenuIconClass
[
val
]
||
(
'
ke-icon-table
'
+
val
)
});
});
}
...
...
@@ -886,7 +939,9 @@ KindEditor.plugin('table', function (K) {
isMouseDown
=
true
;
mouseDownRowIndex
=
$cell
.
closest
(
'
tr
'
)[
0
].
rowIndex
;
mouseDownCellIndex
=
$cell
[
0
].
cellIndex
;
$
(
self
.
edit
.
doc
).
find
(
'
.ke-select-cell
'
).
removeClass
(
'
ke-select-cell
'
);
if
(
e
.
which
!==
3
)
{
$
(
self
.
edit
.
doc
).
find
(
'
.ke-select-cell
'
).
removeClass
(
'
ke-select-cell
'
);
}
}).
on
(
'
mousemove.ke
'
+
self
.
uuid
,
function
(
e
)
{
var
$cell
=
$
(
e
.
target
).
closest
(
'
td,th
'
);
if
(
!
$cell
.
length
)
return
isMouseDown
?
e
.
preventDefault
()
:
null
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录