Skip to content

Commit 040b8fb

Browse files
committed
修改gitignore文件
1 parent 490d191 commit 040b8fb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+364
-217
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
node_modules/
2-
/dist/
2+
dist/

deploy.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
cd docs/.vuepress/dist
2+
3+
git init
4+
git add .
5+
git commit -m 'deploy'
6+
git push -f git@github.com:zepang/lai-ui.git master:gh-pages
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
function typeOf (obj) {
2+
const map = {
3+
'[object Boolean]' : 'boolean',
4+
'[object Number]' : 'number',
5+
'[object String]' : 'string',
6+
'[object Function]' : 'function',
7+
'[object Array]' : 'array',
8+
'[object Date]' : 'date',
9+
'[object RegExp]' : 'regExp',
10+
'[object Undefined]': 'undefined',
11+
'[object Null]' : 'null',
12+
'[object Object]' : 'object'
13+
}
14+
return map[Object.prototype.toString.call(obj)]
15+
}
16+
17+
function deepClone (data) {
18+
let obj
19+
20+
if (typeOf(data) === 'array') {
21+
obj = []
22+
for (let i = 0; i < data.length; i++) {
23+
obj.push(data[i])
24+
}
25+
} else if (typeOf(data) === 'object') {
26+
obj = {}
27+
for (let key in data) {
28+
obj[key] = deepClone(data[key])
29+
}
30+
} else {
31+
return data
32+
}
33+
34+
return obj
35+
}
36+
37+
export default deepClone
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<template>
2+
<div>
3+
<tree-node
4+
v-for="(item, index) in cloneData"
5+
:key="index"
6+
:data="item"
7+
:show-checkbox="showCheckbox">
8+
</tree-node>
9+
</div>
10+
</template>
11+
12+
<script>
13+
import deepClone from './deepClone'
14+
import TreeNode from './node'
15+
export default {
16+
provide () {
17+
return {
18+
tree: this
19+
}
20+
},
21+
props: {
22+
data: {
23+
type: Array,
24+
default: () => []
25+
},
26+
showCheckbox: {
27+
type: Boolean,
28+
default: false
29+
}
30+
},
31+
components: { TreeNode },
32+
data () {
33+
return {
34+
cloneData: []
35+
}
36+
},
37+
created () {
38+
this.updateData()
39+
},
40+
methods: {
41+
updateData () {
42+
this.cloneData = deepClone(this.data)
43+
},
44+
onCheckChange (data) {
45+
this.$emit('on-check-change', data, this.data)
46+
}
47+
},
48+
watch: {
49+
data () {
50+
this.updateData()
51+
}
52+
}
53+
}
54+
</script>
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<template>
2+
<ul class="tree-list">
3+
<li class="tree-item">
4+
<span class="tree-expand" @click="handleExpand">
5+
<span v-if="data.children && data.children.length && !data.expand">+</span>
6+
<span v-if="data.children && data.children.length && data.expand">-</span>
7+
</span>
8+
<checkbox
9+
v-if="showCheckbox"
10+
v-model="data.checked"
11+
@on-change="handleCheck">
12+
</checkbox>
13+
<span>{{ data.title }}</span>
14+
<tree-node
15+
v-if="data.expand"
16+
v-for="(item, index) in data.children"
17+
:key="index"
18+
:data="item"
19+
:show-checkbox="showCheckbox"
20+
></tree-node>
21+
</li>
22+
</ul>
23+
</template>
24+
25+
<script>
26+
import checkbox from '../checkbox'
27+
export default {
28+
name: 'TreeNode',
29+
inject: ['tree'],
30+
props: {
31+
data: {
32+
type: Object,
33+
default: () => {}
34+
},
35+
showCheckbox: {
36+
type: Boolean,
37+
default: false
38+
}
39+
},
40+
components: { checkbox },
41+
methods: {
42+
updateTreeDown (data, checked) {
43+
this.$set(data, 'checked', checked)
44+
if (data.children && data.children.length) {
45+
data.children.forEach(item => {
46+
this.updateTreeDown(item, checked)
47+
})
48+
}
49+
},
50+
handleCheck (checked) {
51+
this.updateTreeDown(this.data, checked)
52+
this.tree.onCheckChange(this.data)
53+
},
54+
handleExpand () {
55+
this.$set(this.data, 'expand', !this.data.expand)
56+
}
57+
},
58+
watch: {
59+
'data.children': {
60+
handler (data) {
61+
if (data) {
62+
const checkedAll = data.every(item => item.checked)
63+
this.$set(this.data, 'checked', checkedAll)
64+
}
65+
},
66+
deep: true
67+
}
68+
}
69+
}
70+
</script>
71+
72+
<style lang="less" scoped>
73+
.tree-list, .tree-item{
74+
list-style: none;
75+
padding-left: 1em;
76+
}
77+
.tree-item {
78+
padding-top: 0.5em;
79+
padding-bottom: 0.5em;
80+
}
81+
.tree-expand{
82+
cursor: pointer;
83+
}
84+
</style>
85+
86+

