Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
marketing
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
marketing-web
marketing
Commits
abaf0536
Commit
abaf0536
authored
Dec 10, 2018
by
zhangmeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:迭代3完成
parent
9384621c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
13 deletions
+71
-13
expand.js
src/test/component/dm-table/expand.js
+31
-0
index.vue
src/test/component/dm-table/index.vue
+20
-10
dm-table.vue
src/test/example/dm-table.vue
+20
-3
No files found.
src/test/component/dm-table/expand.js
0 → 100644
View file @
abaf0536
export
default
{
name
:
'TableExpand'
,
functional
:
true
,
props
:
{
row
:
Object
,
render
:
Function
,
index
:
Number
,
column
:
{
type
:
Object
,
default
:
null
}
},
render
:
(
h
,
ctx
)
=>
{
const
params
=
{
row
:
ctx
.
props
.
row
,
index
:
ctx
.
props
.
index
};
function
countDown
(
i
)
{
if
(
i
<=
0
)
{
return
i
;
}
else
{
countDown
(
i
-
1
);
}
console
.
log
(
i
)
}
if
(
ctx
.
props
.
column
)
params
.
column
=
ctx
.
props
.
column
;
return
ctx
.
props
.
render
(
h
,
params
);
}
};
src/test/component/dm-table/index.vue
View file @
abaf0536
...
...
@@ -34,15 +34,18 @@
:filtered-value=
"v.filteredValue"
>
<template
slot-scope=
"scope"
>
<!-- 如果有filter -->
<span
v-if=
"v.render"
>
{{
compile
(
v
.
render
)
}}
</span>
<span
v-if=
"v.filter"
>
<Cell
v-if=
"v.render"
:row=
"scope.row"
:column=
"scope.column"
:index=
"scope.$index"
:render=
"v.render"
></Cell>
<!--
<span
v-if=
"v.filter"
>
{{
Vue
.
filter
(
v
[
filter
])(
scope
.
row
[
v
.
prop
])
}}
</span>
<span
v-else-if=
"v.formatter"
>
{{
v
.
formatter
(
scope
.
row
)
}}
</span>
</span>
-->
<span
v-else
>
{{
scope
.
row
[
v
.
prop
]
}}
</span>
...
...
@@ -57,11 +60,13 @@
<
script
>
import
{
Table
}
from
'element-ui'
;
import
Vue
from
'vue'
;
import
Cell
from
'./expand'
;
export
default
{
name
:
'dm-table'
,
components
:{
'el-table'
:
Table
,
Cell
// 'test-com':this.propComponents[0]
},
props
:[
'columns'
,
'data'
,
'propComponents'
],
...
...
@@ -69,11 +74,16 @@ export default {
},
methods
:{
compile
(
template
)
{
const
span
=
document
.
createElement
(
'span'
);
span
.
innerHTML
=
template
;
console
.
log
(
this
.
$parent
);
const
dom
=
this
.
$parent
.
compile
(
span
);
// 在父级上下文编译组件
return
dom
;
// this.$nextTick(_ => {
// console.log(this,this.$parent)
// compile
// })
// const span = document.createElement('span');
// span.innerHTML = template;
// // console.log(this);
// const dom = this.compile(span); // 在父级上下文编译组件
// // return dom;
// this.$el.appendChild(dom); // 将编译后的html插入当前组件
}
}
...
...
src/test/example/dm-table.vue
View file @
abaf0536
...
...
@@ -30,10 +30,27 @@ export default {
},
columns
:
[
{
prop
:
'name'
,
label
:
'姓名'
,
width
:
140
},
{
prop
:
'mobile'
,
label
:
'手机号码'
,
minWidth
:
180
},
{
prop
:
'mobile'
,
label
:
'手机号码'
,
minWidth
:
180
,
render
:
(
row
)
=>
{
return
'<div>12121</div>'
;
}
},
{
prop
:
'sex'
,
label
:
'性别'
,
width
:
100
,
render
:
row
=>
{
return
`<testCom>
${
row
.
name
}
</testCom>`
render
:
(
h
,
params
)
=>
{
return
h
(
'el-button'
,
{
props
:
{
type
:
'primary'
,
size
:
'small'
},
style
:
{
marginRight
:
'5px'
},
on
:
{
click
:
()
=>
{
this
.
show
(
params
.
index
)
}
}
},
'View'
)
}
}
],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment