Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#646] [3.0] Select 컴포넌트 개발 #657

Merged
merged 3 commits into from
Oct 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 2 additions & 9 deletions docs/components/Example.vue
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,12 @@

<script>
import { ref, onMounted } from 'vue';
import hljs from 'highlight.js';
import highlight from 'docs/directives/highlight';

export default {
name: 'Example',
directives: {
highlight: {
mounted(el) {
const blocks = el.querySelectorAll('pre');
blocks.forEach((block) => {
hljs.highlightBlock(block);
});
},
},
highlight,
},
props: {
title: {
Expand Down
11 changes: 2 additions & 9 deletions docs/components/MarkdownView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,12 @@
<script>
import { computed } from 'vue';
import marked from 'marked';
import hljs from 'highlight.js';
import highlight from 'docs/directives/highlight';

export default {
name: 'Example',
directives: {
highlight: {
mounted(el) {
const blocks = el.querySelectorAll('pre');
blocks.forEach((block) => {
hljs.highlightBlock(block);
});
},
},
highlight,
},
components: {
},
Expand Down
12 changes: 12 additions & 0 deletions docs/directives/highlight.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import hljs from 'highlight.js';

const highlight = {
mounted(el) {
const blocks = el.querySelectorAll('pre');
blocks.forEach((block) => {
hljs.highlightBlock(block);
});
},
};

export default highlight;
24 changes: 17 additions & 7 deletions docs/views/select/api/select.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

>### Desc
- 태그는 &lt;ev-select&gt;(이하 <셀렉트>)로 정의
- &lt;EvSelect&gt; 클릭시 나타나는 영역은 dropdown box(이하 <드랍다운 박스>)로 정의
- &lt;ev-select&gt; 클릭시 나타나는 영역은 dropdown box(이하 <드랍다운 박스>)로 정의

```
<ev-select
Expand All @@ -22,26 +22,36 @@
- 기본적으로 <드랍다운 박스>의 너비는 <셀렉트> 컴포넌트의 너비와 동일하게 맞춰져 있다.

>### Props
> 1) 기본 셀렉트 사용 시
>> <셀렉트>
> 1) 셀렉트 사용 시
>
> | 이름 | 디폴트 | 타입 | 설명 | 종류 |
|------|--------|------|------|------|
| v-model | null | Boolean, String, Number | <셀렉트>에서 선택된 값으로, 해당 값은 바인딩되어 동적으로 변함 | |
| items | [] | Array | <셀렉트> 선택가능한 리스트 | |
| placeholder | '' | String | <셀렉트>의 표기문구 | |
| disabled | false | Boolean | <셀렉트> 사용가능 여부 | |
| clearable | false | Boolean | <셀렉트>에 선택된 항목들 모두 clear기능 사용여부 | |
| filterable | false | Boolean | <셀렉트> 항목들 필터링 기능 사용여부 | |
| searchPlaceholder | '' | String | <셀렉트> 필터링의 표기문구 | |
| noMatchingText | '' | String | <셀렉트> 필터링 결과가 없을 시 표기문구 | |
> - <셀렉트> 클릭 시 <드랍다운 박스>가 나타나며, 목록 선택 시 <드랍다운 박스>가 닫혀야한다.
>

>
> 2) 복수선택 셀렉트 사용 시
>> <셀렉트>
> 2) 멀티 셀렉트 사용 시
>
> | 이름 | 디폴트 | 타입 | 설명 | 종류 |
|------|--------|------|------|------|
| v-model | null | Boolean, String, Number | <셀렉트>에서 선택된 값으로, 해당 값은 바인딩되어 동적으로 변함 | |
| placeholder | '' | String | <셀렉트>의 표기문구 | |
| items | [] | Array | <셀렉트> 선택가능한 리스트 | |
| placeholder | '' | String | <셀렉트>의 표기문구 | |
| multiple | false | Boolean | <셀렉트> 복수 선택 가능여부 | |
| disabled | false | Boolean | <셀렉트> 사용가능 여부 | |
| clearable | false | Boolean | <셀렉트>에 선택된 항목들 모두 clear기능 사용여부 | |
| collapse-tags | false | Boolean | <셀렉트>에 선택된 항목의 생략 태그기능 사용여부 | { 항목1 (x) } { +1 } |
| filterable | false | Boolean | <셀렉트> 항목들 필터링 기능 사용여부 | |
| searchPlaceholder | '' | String | <셀렉트> 필터링의 표기문구 | |
| noMatchingText | '' | String | <셀렉트> 필터링 결과가 없을 시 표기문구 | |
> - <셀렉트> 클릭 시 <드랍다운 박스>가 나타나며, 목록 선택 시 <드랍다운 박스>가 닫히지 말아야 한다.
>

Expand All @@ -53,4 +63,4 @@
| change | event | <셀렉트> 내 v-model 변화 이벤트 감지 |

>### 참고
- 현재 개발 진행 중
-
141 changes: 124 additions & 17 deletions docs/views/select/example/Default.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,10 @@
<div class="case">
<p class="case-title">Common</p>
<ev-select
v-if="isShow"
v-model="selectVal1"
:items="items1"
/>
<br>
<ev-select
v-model="selectVal2"
:placeholder="'phdsfsdfjsdhfdfgdfgdfsdjkfhsjkdhjkk'"
:items="items1"
placeholder="Please select value."
@change="changeSelect1"
/>
<div class="description">
<button
Expand All @@ -20,23 +15,71 @@
</button>
first selectbox value : {{ selectVal1 }}
</div>
<div class="description">
change val : {{ selectEventVal.val }} / change e : {{ selectEventVal.e }}
</div>
</div>
<div class="case">
<p class="case-title">Disabled Item</p>
<ev-select
v-model="selectVal3"
:items="items3"
/>
<div class="description">
<button
@click="disableIdx1"
>
Disable Items[1]
</button>
selected value : {{ selectVal3 }}
</div>
<div class="description">
items : {{ items3 }}
</div>
</div>
<div class="case">
<p class="case-title">Disabled Select</p>
<ev-select
v-model="selectVal4"
:items="items4"
:disabled="isDisabled"
/>
<br>
<div class="description">
<button
@click="toggleEvSelect"
@click="disableSelect"
>
ON / OFF
Disable Selectbox
</button>
selected value : {{ selectVal4 }}
</div>
</div>
<div class="case">
<p class="case-title">Clearable Select</p>
<ev-select
v-model="selectVal4"
:items="items4"
placeholder="Please Select Item."
clearable
/>
</div>
<div class="case">
<p class="case-title">Filterable Select</p>
<ev-select
v-model="selectVal4"
:items="items4"
placeholder="Please Select Item."
filterable
/>
</div>
</template>

<script>
import { ref } from 'vue';
import { ref, reactive } from 'vue';

export default {
setup() {
const selectVal1 = ref('value4');
const selectVal2 = ref('');
const selectVal1 = ref('');
const items1 = ref([
{
name: 'name0name0name0name0name0',
Expand Down Expand Up @@ -75,24 +118,88 @@ export default {
value: 'value8',
},
]);
const selectEventVal = reactive({
e: null,
val: null,
});

const isShow = ref(true);
const toggleEvSelect = () => { isShow.value = !isShow.value; };
const addItem = () => {
const count = items1.value.length;
items1.value.push({
name: `name${count}`,
value: `value${count}`,
});
};
const changeSelect1 = (val, e) => {
selectEventVal.val = val;
selectEventVal.e = e;
};

const selectVal3 = ref('value1');
const items3 = ref([
{
name: 'name1',
value: 'value1',
},
{
name: 'name2',
value: 'value2',
disabled: true,
},
{
name: 'name3',
value: 'value3',
},
]);
const disableIdx1 = () => {
items3.value[1].disabled = !items3.value[1].disabled;
};

const selectVal4 = ref('value2');
const items4 = ref([
{
name: 'name1',
value: 'value1',
},
{
name: 'name2',
value: 'value2',
},
{
name: 'name3',
value: 'value3',
},
{
name: 'name13',
value: 'value13',
},
{
name: 'name23',
value: 'value23',
},
{
name: 'name33',
value: 'value33',
},
]);
const isDisabled = ref(true);
const disableSelect = () => { isDisabled.value = !isDisabled.value; };

return {
isShow,
toggleEvSelect,
selectVal1,
selectVal2,
items1,
selectEventVal,
addItem,
changeSelect1,

selectVal3,
items3,
disableIdx1,

selectVal4,
items4,
isDisabled,
disableSelect,
};
},
};
Expand Down
Loading