docs/.vuepress/config.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module.exports = {
2+
base: '/lai-ui/',
23
title: 'Components Learning With Vue',
34
head: [
45
['link', { rel: 'icon', href: '/img/favicon.ico' }]
@@ -8,7 +9,7 @@ module.exports = {
89
nav: [
910
{ text: 'Home', link: '/' },
1011
{ text: 'documents', link: '/posts/' },
11-
{ text: 'github', link: 'https://google.com' },
12+
{ text: 'github', link: 'https://github.com/zepang/lai-ui' },
1213
],
1314
sidebar: [
1415
'/posts/',
@@ -40,5 +41,10 @@ module.exports = {
4041
]
4142
}
4243
]
44+
},
45+
configureWebpack: (config, isServer) => {
46+
if (!isServer) {
47+
config.output.publicPath = '/lai-ui/'
48+
}
4349
}
4450
}

docs/.vuepress/dist/404.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
<meta name="viewport" content="width=device-width,initial-scale=1">
66
<title>Components Learning With Vue</title>
77
<meta name="description" content="">
8-
<link rel="icon" href="/img/favicon.ico">
8+
<link rel="icon" href="/lai-ui/img/favicon.ico">
99

10-
<link rel="preload" href="/assets/css/0.styles.21f7e899.css" as="style"><link rel="preload" href="/assets/js/app.44af0a7b.js" as="script"><link rel="prefetch" href="/assets/js/10.494e2e99.js"><link rel="prefetch" href="/assets/js/11.51c7e3b3.js"><link rel="prefetch" href="/assets/js/12.53865723.js"><link rel="prefetch" href="/assets/js/13.56d7017a.js"><link rel="prefetch" href="/assets/js/14.b47db088.js"><link rel="prefetch" href="/assets/js/15.866ce069.js"><link rel="prefetch" href="/assets/js/16.9c9874ab.js"><link rel="prefetch" href="/assets/js/17.e4b37813.js"><link rel="prefetch" href="/assets/js/18.4847872e.js"><link rel="prefetch" href="/assets/js/19.7e8d0a8c.js"><link rel="prefetch" href="/assets/js/2.dc5535aa.js"><link rel="prefetch" href="/assets/js/20.0b4a1283.js"><link rel="prefetch" href="/assets/js/21.a59d724e.js"><link rel="prefetch" href="/assets/js/22.19b76e1c.js"><link rel="prefetch" href="/assets/js/23.697a48d7.js"><link rel="prefetch" href="/assets/js/24.4c274ec0.js"><link rel="prefetch" href="/assets/js/25.4b4c5d3c.js"><link rel="prefetch" href="/assets/js/26.79c293aa.js"><link rel="prefetch" href="/assets/js/27.ae439a8b.js"><link rel="prefetch" href="/assets/js/28.59752271.js"><link rel="prefetch" href="/assets/js/29.88dfb98b.js"><link rel="prefetch" href="/assets/js/3.403da4fe.js"><link rel="prefetch" href="/assets/js/30.e697eda4.js"><link rel="prefetch" href="/assets/js/31.315ebd79.js"><link rel="prefetch" href="/assets/js/32.d2f03d59.js"><link rel="prefetch" href="/assets/js/33.f22d52b8.js"><link rel="prefetch" href="/assets/js/34.efbe991a.js"><link rel="prefetch" href="/assets/js/35.2548d21b.js"><link rel="prefetch" href="/assets/js/36.2b9b0e53.js"><link rel="prefetch" href="/assets/js/37.34de78d5.js"><link rel="prefetch" href="/assets/js/4.a97e2175.js"><link rel="prefetch" href="/assets/js/5.0ef2f1d3.js"><link rel="prefetch" href="/assets/js/6.3bc55169.js"><link rel="prefetch" href="/assets/js/7.ca82f957.js"><link rel="prefetch" href="/assets/js/8.be648d3a.js"><link rel="prefetch" href="/assets/js/9.eeb2b467.js">
11-
<link rel="stylesheet" href="/assets/css/0.styles.21f7e899.css">
10+
<link rel="preload" href="/lai-ui/assets/css/0.styles.1a4d2eed.css" as="style"><link rel="preload" href="/lai-ui/assets/js/app.9f69d2e5.js" as="script"><link rel="prefetch" href="/lai-ui/assets/js/10.9e3e7dbc.js"><link rel="prefetch" href="/lai-ui/assets/js/11.95dea5ef.js"><link rel="prefetch" href="/lai-ui/assets/js/12.a9268648.js"><link rel="prefetch" href="/lai-ui/assets/js/13.23cc5671.js"><link rel="prefetch" href="/lai-ui/assets/js/14.ea67ba93.js"><link rel="prefetch" href="/lai-ui/assets/js/15.866ce069.js"><link rel="prefetch" href="/lai-ui/assets/js/16.2662502a.js"><link rel="prefetch" href="/lai-ui/assets/js/17.56e6ed80.js"><link rel="prefetch" href="/lai-ui/assets/js/18.e0e6d450.js"><link rel="prefetch" href="/lai-ui/assets/js/19.9b135584.js"><link rel="prefetch" href="/lai-ui/assets/js/2.dc5535aa.js"><link rel="prefetch" href="/lai-ui/assets/js/20.6d949404.js"><link rel="prefetch" href="/lai-ui/assets/js/21.ab9f510c.js"><link rel="prefetch" href="/lai-ui/assets/js/22.95405f80.js"><link rel="prefetch" href="/lai-ui/assets/js/23.15ef849f.js"><link rel="prefetch" href="/lai-ui/assets/js/24.557cd419.js"><link rel="prefetch" href="/lai-ui/assets/js/25.c1c37d04.js"><link rel="prefetch" href="/lai-ui/assets/js/26.2b7ed4dc.js"><link rel="prefetch" href="/lai-ui/assets/js/27.a634c945.js"><link rel="prefetch" href="/lai-ui/assets/js/28.f93c58e6.js"><link rel="prefetch" href="/lai-ui/assets/js/29.1c7b219d.js"><link rel="prefetch" href="/lai-ui/assets/js/3.f18ba24a.js"><link rel="prefetch" href="/lai-ui/assets/js/30.3ebc2342.js"><link rel="prefetch" href="/lai-ui/assets/js/31.5ede36f9.js"><link rel="prefetch" href="/lai-ui/assets/js/32.60d7396c.js"><link rel="prefetch" href="/lai-ui/assets/js/33.52a1b322.js"><link rel="prefetch" href="/lai-ui/assets/js/34.c7921474.js"><link rel="prefetch" href="/lai-ui/assets/js/35.548f2d85.js"><link rel="prefetch" href="/lai-ui/assets/js/36.3f0c4bb3.js"><link rel="prefetch" href="/lai-ui/assets/js/37.34de78d5.js"><link rel="prefetch" href="/lai-ui/assets/js/4.59a31b92.js"><link rel="prefetch" href="/lai-ui/assets/js/5.7e683ae2.js"><link rel="prefetch" href="/lai-ui/assets/js/6.9d16e7a4.js"><link rel="prefetch" href="/lai-ui/assets/js/7.1ad10451.js"><link rel="prefetch" href="/lai-ui/assets/js/8.f3dccb5a.js"><link rel="prefetch" href="/lai-ui/assets/js/9.e1fbec58.js">
11+
<link rel="stylesheet" href="/lai-ui/assets/css/0.styles.1a4d2eed.css">
1212
</head>
1313
<body>
14-
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/" class="router-link-active">Take me home.</a></div></div></div>
15-
<script src="/assets/js/app.44af0a7b.js" defer></script>
14+
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/lai-ui/" class="router-link-active">Take me home.</a></div></div></div>
15+
<script src="/lai-ui/assets/js/app.9f69d2e5.js" defer></script>
1616
</body>
1717
</html>

docs/.vuepress/dist/assets/css/0.styles.21f7e899.css

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/.vuepress/dist/assets/js/10.494e2e99.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/.vuepress/dist/assets/js/11.51c7e3b3.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)