@mptw/skylens-ui 1.4.109 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +59 -0
- package/CLAUDE.md +36 -0
- package/README.md +7 -7
- package/app/app.config.ts +14 -0
- package/app/app.vue +5 -0
- package/app/assets/css/layout.css +134 -0
- package/app/assets/css/main.css +189 -0
- package/{components → app/components}/SLAlertModal.vue +24 -16
- package/{components → app/components}/SLBreadcrumbs.vue +12 -8
- package/app/components/SLButton.vue +370 -0
- package/{components → app/components}/SLCalendarButton.vue +40 -34
- package/{components → app/components}/SLCalendarPopup.vue +79 -53
- package/{components → app/components}/SLCard.vue +57 -41
- package/{components → app/components}/SLChart.vue +6 -3
- package/{components → app/components}/SLCheckbox.vue +92 -49
- package/{components → app/components}/SLCircleButton.vue +25 -16
- package/{components → app/components}/SLCollapsableBlock.vue +44 -33
- package/{components → app/components}/SLCollapsableMulitPillSelect.vue +20 -15
- package/{components → app/components}/SLConfirmModal.vue +9 -6
- package/{components → app/components}/SLContextMenu.vue +88 -48
- package/{components → app/components}/SLDateInput.vue +109 -92
- package/{components → app/components}/SLDatePicker.vue +9 -7
- package/{components → app/components}/SLDistributor.vue +1 -1
- package/{components → app/components}/SLDownloadButton.vue +39 -29
- package/{components → app/components}/SLDraggable.vue +2 -2
- package/{components → app/components}/SLDropdown.vue +33 -25
- package/{components → app/components}/SLDropdownItem.vue +9 -5
- package/{components → app/components}/SLElementWithTitle.vue +12 -7
- package/{components → app/components}/SLEyeCheckbox.vue +44 -31
- package/{components → app/components}/SLFileInput.vue +23 -16
- package/{components → app/components}/SLGenderAgeSelect.vue +52 -36
- package/{components → app/components}/SLHourRangeInput.vue +45 -32
- package/{components → app/components}/SLIOSSwitch.vue +81 -60
- package/{components → app/components}/SLIcon.vue +4 -3
- package/{components → app/components}/SLIconButton.vue +31 -29
- package/{components → app/components}/SLInfoTip.vue +51 -40
- package/{components → app/components}/SLInsightSitePage.vue +12 -7
- package/{components → app/components}/SLLegend.vue +19 -12
- package/app/components/SLLinearProgressBar.vue +22 -0
- package/{components → app/components}/SLLink.vue +12 -8
- package/{components → app/components}/SLLoading.vue +34 -31
- package/{components → app/components}/SLMapChart.vue +5 -4
- package/{components → app/components}/SLModal.vue +90 -66
- package/{components → app/components}/SLMonthCalendarButton.vue +91 -45
- package/{components → app/components}/SLMonthPicker.vue +42 -37
- package/{components → app/components}/SLMultiEmailInput.vue +163 -113
- package/{components → app/components}/SLMultiSelect.vue +37 -26
- package/{components → app/components}/SLNoData.vue +16 -11
- package/app/components/SLNotification.vue +155 -0
- package/{components → app/components}/SLPageModal.vue +14 -9
- package/{components → app/components}/SLPagination.vue +45 -33
- package/{components → app/components}/SLPillCheckbox.vue +50 -42
- package/{components → app/components}/SLPillLabel.vue +43 -28
- package/{components → app/components}/SLPopupMenuButton.vue +26 -17
- package/{components → app/components}/SLProfileButton.vue +28 -20
- package/{components → app/components}/SLProjectShareItem.vue +30 -17
- package/{components → app/components}/SLRadioButton.vue +41 -33
- package/{components → app/components}/SLRadioButtonGroup.vue +28 -23
- package/app/components/SLRadioGroup.vue +221 -0
- package/{components → app/components}/SLRangeInput.vue +53 -38
- package/{components → app/components}/SLRegionsMapChart.vue +5 -4
- package/{components → app/components}/SLRightSider.vue +50 -40
- package/{components → app/components}/SLSearchInput.vue +24 -19
- package/{components → app/components}/SLSelect.vue +114 -87
- package/{components → app/components}/SLSelectAllToggle.vue +52 -37
- package/app/components/SLSidebarNav.vue +487 -0
- package/{components → app/components}/SLSidebarNavGroupItem.vue +13 -10
- package/{components → app/components}/SLSidebarNavGroupItemSection.vue +240 -179
- package/{components → app/components}/SLSidebarNavLinkItem.vue +131 -109
- package/{components → app/components}/SLSidebarNavSectionItem.vue +21 -18
- package/{components → app/components}/SLSitePage.vue +35 -24
- package/{components → app/components}/SLSkyInsightSitePage.vue +13 -8
- package/{components → app/components}/SLSortByDropdown.vue +35 -22
- package/{components → app/components}/SLSpinIcon.vue +6 -3
- package/{components → app/components}/SLStayRangeInput.vue +47 -36
- package/{components → app/components}/SLTab.vue +7 -2
- package/app/components/SLTable.vue +472 -0
- package/{components → app/components}/SLTableTooltip.vue +44 -30
- package/app/components/SLTabs.vue +528 -0
- package/{components → app/components}/SLTextInput.vue +162 -134
- package/{components → app/components}/SLTextarea.vue +40 -29
- package/{components → app/components}/SLToast.vue +19 -11
- package/{components → app/components}/SLToggleButton.vue +18 -11
- package/{components → app/components}/SLTwoLayerMultiSelect.vue +180 -85
- package/{components → app/components}/SLTwoLayerSelect.vue +47 -37
- package/{components → app/components}/SLTwoLayerSingleSelect.vue +52 -33
- package/{components → app/components}/SLWarnModal.vue +9 -7
- package/app/interface/commons.ts +7 -0
- package/{utils → app/utils}/index.ts +213 -146
- package/eslint.config.js +3 -0
- package/nuxt.config.ts +17 -14
- package/package.json +10 -9
- package/skills-lock.json +59 -0
- package/tsconfig.json +1 -6
- package/.eslintrc.cjs +0 -4
- package/app.config.ts +0 -5
- package/assets/css/layout.styl +0 -98
- package/assets/css/tailwind.css +0 -3
- package/components/SLButton.vue +0 -337
- package/components/SLLinearProgressBar.vue +0 -35
- package/components/SLNotification.vue +0 -151
- package/components/SLRadioGroup.vue +0 -209
- package/components/SLSidebarNav.vue +0 -427
- package/components/SLTable.vue +0 -455
- package/components/SLTabs.vue +0 -475
- package/interface/commons.ts +0 -7
- package/pages/index.vue +0 -15
- package/tailwind.config.js +0 -271
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.eot +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.svg +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.ttf +0 -0
- /package/{assets → app/assets}/css/fonts/MEShPlus-font-icon.woff +0 -0
- /package/{assets → app/assets}/css/icons.css +0 -0
- /package/{assets → app/assets}/images/commons/app-logo-white.png +0 -0
- /package/{assets → app/assets}/images/commons/app-logo.png +0 -0
- /package/{assets → app/assets}/images/commons/empty-box.png +0 -0
- /package/{interface → app/interface}/IDateRange.ts +0 -0
- /package/{interface → app/interface}/IHourRange.ts +0 -0
- /package/{interface → app/interface}/IInputOption.ts +0 -0
- /package/{interface → app/interface}/ILegendItem.ts +0 -0
- /package/{interface → app/interface}/IOrganization.ts +0 -0
- /package/{interface → app/interface}/IPopupMenuButton.ts +0 -0
- /package/{interface → app/interface}/IStayRange.ts +0 -0
- /package/{interface → app/interface}/ITableField.ts +0 -0
- /package/{interface → app/interface}/IWeb.ts +0 -0
- /package/{interface → app/interface}/NavConfigType.ts +0 -0
- /package/{models → app/models}/DateRange.ts +0 -0
- /package/{plugins → app/plugins}/v-calendar.ts +0 -0
- /package/{utils → app/utils}/constants.ts +0 -0
- /package/{utils → app/utils}/generateSheet.ts +0 -0
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
<script lang="ts">
|
|
21
21
|
import type { PropType } from "vue";
|
|
22
|
-
import type IInputOption from "~ui/interface/IInputOption";
|
|
22
|
+
import type IInputOption from "~ui/app/interface/IInputOption";
|
|
23
23
|
|
|
24
24
|
export default defineComponent({
|
|
25
25
|
name: "SLRadioButtonGroup",
|
|
@@ -82,33 +82,38 @@ export default defineComponent({
|
|
|
82
82
|
});
|
|
83
83
|
</script>
|
|
84
84
|
|
|
85
|
-
<style
|
|
86
|
-
.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
<style>
|
|
86
|
+
@reference '~ui/app/assets/css/main.css';
|
|
87
|
+
|
|
88
|
+
.radio-button-group .is-invalid .invalid-feedback {
|
|
89
|
+
@apply block;
|
|
90
|
+
}
|
|
90
91
|
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
.radio-button-group > label {
|
|
93
|
+
@apply mb-2 text-base text-pgray-2 align-top;
|
|
94
|
+
}
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
.radio-button-group .form-control {
|
|
97
|
+
@apply flex flex-col space-y-1;
|
|
98
|
+
}
|
|
96
99
|
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
.radio-button-group .form-control.inline {
|
|
101
|
+
@apply flex flex-row flex-wrap space-x-6 space-y-0;
|
|
102
|
+
}
|
|
99
103
|
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
.radio-button-group .invalid-feedback {
|
|
105
|
+
@apply hidden text-danger text-xs;
|
|
106
|
+
}
|
|
102
107
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
@apply space-x-8
|
|
108
|
+
.radio-button-group--lg .form-control.inline {
|
|
109
|
+
@apply space-x-8;
|
|
110
|
+
}
|
|
107
111
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
.radio-button-group--lg .form-control .radio-button label {
|
|
113
|
+
@apply text-sm;
|
|
114
|
+
}
|
|
111
115
|
|
|
112
|
-
|
|
113
|
-
|
|
116
|
+
.radio-button-group--lg .form-control .radio-button label span {
|
|
117
|
+
@apply ml-2 text-sm;
|
|
118
|
+
}
|
|
114
119
|
</style>
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<template lang="pug">
|
|
2
|
+
SLElementWithTitle(:title='disabled ? disabledHint : ""')
|
|
3
|
+
.radio-group(:class='sizeClass')
|
|
4
|
+
.radio(v-for="option, i in options")
|
|
5
|
+
input(
|
|
6
|
+
type="radio"
|
|
7
|
+
:id="uids[i]"
|
|
8
|
+
:checked="modelValue === option.value"
|
|
9
|
+
:disabled="disabled"
|
|
10
|
+
)
|
|
11
|
+
SLElementWithTitle(:title='option.desc')
|
|
12
|
+
label(@click="onClickedRadio(option.value)")
|
|
13
|
+
span(v-if='option.label') {{ option.label }}
|
|
14
|
+
SLIcon(v-if='option.icon' :icon='option.icon')
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script lang="ts">
|
|
18
|
+
import type { PropType } from "vue";
|
|
19
|
+
import { getUID } from "~ui/app/utils";
|
|
20
|
+
import type IInputOption from "~ui/app/interface/IInputOption";
|
|
21
|
+
|
|
22
|
+
export default defineComponent({
|
|
23
|
+
name: "SLRadioGroup",
|
|
24
|
+
props: {
|
|
25
|
+
modelValue: {
|
|
26
|
+
type: [Number, String, Boolean],
|
|
27
|
+
default: null,
|
|
28
|
+
},
|
|
29
|
+
options: {
|
|
30
|
+
type: Array as PropType<Array<IInputOption>>,
|
|
31
|
+
default: () => [],
|
|
32
|
+
},
|
|
33
|
+
disabled: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: false,
|
|
36
|
+
},
|
|
37
|
+
disabledHint: {
|
|
38
|
+
type: String,
|
|
39
|
+
default: "",
|
|
40
|
+
},
|
|
41
|
+
size: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: "",
|
|
44
|
+
validator: (val: string) =>
|
|
45
|
+
["", "md", "sm", "xs", "xxs", "3xs"].includes(val),
|
|
46
|
+
},
|
|
47
|
+
color: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: "",
|
|
50
|
+
},
|
|
51
|
+
colorInvert: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: false,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
emits: ["update:modelValue"],
|
|
57
|
+
setup(props, { emit }) {
|
|
58
|
+
const { size, color, colorInvert, options, disabled } = toRefs(props);
|
|
59
|
+
|
|
60
|
+
const uids = ref<Array<string>>([]);
|
|
61
|
+
|
|
62
|
+
const sizeClass = computed(() => {
|
|
63
|
+
const classes = [];
|
|
64
|
+
if (size.value !== "") {
|
|
65
|
+
classes.push(`radio-group--${size.value}`);
|
|
66
|
+
}
|
|
67
|
+
if (color.value !== "") {
|
|
68
|
+
classes.push(`radio-group--${color.value}`);
|
|
69
|
+
}
|
|
70
|
+
if (colorInvert.value) {
|
|
71
|
+
classes.push("color-invert");
|
|
72
|
+
}
|
|
73
|
+
if (disabled.value) {
|
|
74
|
+
classes.push("disabled");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return classes.join(" ");
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
function onChanged(e: Event, targetValue: any) {
|
|
81
|
+
const { target } = e;
|
|
82
|
+
if ((target as HTMLInputElement).checked) {
|
|
83
|
+
emit("update:modelValue", targetValue);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function onClickedRadio(targetValue: any) {
|
|
88
|
+
if (disabled.value) return;
|
|
89
|
+
|
|
90
|
+
emit("update:modelValue", targetValue);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
onMounted(() => {
|
|
94
|
+
uids.value = options.value.map(() => getUID());
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return {
|
|
98
|
+
uids,
|
|
99
|
+
sizeClass,
|
|
100
|
+
onChanged,
|
|
101
|
+
onClickedRadio,
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
</script>
|
|
106
|
+
|
|
107
|
+
<style>
|
|
108
|
+
@reference '~ui/app/assets/css/main.css';
|
|
109
|
+
|
|
110
|
+
.radio-group {
|
|
111
|
+
@apply inline-flex p-0.5 bg-primary-100 border border-primary-200 rounded;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.radio-group.radio-group--sm .radio label {
|
|
115
|
+
@apply px-2 py-1.5;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.radio-group.radio-group--xs .radio label {
|
|
119
|
+
@apply px-4 py-0.5 text-sm;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.radio-group.radio-group--xxs {
|
|
123
|
+
@apply p-0.75;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.radio-group.radio-group--xxs .radio label {
|
|
127
|
+
@apply px-2 py-0.75 text-sm;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.radio-group.radio-group--3xs {
|
|
131
|
+
@apply p-0.75;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.radio-group.radio-group--3xs .radio label {
|
|
135
|
+
@apply px-2 py-px text-sm;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.radio-group.radio-group--third-600 {
|
|
139
|
+
@apply bg-third-600 border-third-500;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.radio-group.radio-group--third-600 .radio label {
|
|
143
|
+
@apply bg-third-600 text-white;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.radio-group.radio-group--third-600 .radio input:checked + .element-with-title label {
|
|
147
|
+
@apply text-third;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.radio-group.radio-group--edit {
|
|
151
|
+
@apply bg-edit border-primary;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.radio-group.radio-group--edit.color-invert {
|
|
155
|
+
@apply bg-card-lightpr-bg border-primary-300;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.radio-group.radio-group--edit.color-invert .radio label {
|
|
159
|
+
@apply bg-card-lightpr-bg text-primary-600;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.radio-group.radio-group--edit.color-invert .radio input:checked + .element-with-title label {
|
|
163
|
+
@apply bg-edit text-white;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.radio-group.radio-group--edit .radio label {
|
|
167
|
+
@apply bg-edit text-white;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.radio-group.radio-group--edit .radio input:checked + .element-with-title label {
|
|
171
|
+
@apply text-primary;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.radio-group.radio-group--insight-title {
|
|
175
|
+
@apply bg-primary-100 border-primary-100;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.radio-group.radio-group--insight-title.color-invert {
|
|
179
|
+
@apply bg-card-lightpr-bg border-primary-300;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.radio-group.radio-group--insight-title.color-invert .radio label {
|
|
183
|
+
@apply bg-card-lightpr-bg text-primary-600;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.radio-group.radio-group--insight-title.color-invert .radio input:checked + .element-with-title label {
|
|
187
|
+
@apply bg-edit text-white;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.radio-group.radio-group--insight-title .radio label {
|
|
191
|
+
@apply bg-primary-100 text-primary;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.radio-group.radio-group--insight-title .radio input:checked + .element-with-title label {
|
|
195
|
+
@apply bg-insight-title text-white;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.radio-group.disabled {
|
|
199
|
+
@apply bg-pgray-6 border-pgray-6;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.radio-group .radio {
|
|
203
|
+
@apply relative inline-flex;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.radio-group .radio input {
|
|
207
|
+
@apply absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.radio-group .radio label {
|
|
211
|
+
@apply inline-flex justify-center items-center relative px-3 py-1.25 bg-primary-100 rounded text-base leading-[1.3125] text-primary-600 cursor-pointer transition;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.radio-group .radio input:checked + .element-with-title label {
|
|
215
|
+
@apply bg-white text-primary shadow-default;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.radio-group .radio input:disabled + .element-with-title label {
|
|
219
|
+
@apply bg-pgray-6 text-pgray-4 cursor-default;
|
|
220
|
+
}
|
|
221
|
+
</style>
|
|
@@ -163,47 +163,62 @@ export default defineComponent({
|
|
|
163
163
|
});
|
|
164
164
|
</script>
|
|
165
165
|
|
|
166
|
-
<style
|
|
167
|
-
.
|
|
168
|
-
&.inline
|
|
169
|
-
@apply flex
|
|
166
|
+
<style>
|
|
167
|
+
@reference '~ui/app/assets/css/main.css';
|
|
170
168
|
|
|
171
|
-
|
|
172
|
-
|
|
169
|
+
.range-input.inline {
|
|
170
|
+
@apply flex;
|
|
171
|
+
}
|
|
173
172
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
&.disabled, &.readonly
|
|
178
|
-
.input-group
|
|
179
|
-
.input-range-group
|
|
180
|
-
.range-input-accept-values
|
|
181
|
-
@apply text-pgray-4
|
|
182
|
-
|
|
183
|
-
input[type=text]
|
|
184
|
-
@apply border-primary-600 bg-primary-100
|
|
185
|
-
|
|
186
|
-
& > label
|
|
187
|
-
@apply mb-2 text-base leading-normal text-pgray-2
|
|
188
|
-
|
|
189
|
-
.is-invalid
|
|
190
|
-
.invalid-feedback
|
|
191
|
-
@apply block
|
|
173
|
+
.range-input.inline > label {
|
|
174
|
+
@apply grow-0 shrink-0 mb-0 mr-2 py-2 border-t border-b border-transparent;
|
|
175
|
+
}
|
|
192
176
|
|
|
177
|
+
.range-input.inline .form-control {
|
|
178
|
+
@apply grow;
|
|
179
|
+
}
|
|
193
180
|
|
|
181
|
+
.range-input.disabled
|
|
194
182
|
.input-group
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
183
|
+
.input-range-group
|
|
184
|
+
.range-input-accept-values,
|
|
185
|
+
.range-input.readonly
|
|
186
|
+
.input-group
|
|
187
|
+
.input-range-group
|
|
188
|
+
.range-input-accept-values {
|
|
189
|
+
@apply text-pgray-4;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.range-input.disabled .input-group input[type="text"],
|
|
193
|
+
.range-input.readonly .input-group input[type="text"] {
|
|
194
|
+
@apply border-primary-600 bg-primary-100;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.range-input > label {
|
|
198
|
+
@apply mb-2 text-base leading-[1.3125] text-pgray-2;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.range-input .is-invalid .invalid-feedback {
|
|
202
|
+
@apply block;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.range-input .input-group {
|
|
206
|
+
@apply flex flex-nowrap text-base leading-[1.3125] space-x-4;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.range-input .input-group .input-range-group {
|
|
210
|
+
@apply grow;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.range-input .input-group .input-range-group .range-input-accept-values {
|
|
214
|
+
@apply flex justify-between mb-1 text-sm text-pgray-3;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.range-input .input-group input[type="text"] {
|
|
218
|
+
@apply grow-0 shrink-0 w-11 bg-white border border-primary-600 rounded text-base text-center text-pgray-2 focus:outline-none;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.range-input .invalid-feedback {
|
|
222
|
+
@apply hidden text-danger text-xs;
|
|
223
|
+
}
|
|
209
224
|
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template lang="pug">
|
|
2
|
-
.chart
|
|
2
|
+
.region-map-chart
|
|
3
3
|
ECharts(
|
|
4
4
|
:loading="loading"
|
|
5
5
|
:option="formatedOption"
|
|
@@ -144,7 +144,8 @@ export default defineComponent({
|
|
|
144
144
|
});
|
|
145
145
|
</script>
|
|
146
146
|
|
|
147
|
-
<style
|
|
148
|
-
.chart
|
|
149
|
-
@apply h-52
|
|
147
|
+
<style>
|
|
148
|
+
.region-map-chart {
|
|
149
|
+
@apply h-52;
|
|
150
|
+
}
|
|
150
151
|
</style>
|
|
@@ -199,44 +199,54 @@ export default defineComponent({
|
|
|
199
199
|
});
|
|
200
200
|
</script>
|
|
201
201
|
|
|
202
|
-
<style
|
|
203
|
-
.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
202
|
+
<style>
|
|
203
|
+
@reference '~ui/app/assets/css/main.css';
|
|
204
|
+
|
|
205
|
+
.right-sider {
|
|
206
|
+
@apply z-9 fixed top-0 right-0 h-full;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.right-sider.show,
|
|
210
|
+
.right-sider.hover {
|
|
211
|
+
@apply z-50;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.right-sider.show .right-sider-modal {
|
|
215
|
+
@apply block;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.right-sider-modal {
|
|
219
|
+
@apply fixed top-0 left-0 w-full h-full bg-mask/70 hidden;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.right-sider-content {
|
|
223
|
+
@apply absolute top-4 left-0 flex p-6 bg-white border-t border-l border-b border-primary-600 rounded-l-lg shadow-popup-lg transition-[margin];
|
|
224
|
+
max-width: calc(100vw - var(--spacing) * 4);
|
|
225
|
+
max-height: calc(100% - var(--spacing) * 8);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.right-sider-content .sider-toggle {
|
|
229
|
+
@apply absolute top-0 left-0 inline-flex mt-30.75 -ml-11 p-3 rounded-l-full text-lg text-white;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.right-sider-content .sider-toggle.sider-toggle-third {
|
|
233
|
+
@apply bg-third-600;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.right-sider-content .sider-toggle.sider-toggle-purple {
|
|
237
|
+
@apply bg-edit;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.right-sider-content-wrapper {
|
|
241
|
+
@apply flex max-w-full overflow-hidden;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.right-sider-content .sider-close-button {
|
|
245
|
+
@apply absolute top-0 right-0 inline-flex mt-6 mr-6 text-base text-primary;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.right-sider-addition-content {
|
|
249
|
+
@apply absolute top-4 right-0 flex bg-white border border-primary-600 rounded-lg overflow-hidden shadow-popup-lg transition-[margin];
|
|
250
|
+
max-height: calc(100% - var(--spacing) * 8);
|
|
251
|
+
}
|
|
242
252
|
</style>
|
|
@@ -71,29 +71,34 @@ export default defineComponent({
|
|
|
71
71
|
});
|
|
72
72
|
</script>
|
|
73
73
|
|
|
74
|
-
<style
|
|
75
|
-
.
|
|
76
|
-
.is-focus
|
|
77
|
-
.button-group
|
|
78
|
-
@apply border-primary
|
|
74
|
+
<style>
|
|
75
|
+
@reference '~ui/app/assets/css/main.css';
|
|
79
76
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
.search-input .is-focus .button-group {
|
|
78
|
+
@apply border-primary;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.search-input.search-input--sm .button-group {
|
|
82
|
+
@apply py-0.75;
|
|
83
|
+
}
|
|
83
84
|
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
.search-input.search-input--sm .button-group .btn {
|
|
86
|
+
@apply text-sm;
|
|
87
|
+
}
|
|
86
88
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
.search-input .input-group-append {
|
|
90
|
+
@apply inline-flex border-t border-r border-b border-primary-600 rounded-r bg-white;
|
|
91
|
+
}
|
|
89
92
|
|
|
90
|
-
|
|
91
|
-
|
|
93
|
+
.search-input .button-group {
|
|
94
|
+
@apply inline-flex items-center py-1.75 pr-1.75 space-x-1.75;
|
|
95
|
+
}
|
|
92
96
|
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
.search-input .button-group-divider {
|
|
98
|
+
@apply w-px h-full my-px bg-primary-600;
|
|
99
|
+
}
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
.search-input .button-group .btn {
|
|
102
|
+
@apply p-0 border-0 text-pgray-3 focus:outline-none active:outline-none;
|
|
103
|
+
}
|
|
98
104
|
</style>
|
|
99
|
-
|