@netang/quasar 0.0.20
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/LICENSE +21 -0
- package/README.md +17 -0
- package/components/column-title/index.vue +32 -0
- package/components/dialog/components/index.js +6 -0
- package/components/dialog/components/move-to-tree/index.vue +150 -0
- package/components/dialog/index.vue +330 -0
- package/components/dialog-table/index.vue +92 -0
- package/components/dragger/index.vue +202 -0
- package/components/drawer/index.vue +262 -0
- package/components/field-date/index.vue +844 -0
- package/components/field-date/methods.js +100 -0
- package/components/field-table/index.vue +468 -0
- package/components/field-text/index.vue +167 -0
- package/components/field-tree/index.vue +435 -0
- package/components/input-number/index.vue +324 -0
- package/components/input-number/number.js +67 -0
- package/components/input-price-cent/index.vue +213 -0
- package/components/input-price-yuan/index.vue +179 -0
- package/components/layout/index.vue +119 -0
- package/components/list-menu/index.vue +137 -0
- package/components/list-menu-item/index.vue +79 -0
- package/components/power-data/index.vue +667 -0
- package/components/search/index.vue +176 -0
- package/components/search-item/index.vue +219 -0
- package/components/select/index.vue +71 -0
- package/components/select-filter/index.vue +75 -0
- package/components/table/index.vue +347 -0
- package/components/table-column-fixed/index.vue +68 -0
- package/components/table-pagination/index.vue +83 -0
- package/components/table-summary/index.vue +91 -0
- package/components/thumbnail/index.vue +87 -0
- package/components/toolbar/container.vue +31 -0
- package/components/toolbar/index.vue +405 -0
- package/components/uploader/index.vue +157 -0
- package/components/uploader-query/index.vue +731 -0
- package/package.json +21 -0
- package/sass/common.scss +165 -0
- package/sass/index.scss +14 -0
- package/sass/line.scss +39 -0
- package/sass/quasar/btn.scss +46 -0
- package/sass/quasar/common.scss +3 -0
- package/sass/quasar/dialog.scss +7 -0
- package/sass/quasar/drawer.scss +6 -0
- package/sass/quasar/field.scss +210 -0
- package/sass/quasar/loading.scss +6 -0
- package/sass/quasar/menu.scss +8 -0
- package/sass/quasar/table.scss +112 -0
- package/sass/quasar/toolbar.scss +22 -0
- package/store/index.js +32 -0
- package/utils/$area.js +387 -0
- package/utils/$auth.js +135 -0
- package/utils/$dialog.js +43 -0
- package/utils/$role.js +807 -0
- package/utils/$rule.js +17 -0
- package/utils/$search.js +336 -0
- package/utils/$table.js +802 -0
- package/utils/$tree.js +620 -0
- package/utils/$uploader.js +1029 -0
- package/utils/alert.js +10 -0
- package/utils/bus.js +6 -0
- package/utils/config.js +22 -0
- package/utils/confrim.js +11 -0
- package/utils/dict.js +44 -0
- package/utils/getData.js +61 -0
- package/utils/getFile.js +30 -0
- package/utils/getImage.js +136 -0
- package/utils/getTime.js +94 -0
- package/utils/http.js +251 -0
- package/utils/loading.js +13 -0
- package/utils/notify.js +13 -0
- package/utils/previewImage.js +8 -0
- package/utils/symbols.js +3 -0
- package/utils/timestamp.js +18 -0
- package/utils/toast.js +13 -0
- package/utils/uploader/aliyun.js +6 -0
- package/utils/uploader/local.js +8 -0
- package/utils/uploader/qiniu.js +311 -0
- package/utils/useAuth.js +26 -0
- package/utils/useRouter.js +36 -0
- package/utils/useUploader.js +58 -0
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@netang/quasar",
|
|
3
|
+
"version": "0.0.20",
|
|
4
|
+
"description": "netang-quasar",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/netangsoft/netang-quasar.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"netang-quasar"
|
|
14
|
+
],
|
|
15
|
+
"author": "Netang",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/netangsoft/netang-quasar/issues"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://github.com/netangsoft/netang-quasar#readme"
|
|
21
|
+
}
|
package/sass/common.scss
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 亮色
|
|
3
|
+
*/
|
|
4
|
+
.body--light {
|
|
5
|
+
// 反色
|
|
6
|
+
--n-reverse-color: var(--q-dark);
|
|
7
|
+
// 反色 rgb(亮色是黑色)
|
|
8
|
+
--n-reverse-color-rgb: 0, 0, 0;
|
|
9
|
+
// 主题颜色
|
|
10
|
+
--n-mode-color: #ffffff;;
|
|
11
|
+
// 占位符颜色
|
|
12
|
+
--n-placeholder-color: rgba(0, 0, 0, 0.5);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 暗色
|
|
17
|
+
*/
|
|
18
|
+
.body--dark {
|
|
19
|
+
// 反色
|
|
20
|
+
--n-reverse-color: #ffffff;
|
|
21
|
+
// 反色 rgb(暗色是白色)
|
|
22
|
+
--n-reverse-color-rgb: 255, 255, 255;
|
|
23
|
+
// 主题颜色
|
|
24
|
+
--n-mode-color: var(--q-dark);
|
|
25
|
+
// 占位符颜色
|
|
26
|
+
--n-placeholder-color: rgba(255, 255, 255, 0.5);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
body {
|
|
30
|
+
--n-bg-grey-1: rgba(var(--n-reverse-color-rgb), 0.02);
|
|
31
|
+
--n-bg-grey-2: rgba(var(--n-reverse-color-rgb), 0.04);
|
|
32
|
+
--n-bg-grey-3: rgba(var(--n-reverse-color-rgb), 0.07);
|
|
33
|
+
--n-bg-grey-4: rgba(var(--n-reverse-color-rgb), 0.12);
|
|
34
|
+
--n-bg-grey-5: rgba(var(--n-reverse-color-rgb), 0.26);
|
|
35
|
+
--n-bg-grey-6: rgba(var(--n-reverse-color-rgb), 0.38);
|
|
36
|
+
--n-bg-grey-7: rgba(var(--n-reverse-color-rgb), 0.54);
|
|
37
|
+
--n-bg-grey-8: rgba(var(--n-reverse-color-rgb), 0.62);
|
|
38
|
+
--n-bg-grey-9: rgba(var(--n-reverse-color-rgb), 0.75);
|
|
39
|
+
--n-bg-grey-10: rgba(var(--n-reverse-color-rgb), 0.86);
|
|
40
|
+
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// 字体大小 12 像素
|
|
45
|
+
.n-font-size-12 {
|
|
46
|
+
font-size: 12px;
|
|
47
|
+
}
|
|
48
|
+
// 字体大小 13 像素
|
|
49
|
+
.n-font-size-13 {
|
|
50
|
+
font-size: 13px;
|
|
51
|
+
}
|
|
52
|
+
// 字体大小 14 像素
|
|
53
|
+
.n-font-size-14 {
|
|
54
|
+
font-size: 14px;
|
|
55
|
+
}
|
|
56
|
+
// 字体大小 15 像素
|
|
57
|
+
.n-font-size-15 {
|
|
58
|
+
font-size: 15px;
|
|
59
|
+
}
|
|
60
|
+
// 字体大小 16 像素
|
|
61
|
+
.n-font-size-16 {
|
|
62
|
+
font-size: 16px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// 占位符
|
|
66
|
+
.n-placeholder {
|
|
67
|
+
color: var(--n-placeholder-color);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.n-pointer-none {
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//.n-color-primary,
|
|
75
|
+
//.n-color-main {
|
|
76
|
+
// color: var(--q-primary);
|
|
77
|
+
//}
|
|
78
|
+
//.n-color-success {
|
|
79
|
+
// color: var(--q-positive);
|
|
80
|
+
//}
|
|
81
|
+
//.n-color-warning {
|
|
82
|
+
// color: var(--q-warning);
|
|
83
|
+
//}
|
|
84
|
+
//.n-color-danger {
|
|
85
|
+
// color: var(--q-negative);
|
|
86
|
+
//}
|
|
87
|
+
//.n-color-info {
|
|
88
|
+
// color: var(--q-info);
|
|
89
|
+
//}
|
|
90
|
+
|
|
91
|
+
// flex 1
|
|
92
|
+
.n-flex-1 {
|
|
93
|
+
flex: 1;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 网格行填充
|
|
97
|
+
.n-col-space {
|
|
98
|
+
width: 100%;
|
|
99
|
+
padding: 0;
|
|
100
|
+
margin: 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.n-bg-grey-1 {
|
|
104
|
+
background-color: var(--n-bg-grey-1)
|
|
105
|
+
}
|
|
106
|
+
.n-bg-grey-2 {
|
|
107
|
+
background-color: var(--n-bg-grey-2)
|
|
108
|
+
}
|
|
109
|
+
.n-bg-grey-3 {
|
|
110
|
+
background-color: var(--n-bg-grey-3)
|
|
111
|
+
}
|
|
112
|
+
.n-bg-grey-4 {
|
|
113
|
+
background-color: var(--n-bg-grey-4)
|
|
114
|
+
}
|
|
115
|
+
.n-bg-grey-5 {
|
|
116
|
+
background-color: var(--n-bg-grey-5)
|
|
117
|
+
}
|
|
118
|
+
.n-bg-grey-6 {
|
|
119
|
+
background-color: var(--n-bg-grey-6)
|
|
120
|
+
}
|
|
121
|
+
.n-bg-grey-7 {
|
|
122
|
+
background-color: var(--n-bg-grey-7)
|
|
123
|
+
}
|
|
124
|
+
.n-bg-grey-8 {
|
|
125
|
+
background-color: var(--n-bg-grey-8)
|
|
126
|
+
}
|
|
127
|
+
.n-bg-grey-9 {
|
|
128
|
+
background-color: var(--n-bg-grey-9)
|
|
129
|
+
}
|
|
130
|
+
.n-bg-grey-10 {
|
|
131
|
+
background-color: var(--n-bg-grey-10)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* 桌面
|
|
136
|
+
*/
|
|
137
|
+
body.desktop {
|
|
138
|
+
::-webkit-scrollbar {
|
|
139
|
+
height: 10px;
|
|
140
|
+
width: 10px;
|
|
141
|
+
overflow: visible;
|
|
142
|
+
}
|
|
143
|
+
::-webkit-scrollbar-button {
|
|
144
|
+
height: 0;
|
|
145
|
+
width: 0;
|
|
146
|
+
}
|
|
147
|
+
::-webkit-scrollbar-corner {
|
|
148
|
+
background: transparent;
|
|
149
|
+
}
|
|
150
|
+
::-webkit-scrollbar-thumb,
|
|
151
|
+
::-webkit-scrollbar-track {
|
|
152
|
+
border-radius: 0;
|
|
153
|
+
border: none;
|
|
154
|
+
background-clip: padding-box;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
::-webkit-scrollbar-thumb,
|
|
158
|
+
::-webkit-scrollbar-track,
|
|
159
|
+
::-webkit-scrollbar-thumb:hover {
|
|
160
|
+
background-color: rgba(var(--n-reverse-color-rgb), 0.2);
|
|
161
|
+
}
|
|
162
|
+
::-webkit-scrollbar-track {
|
|
163
|
+
background-color: rgba(var(--n-reverse-color-rgb), 0.05);
|
|
164
|
+
}
|
|
165
|
+
}
|
package/sass/index.scss
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@import "~quasar/dist/quasar.sass";
|
|
2
|
+
|
|
3
|
+
@import "quasar/common";
|
|
4
|
+
@import "quasar/btn";
|
|
5
|
+
@import "quasar/dialog";
|
|
6
|
+
@import "quasar/drawer";
|
|
7
|
+
@import "quasar/field";
|
|
8
|
+
@import "quasar/loading";
|
|
9
|
+
@import "quasar/menu";
|
|
10
|
+
@import "quasar/table";
|
|
11
|
+
@import "quasar/toolbar";
|
|
12
|
+
|
|
13
|
+
@import "common";
|
|
14
|
+
@import "line";
|
package/sass/line.scss
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 极细线
|
|
3
|
+
*/
|
|
4
|
+
.n-line {
|
|
5
|
+
border: 1px solid $separator-color;
|
|
6
|
+
&--top {
|
|
7
|
+
border-top: 1px solid $separator-color;
|
|
8
|
+
}
|
|
9
|
+
&--right {
|
|
10
|
+
border-right: 1px solid $separator-color;
|
|
11
|
+
}
|
|
12
|
+
&--bottom {
|
|
13
|
+
border-bottom: 1px solid $separator-color;
|
|
14
|
+
}
|
|
15
|
+
&--left {
|
|
16
|
+
border-left: 1px solid $separator-color;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 暗色
|
|
22
|
+
*/
|
|
23
|
+
.body--dark {
|
|
24
|
+
.n-line {
|
|
25
|
+
border-color: $separator-dark-color;
|
|
26
|
+
&--top {
|
|
27
|
+
border-top-color: $separator-dark-color;
|
|
28
|
+
}
|
|
29
|
+
&--right {
|
|
30
|
+
border-right-color: $separator-dark-color;
|
|
31
|
+
}
|
|
32
|
+
&--bottom {
|
|
33
|
+
border-bottom-color: $separator-dark-color;
|
|
34
|
+
}
|
|
35
|
+
&--left {
|
|
36
|
+
border-left-color: $separator-dark-color;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 按钮
|
|
3
|
+
*/
|
|
4
|
+
.q-btn {
|
|
5
|
+
&.disabled {
|
|
6
|
+
opacity: 0.5 !important;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// 线条默认按钮
|
|
10
|
+
&--outline {
|
|
11
|
+
&.text-default {
|
|
12
|
+
&:before {
|
|
13
|
+
border-color: rgba(var(--n-reverse-color-rgb), 0.2);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.n-button {
|
|
20
|
+
// 带图标的按钮
|
|
21
|
+
&-icon {
|
|
22
|
+
.q-icon {
|
|
23
|
+
font-size: 1.315em;
|
|
24
|
+
}
|
|
25
|
+
.on-left {
|
|
26
|
+
margin-right: 5px;
|
|
27
|
+
}
|
|
28
|
+
.on-right {
|
|
29
|
+
margin-left: 5px;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// 亮色
|
|
37
|
+
.body--light {
|
|
38
|
+
.q-btn {
|
|
39
|
+
// 线条默认按钮
|
|
40
|
+
&--outline {
|
|
41
|
+
&.text-default {
|
|
42
|
+
background: #ffffff !important;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 输入框
|
|
3
|
+
*/
|
|
4
|
+
.q-field {
|
|
5
|
+
&--outlined {
|
|
6
|
+
.q-field__control {
|
|
7
|
+
// 输入框边框颜色
|
|
8
|
+
&:after {
|
|
9
|
+
border-width: 1px !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// 输入框边框颜色
|
|
13
|
+
&:before {
|
|
14
|
+
border-color: rgba(var(--n-reverse-color-rgb), 0.15) !important;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// 输入框激活后高亮
|
|
19
|
+
&.q-field--highlighted {
|
|
20
|
+
// 输入框激活后高亮边框宽度
|
|
21
|
+
.q-field__control:after {
|
|
22
|
+
border-width: 1px !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// 输入框触碰边框颜色
|
|
26
|
+
&:hover:before {
|
|
27
|
+
border-color: rgba(var(--n-reverse-color-rgb), 0.4) !important;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&--labeled {
|
|
33
|
+
&.q-field--float {
|
|
34
|
+
.q-field__native,
|
|
35
|
+
.q-field__input {
|
|
36
|
+
&::-webkit-input-placeholder {
|
|
37
|
+
color: var(--n-placeholder-color) !important;
|
|
38
|
+
}
|
|
39
|
+
&::-moz-placeholder {
|
|
40
|
+
color: var(--n-placeholder-color) !important;
|
|
41
|
+
}
|
|
42
|
+
&::-ms-input-placeholder {
|
|
43
|
+
color: var(--n-placeholder-color) !important;
|
|
44
|
+
}
|
|
45
|
+
&::-ms-input-placeholder {
|
|
46
|
+
color: var(--n-placeholder-color) !important;
|
|
47
|
+
}
|
|
48
|
+
&::placeholder {
|
|
49
|
+
color: var(--n-placeholder-color) !important;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 分组
|
|
58
|
+
*/
|
|
59
|
+
.n-field-group {
|
|
60
|
+
> .q-field--outlined {
|
|
61
|
+
// 非第一个子节点
|
|
62
|
+
&:not(:first-child) {
|
|
63
|
+
.q-field__control {
|
|
64
|
+
&:before {
|
|
65
|
+
left: -1px;
|
|
66
|
+
border-left-color: transparent !important;
|
|
67
|
+
}
|
|
68
|
+
border-top-left-radius: inherit !important;
|
|
69
|
+
border-bottom-left-radius: inherit !important;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// 非最后一个子节点
|
|
73
|
+
&:not(:last-child) {
|
|
74
|
+
.q-field__control {
|
|
75
|
+
border-top-right-radius: inherit !important;
|
|
76
|
+
border-bottom-right-radius: inherit !important;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
> .n-field-group {
|
|
82
|
+
|
|
83
|
+
// 非第一个子节点
|
|
84
|
+
&:not(:first-child) {
|
|
85
|
+
margin-top: -1px;
|
|
86
|
+
|
|
87
|
+
.q-field--outlined {
|
|
88
|
+
|
|
89
|
+
// 第一个子节点
|
|
90
|
+
&:first-child {
|
|
91
|
+
.q-field__control {
|
|
92
|
+
border-top-left-radius: inherit !important;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 最后一个子节点
|
|
97
|
+
&:first-child {
|
|
98
|
+
.q-field__control {
|
|
99
|
+
border-top-right-radius: inherit !important;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.q-field__control {
|
|
104
|
+
&:before {
|
|
105
|
+
border-top-color: transparent !important;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// 非最后一个子节点
|
|
112
|
+
&:not(:last-child) {
|
|
113
|
+
.q-field--outlined {
|
|
114
|
+
|
|
115
|
+
// 第一个子节点
|
|
116
|
+
&:first-child {
|
|
117
|
+
.q-field__control {
|
|
118
|
+
border-bottom-left-radius: inherit !important;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// 最后一个子节点
|
|
123
|
+
&:first-child {
|
|
124
|
+
.q-field__control {
|
|
125
|
+
border-bottom-right-radius: inherit !important;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 字段集样式
|
|
135
|
+
*/
|
|
136
|
+
.n-field-fieldset {
|
|
137
|
+
&.q-field {
|
|
138
|
+
&--labeled {
|
|
139
|
+
.q-field__prefix,
|
|
140
|
+
.q-field__suffix {
|
|
141
|
+
padding-top: 0 !important;
|
|
142
|
+
padding-bottom: 0 !important;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
.q-field__native {
|
|
147
|
+
padding-top: 0 !important;
|
|
148
|
+
padding-bottom: 0 !important;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.q-field__label {
|
|
152
|
+
left: -6px;
|
|
153
|
+
padding: 0 6px;
|
|
154
|
+
z-index: 1 !important;
|
|
155
|
+
border-radius: 6px;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&--float {
|
|
160
|
+
.q-field__label {
|
|
161
|
+
transform: translateY(-120%) scale(0.85) !important;
|
|
162
|
+
background-color: var(--n-mode-color) !important;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// 紧凑模式
|
|
167
|
+
&--dense {
|
|
168
|
+
&.q-field--float {
|
|
169
|
+
.q-field__label {
|
|
170
|
+
transform: translateY(-80%) scale(0.85) !important;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.q-field__native,
|
|
176
|
+
.q-field__input {
|
|
177
|
+
z-index: 2;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
&.q-field--auto-height.q-field--labeled .q-field__control-container {
|
|
182
|
+
padding-top: 4px;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* 亮色
|
|
188
|
+
*/
|
|
189
|
+
.body--light {
|
|
190
|
+
// 输入框背景 白色
|
|
191
|
+
.n-field-fieldset {
|
|
192
|
+
&.q-field {
|
|
193
|
+
&--outlined {
|
|
194
|
+
.q-field__inner {
|
|
195
|
+
&:before {
|
|
196
|
+
content: "";
|
|
197
|
+
position: absolute;
|
|
198
|
+
top: 1px;
|
|
199
|
+
left: 0;
|
|
200
|
+
right: 0;
|
|
201
|
+
bottom: 1px;
|
|
202
|
+
border-radius: 4px;
|
|
203
|
+
background-color: #ffffff;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 表格
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// 头部底部背景色
|
|
6
|
+
$header-footer-bg-color: $grey-2;
|
|
7
|
+
$dark-header-footer-bg-color: $color-gray-93;
|
|
8
|
+
// 单元格背景色
|
|
9
|
+
$td-bg-color: #ffffff;
|
|
10
|
+
$dark-td-bg-color: $dark;
|
|
11
|
+
|
|
12
|
+
.n-table {
|
|
13
|
+
|
|
14
|
+
// 宫格模式
|
|
15
|
+
&--grid {
|
|
16
|
+
background-color: rgba(var(--n-reverse-color-rgb), 0.1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// 撑满
|
|
20
|
+
&.absolute-full {
|
|
21
|
+
border-radius: unset;
|
|
22
|
+
|
|
23
|
+
// 顶部吸顶
|
|
24
|
+
thead tr th {
|
|
25
|
+
position: sticky;
|
|
26
|
+
z-index: 2;
|
|
27
|
+
}
|
|
28
|
+
thead tr:first-child th {
|
|
29
|
+
top: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 最后一列固定
|
|
33
|
+
&.n-table--last-fixed {
|
|
34
|
+
// 最后一列吸顶
|
|
35
|
+
th:last-child,
|
|
36
|
+
td:last-child {
|
|
37
|
+
position: sticky;
|
|
38
|
+
right: 0;
|
|
39
|
+
z-index: 1;
|
|
40
|
+
}
|
|
41
|
+
th:last-child {
|
|
42
|
+
z-index: 2;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// 亮色
|
|
49
|
+
.body--light {
|
|
50
|
+
.n-table {
|
|
51
|
+
|
|
52
|
+
// 头部和底部背景色
|
|
53
|
+
.q-table__top,
|
|
54
|
+
.q-table__bottom,
|
|
55
|
+
thead tr:first-child th {
|
|
56
|
+
background-color: $header-footer-bg-color;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// 撑满
|
|
60
|
+
&.absolute-full {
|
|
61
|
+
// 最后一列固定
|
|
62
|
+
&.n-table--last-fixed {
|
|
63
|
+
// 头部最后一个
|
|
64
|
+
thead tr:last-child th:last-child {
|
|
65
|
+
background-color: $header-footer-bg-color;
|
|
66
|
+
}
|
|
67
|
+
// 内容最后一个
|
|
68
|
+
td:last-child {
|
|
69
|
+
background-color: $td-bg-color;
|
|
70
|
+
}
|
|
71
|
+
th:last-child,
|
|
72
|
+
td:last-child {
|
|
73
|
+
background-color: $td-bg-color;
|
|
74
|
+
border-left: 1px solid $table-border-color;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// 暗色
|
|
82
|
+
.body--dark {
|
|
83
|
+
.n-table {
|
|
84
|
+
|
|
85
|
+
// 头部和底部背景色
|
|
86
|
+
.q-table__top,
|
|
87
|
+
.q-table__bottom,
|
|
88
|
+
thead tr:first-child th {
|
|
89
|
+
background-color: $dark-header-footer-bg-color;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// 撑满
|
|
93
|
+
&.absolute-full {
|
|
94
|
+
// 最后一列固定
|
|
95
|
+
&.n-table--last-fixed {
|
|
96
|
+
// 头部最后一个
|
|
97
|
+
thead tr:last-child th:last-child {
|
|
98
|
+
background-color: $dark-header-footer-bg-color;
|
|
99
|
+
}
|
|
100
|
+
// 内容最后一个
|
|
101
|
+
td:last-child {
|
|
102
|
+
background-color: $dark-td-bg-color;
|
|
103
|
+
}
|
|
104
|
+
th:last-child,
|
|
105
|
+
td:last-child {
|
|
106
|
+
background-color: $dark-td-bg-color;
|
|
107
|
+
border-left: 1px solid $table-dark-border-color;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 头部
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 亮色
|
|
7
|
+
*/
|
|
8
|
+
.body--light {
|
|
9
|
+
.n-toolbar {
|
|
10
|
+
color: $grey-8 !important;
|
|
11
|
+
background: $grey-2 !important;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 暗色
|
|
17
|
+
*/
|
|
18
|
+
.body--dark {
|
|
19
|
+
.n-toolbar {
|
|
20
|
+
background: var(--q-dark) !important;
|
|
21
|
+
}
|
|
22
|
+
}
|
package/store/index.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ref } from 'vue'
|
|
2
|
+
import { initAuthStore } from '../utils/useAuth'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 公共变量
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// 角色数据
|
|
9
|
+
export const stateRole = ref({
|
|
10
|
+
// 角色权限版本
|
|
11
|
+
v: null,
|
|
12
|
+
// all id
|
|
13
|
+
all: {},
|
|
14
|
+
// 页面
|
|
15
|
+
urls: {},
|
|
16
|
+
// 按钮
|
|
17
|
+
btns: {},
|
|
18
|
+
// 菜单
|
|
19
|
+
menus: [],
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
// 时间差
|
|
23
|
+
export const stateTimeDiff = ref(0)
|
|
24
|
+
|
|
25
|
+
// loading
|
|
26
|
+
export const stateLoading = ref(false)
|
|
27
|
+
|
|
28
|
+
// 网络是否在线
|
|
29
|
+
export const stateOnLine = ref(navigator.onLine)
|
|
30
|
+
|
|
31
|
+
// 管理员信息状态
|
|
32
|
+
export const stateAdminUserInfo = ref(initAuthStore())
|