forked from marktext/marktext
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.vue
More file actions
118 lines (115 loc) · 2.23 KB
/
index.vue
File metadata and controls
118 lines (115 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<template>
<section class="pref-select-item" :class="{'ag-underdevelop': disable}">
<div class="description" v-if="description">
<span>{{description}}:</span>
<i class="el-icon-info"
v-if="more"
@click="handleMoreClick"
></i>
</div>
<el-select
v-model="selectValue"
@change="select"
:disabled="disable"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<div v-if="notes" class="notes">
{{notes}}
</div>
</section>
</template>
<script>
import { shell } from 'electron'
export default {
data () {
return {
selectValue: this.value
}
},
props: {
description: String,
notes: String,
value: String | Number,
options: Array,
onChange: Function,
more: String,
disable: {
type: Boolean,
default: false
}
},
watch: {
value: function (value, oldValue) {
if (value !== oldValue) {
this.selectValue = value
}
}
},
methods: {
handleMoreClick () {
if (typeof this.more === 'string') {
shell.openExternal(this.more)
}
},
select (value) {
this.onChange(value)
}
}
}
</script>
<style>
.pref-select-item {
margin: 20px 0;
font-size: 14px;
color: var(--editorColor);
& .notes {
margin-top: 10px;
font-style: italic;
font-size: 12px;
}
& .el-select {
width: 100%;
}
& input.el-input__inner {
height: 30px;
background: transparent;
color: var(--editorColor);
border-color: var(--editorColor10);
}
& .el-input__icon,
& .el-input__inner {
line-height: 30px;
}
}
.pref-select-item .description {
margin-bottom: 10px;
& i {
cursor: pointer;
opacity: .7;
color: var(--iconColor);
}
& i:hover {
color: var(--themeColor);
}
}
li.el-select-dropdown__item {
color: var(--editorColor);
height: 30px;
}
li.el-select-dropdown__item.hover, li.el-select-dropdown__item:hover {
background: var(--floatHoverColor);
}
div.el-select-dropdown {
background: var(--floatBgColor);
border-color: var(--floatBorderColor);
& .popper__arrow {
display: none;
}
}
</style>