@qxs-bns/components 0.0.46 → 0.0.48

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.
Files changed (160) hide show
  1. package/es/index.css +83 -0
  2. package/es/package.json.mjs +1 -1
  3. package/es/src/data-chart/src/components/area.vue.mjs +1 -1
  4. package/es/src/data-chart/src/components/card.vue.mjs +1 -1
  5. package/es/src/data-chart/src/components/card.vue2.mjs +1 -1
  6. package/es/src/data-chart/src/components/card.vue2.mjs.map +1 -1
  7. package/es/src/data-chart/src/components/line.vue.mjs +1 -1
  8. package/es/src/data-chart/src/components/table.vue.mjs +1 -1
  9. package/es/src/data-chart/src/components/table.vue.mjs.map +1 -1
  10. package/es/src/file-upload/src/file-upload.vue.mjs +1 -1
  11. package/es/src/file-upload/src/file-upload.vue.mjs.map +1 -1
  12. package/es/src/image-upload/src/image-upload.vue.mjs +1 -1
  13. package/es/src/image-upload/src/image-upload.vue.mjs.map +1 -1
  14. package/es/src/subject-action/src/subject-action.vue.mjs +1 -1
  15. package/es/src/subject-action/src/subject-action.vue.mjs.map +1 -1
  16. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs +1 -1
  17. package/es/src/subject-list/src/components/SubjectPageEnd.vue.mjs.map +1 -1
  18. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs +1 -1
  19. package/es/src/subject-list/src/components/subject-blank-fill.vue.mjs.map +1 -1
  20. package/es/src/subject-list/src/components/subject-scale.vue.mjs +1 -1
  21. package/es/src/subject-list/src/components/subject-scale.vue.mjs.map +1 -1
  22. package/es/src/subject-list/src/components/subject-single.vue.mjs +1 -1
  23. package/es/src/subject-list/src/components/subject-single.vue.mjs.map +1 -1
  24. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs +1 -1
  25. package/es/src/subject-list/src/components/subject-text-fill.vue.mjs.map +1 -1
  26. package/es/src/subject-list/src/subject-list.vue.mjs +1 -1
  27. package/es/src/subject-list/src/subject-list.vue.mjs.map +1 -1
  28. package/es/src/tiny-mce-editor/index.mjs.map +1 -1
  29. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs +1 -1
  30. package/es/src/tiny-mce-editor/src/tiny-mce-editor.vue.mjs.map +1 -1
  31. package/lib/index.css +83 -0
  32. package/lib/package.json.cjs +1 -1
  33. package/lib/src/data-chart/src/components/area.vue.cjs +1 -1
  34. package/lib/src/data-chart/src/components/card.vue.cjs +1 -1
  35. package/lib/src/data-chart/src/components/card.vue2.cjs +1 -1
  36. package/lib/src/data-chart/src/components/card.vue2.cjs.map +1 -1
  37. package/lib/src/data-chart/src/components/line.vue.cjs +1 -1
  38. package/lib/src/data-chart/src/components/table.vue.cjs +1 -1
  39. package/lib/src/data-chart/src/components/table.vue.cjs.map +1 -1
  40. package/lib/src/file-upload/src/file-upload.vue.cjs +1 -1
  41. package/lib/src/file-upload/src/file-upload.vue.cjs.map +1 -1
  42. package/lib/src/image-upload/src/image-upload.vue.cjs +1 -1
  43. package/lib/src/image-upload/src/image-upload.vue.cjs.map +1 -1
  44. package/lib/src/subject-action/src/subject-action.vue.cjs +1 -1
  45. package/lib/src/subject-action/src/subject-action.vue.cjs.map +1 -1
  46. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs +1 -1
  47. package/lib/src/subject-list/src/components/SubjectPageEnd.vue.cjs.map +1 -1
  48. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs +1 -1
  49. package/lib/src/subject-list/src/components/subject-blank-fill.vue.cjs.map +1 -1
  50. package/lib/src/subject-list/src/components/subject-scale.vue.cjs +1 -1
  51. package/lib/src/subject-list/src/components/subject-scale.vue.cjs.map +1 -1
  52. package/lib/src/subject-list/src/components/subject-single.vue.cjs +1 -1
  53. package/lib/src/subject-list/src/components/subject-single.vue.cjs.map +1 -1
  54. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs +1 -1
  55. package/lib/src/subject-list/src/components/subject-text-fill.vue.cjs.map +1 -1
  56. package/lib/src/subject-list/src/subject-list.vue.cjs +1 -1
  57. package/lib/src/subject-list/src/subject-list.vue.cjs.map +1 -1
  58. package/lib/src/tiny-mce-editor/index.cjs.map +1 -1
  59. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs +1 -1
  60. package/lib/src/tiny-mce-editor/src/tiny-mce-editor.vue.cjs.map +1 -1
  61. package/package.json +5 -8
  62. package/theme-chalk/index.css +1 -1
  63. package/theme-chalk/index.scss +13 -0
  64. package/theme-chalk/src/base.css +1 -0
  65. package/theme-chalk/src/base.scss +16 -0
  66. package/theme-chalk/src/common/element-plus.css +1 -0
  67. package/theme-chalk/src/common/element-plus.scss +606 -0
  68. package/theme-chalk/src/data-chart/empty.css +1 -0
  69. package/theme-chalk/src/data-chart/empty.scss +24 -0
  70. package/theme-chalk/src/data-chart/index.css +1 -0
  71. package/theme-chalk/src/data-chart/index.scss +9 -0
  72. package/theme-chalk/src/data-chart/table.css +1 -0
  73. package/theme-chalk/src/data-chart/table.scss +39 -0
  74. package/theme-chalk/src/file-upload.css +1 -0
  75. package/theme-chalk/src/file-upload.scss +34 -0
  76. package/theme-chalk/src/fixed-action-bar.css +1 -0
  77. package/theme-chalk/src/fixed-action-bar.scss +18 -0
  78. package/theme-chalk/src/image-upload.css +1 -0
  79. package/theme-chalk/src/image-upload.scss +135 -0
  80. package/theme-chalk/src/mixins/_var.css +0 -0
  81. package/theme-chalk/src/mixins/_var.scss +24 -0
  82. package/theme-chalk/src/mixins/config.css +0 -0
  83. package/theme-chalk/src/mixins/config.scss +14 -0
  84. package/theme-chalk/src/mixins/function.css +0 -0
  85. package/theme-chalk/src/mixins/function.scss +95 -0
  86. package/theme-chalk/src/mixins/mixins.css +0 -0
  87. package/theme-chalk/src/mixins/mixins.scss +103 -0
  88. package/theme-chalk/src/photo-crop-tool.css +1 -0
  89. package/theme-chalk/src/photo-crop-tool.scss +84 -0
  90. package/theme-chalk/{subject-action.css → src/subject-action.css} +1 -1
  91. package/theme-chalk/src/subject-action.scss +36 -0
  92. package/theme-chalk/src/subject-layout.css +1 -0
  93. package/theme-chalk/src/subject-layout.scss +28 -0
  94. package/theme-chalk/src/subject-list.css +1 -0
  95. package/theme-chalk/src/subject-list.scss +289 -0
  96. package/theme-chalk/src/subject-template.scss +5 -0
  97. package/theme-chalk/src/subject-type.css +1 -0
  98. package/theme-chalk/src/subject-type.scss +32 -0
  99. package/theme-chalk/src/tiny-mce-editor.css +1 -0
  100. package/theme-chalk/src/tiny-mce-editor.scss +27 -0
  101. package/types/src/image-upload/index.d.ts +3 -40
  102. package/types/src/image-upload/index.d.ts.map +1 -1
  103. package/types/src/image-upload/src/image-upload.vue.d.ts +11 -20
  104. package/types/src/image-upload/src/image-upload.vue.d.ts.map +1 -1
  105. package/types/src/subject-layout/src/subject-layout.vue.d.ts.map +1 -1
  106. package/types/src/tiny-mce-editor/index.d.ts +1 -1
  107. package/types/src/tiny-mce-editor/index.d.ts.map +1 -1
  108. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts +19 -19
  109. package/types/src/tiny-mce-editor/src/tiny-mce-editor.vue.d.ts.map +1 -1
  110. package/types/tsconfig.tsbuildinfo +1 -1
  111. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -2
  112. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs.map +0 -1
  113. package/es/src/data-chart/src/components/area.vue3.mjs +0 -2
  114. package/es/src/data-chart/src/components/area.vue3.mjs.map +0 -1
  115. package/es/src/data-chart/src/components/card.vue3.mjs +0 -2
  116. package/es/src/data-chart/src/components/card.vue3.mjs.map +0 -1
  117. package/es/src/data-chart/src/components/line.vue3.mjs +0 -2
  118. package/es/src/data-chart/src/components/line.vue3.mjs.map +0 -1
  119. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs +0 -2
  120. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.cjs.map +0 -1
  121. package/lib/src/data-chart/src/components/area.vue3.cjs +0 -2
  122. package/lib/src/data-chart/src/components/area.vue3.cjs.map +0 -1
  123. package/lib/src/data-chart/src/components/card.vue3.cjs +0 -2
  124. package/lib/src/data-chart/src/components/card.vue3.cjs.map +0 -1
  125. package/lib/src/data-chart/src/components/line.vue3.cjs +0 -2
  126. package/lib/src/data-chart/src/components/line.vue3.cjs.map +0 -1
  127. package/theme-chalk/base.css +0 -1
  128. package/theme-chalk/file-upload.css +0 -1
  129. package/theme-chalk/fixed-action-bar.css +0 -1
  130. package/theme-chalk/image-upload.css +0 -1
  131. package/theme-chalk/photo-crop-tool.css +0 -1
  132. package/theme-chalk/src/base.scss.js +0 -4
  133. package/theme-chalk/src/base.scss.js.map +0 -1
  134. package/theme-chalk/src/file-upload.scss.js +0 -4
  135. package/theme-chalk/src/file-upload.scss.js.map +0 -1
  136. package/theme-chalk/src/fixed-action-bar.scss.js +0 -4
  137. package/theme-chalk/src/fixed-action-bar.scss.js.map +0 -1
  138. package/theme-chalk/src/image-upload.scss.js +0 -4
  139. package/theme-chalk/src/image-upload.scss.js.map +0 -1
  140. package/theme-chalk/src/index.scss.js +0 -4
  141. package/theme-chalk/src/index.scss.js.map +0 -1
  142. package/theme-chalk/src/photo-crop-tool.scss.js +0 -4
  143. package/theme-chalk/src/photo-crop-tool.scss.js.map +0 -1
  144. package/theme-chalk/src/subject-action.scss.js +0 -4
  145. package/theme-chalk/src/subject-action.scss.js.map +0 -1
  146. package/theme-chalk/src/subject-layout.scss.js +0 -4
  147. package/theme-chalk/src/subject-layout.scss.js.map +0 -1
  148. package/theme-chalk/src/subject-list.scss.js +0 -4
  149. package/theme-chalk/src/subject-list.scss.js.map +0 -1
  150. package/theme-chalk/src/subject-template.scss.js +0 -4
  151. package/theme-chalk/src/subject-template.scss.js.map +0 -1
  152. package/theme-chalk/src/subject-type.scss.js +0 -4
  153. package/theme-chalk/src/subject-type.scss.js.map +0 -1
  154. package/theme-chalk/src/tiny-mce-editor.scss.js +0 -4
  155. package/theme-chalk/src/tiny-mce-editor.scss.js.map +0 -1
  156. package/theme-chalk/subject-layout.css +0 -1
  157. package/theme-chalk/subject-list.css +0 -1
  158. package/theme-chalk/subject-type.css +0 -1
  159. package/theme-chalk/tiny-mce-editor.css +0 -1
  160. /package/theme-chalk/{subject-template.css → src/subject-template.css} +0 -0
@@ -0,0 +1,34 @@
1
+ @use "mixins/config" as *;
2
+ @use "mixins/mixins" as *;
3
+
4
+ @include b(file-upload) {
5
+ @include e(control) {
6
+ .is-drag {
7
+ display: inline-block !important;
8
+
9
+ [class$="-upload-dragger"] {
10
+ padding: 0;
11
+
12
+ [class$="-icon--upload"] {
13
+ margin-bottom: 0;
14
+ font-size: 40px;
15
+ }
16
+
17
+ [class$="-upload__text"] {
18
+ padding: 0 6px;
19
+ font-size: 14px;
20
+ line-height: 1.5;
21
+ }
22
+ }
23
+
24
+ &.is-dragover {
25
+ border-width: 1px;
26
+ }
27
+
28
+ .slot {
29
+ width: 160px;
30
+ height: 90px;
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1 @@
1
+ .qxs-fixed-action-bar__actionbar{bottom:0;z-index:10;padding:var(--qxs-fixed-action-bar-actionbar-padding);padding-bottom:calc(env(safe-area-inset-bottom) + var(--qxs-fixed-action-bar-actionbar-padding-bottom));text-align:center;background-color:var(--qxs-bg-color, #fff);box-shadow:0 0 1px 0 var(--qxs-border-color, #f3f3f2);transition:box-shadow .3s,var(--qxs-transition-box-shadow, #f3f3f2)}.qxs-fixed-action-bar__actionbar.is-shadow{box-shadow:0 -10px 10px -10px var(--qxs-border-color, #fff)}
@@ -0,0 +1,18 @@
1
+ @use "mixins/mixins" as *;
2
+
3
+ @include b(fixed-action-bar) {
4
+ &__actionbar {
5
+ bottom: 0;
6
+ z-index: 10;
7
+ padding: getCssVar("fixed-action-bar", "actionbar-padding");
8
+ padding-bottom: calc(env(safe-area-inset-bottom) + getCssVar("fixed-action-bar", "actionbar-padding-bottom"));
9
+ text-align: center;
10
+ background-color: var(--qxs-bg-color, #fff);
11
+ box-shadow: 0 0 1px 0 var(--qxs-border-color, #f3f3f2);
12
+ transition: box-shadow 0.3s, var(--qxs-transition-box-shadow, #f3f3f2);
13
+
14
+ @include when(shadow) {
15
+ box-shadow: 0 -10px 10px -10px var(--qxs-border-color, #fff);
16
+ }
17
+ }
18
+ }
@@ -0,0 +1 @@
1
+ .qxs-image-upload__container{line-height:initial}.qxs-image-upload__control{display:inline-block;vertical-align:top}.qxs-image-upload__control .image{position:relative;overflow:hidden;border-radius:6px}.qxs-image-upload__control .image .mask{position:absolute;top:0;width:100%;height:100%;background-color:var(--qxs-overlay-color-lighter);opacity:0;transition:opacity .3s}.qxs-image-upload__control .image .mask .actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;width:100px;height:100px;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.qxs-image-upload__control .image .mask .actions span{width:50%;color:var(--qxs-color-white);text-align:center;cursor:pointer;transition:color .1s,transform .1s}.qxs-image-upload__control .image .mask .actions span:hover{transform:scale(1.5)}.qxs-image-upload__control .image .mask .actions span [class=qxs-icon]{font-size:24px}.qxs-image-upload__control .image:hover .mask{opacity:1}.qxs-image-upload__control .is-drag{font-size:0;display:inline-block !important}.qxs-image-upload__control .is-drag [class$=-upload-dragger]{display:inline-block;padding:0;font-size:0}.qxs-image-upload__control .is-drag [class$=-upload-dragger] [class$=-image]{display:block}.qxs-image-upload__control .is-drag [class$=-upload-dragger].is-dragover{border-width:1px}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .image-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;font-size:14px;color:var(--qxs-text-color-placeholder);background-color:#f5f5f5;transition:all .3s}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .image-slot:hover{background-color:#eee}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .image-slot [class$=-icon]{font-size:28px}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .image-slot p{margin-top:10px;margin-bottom:0;line-height:1em;color:#5a5a5a}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .progress{position:absolute;top:0}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .progress::after{position:absolute;top:0;left:0;width:100%;height:100%;content:"";background-color:var(--qxs-overlay-color-lighter)}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .progress [class$=-progress]{z-index:1;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.qxs-image-upload__control .is-drag [class$=-upload-dragger] .progress [class$=-progress] [class$=-progress__text]{color:var(--qxs-text-color-placeholder)}.qxs-image-upload__container [class$=-upload__tip-text]{font-size:14px;line-height:32px;color:#c8c8c8}
@@ -0,0 +1,135 @@
1
+ @use "mixins/mixins" as *;
2
+
3
+ @include b(image-upload) {
4
+ @include e(container) {
5
+ line-height: initial;
6
+
7
+ @include e(control) {
8
+ display: inline-block;
9
+ vertical-align: top;
10
+
11
+ .image {
12
+ position: relative;
13
+ overflow: hidden;
14
+ border-radius: 6px;
15
+
16
+ .mask {
17
+ position: absolute;
18
+ top: 0;
19
+ width: 100%;
20
+ height: 100%;
21
+ background-color: var(--#{$namespace}-overlay-color-lighter);
22
+ opacity: 0;
23
+ transition: opacity 0.3s;
24
+
25
+ .actions {
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ align-items: center;
29
+ justify-content: center;
30
+ width: 100px;
31
+ height: 100px;
32
+
33
+ @include position-center(xy);
34
+
35
+ span {
36
+ width: 50%;
37
+ color: var(--#{$namespace}-color-white);
38
+ text-align: center;
39
+ cursor: pointer;
40
+ transition: color 0.1s, transform 0.1s;
41
+
42
+ &:hover {
43
+ transform: scale(1.5);
44
+ }
45
+
46
+ [class="#{$namespace}-icon"] {
47
+ font-size: 24px;
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ &:hover .mask {
54
+ opacity: 1;
55
+ }
56
+ }
57
+ .is-drag {
58
+ font-size: 0;
59
+ display: inline-block !important;
60
+
61
+ [class$="-upload-dragger"] {
62
+ display: inline-block;
63
+ padding: 0;
64
+ font-size: 0;
65
+
66
+ [class$="-image"] {
67
+ display: block;
68
+ }
69
+
70
+ &.is-dragover {
71
+ border-width: 1px;
72
+ }
73
+
74
+ .image-slot {
75
+ display: flex;
76
+ flex-direction: column;
77
+ align-items: center;
78
+ justify-content: center;
79
+ width: 100%;
80
+ height: 100%;
81
+ font-size: 14px;
82
+ color: var(--#{$namespace}-text-color-placeholder);
83
+ background-color: #f5f5f5;
84
+ transition: all 0.3s;
85
+
86
+ &:hover {
87
+ background-color: #eee;
88
+ }
89
+
90
+ [class$="-icon"] {
91
+ font-size: 28px;
92
+ }
93
+
94
+ p {
95
+ margin-top: 10px;
96
+ margin-bottom: 0;
97
+ line-height: 1em;
98
+ color: #5a5a5a;
99
+ }
100
+ }
101
+
102
+ .progress {
103
+ position: absolute;
104
+ top: 0;
105
+
106
+ &::after {
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ width: 100%;
111
+ height: 100%;
112
+ content: "";
113
+ background-color: var(--#{$namespace}-overlay-color-lighter);
114
+ }
115
+
116
+ [class$="-progress"] {
117
+ z-index: 1;
118
+
119
+ @include position-center(xy);
120
+
121
+ [class$="-progress__text"] {
122
+ color: var(--#{$namespace}-text-color-placeholder);
123
+ }
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ [class$="-upload__tip-text"] {
130
+ font-size: 14px;
131
+ line-height: 32px;
132
+ color: #c8c8c8;
133
+ }
134
+ }
135
+ }
File without changes
@@ -0,0 +1,24 @@
1
+ @use "sass:map";
2
+ @use "sass:color";
3
+ @use "function" as *;
4
+
5
+ // 定位居中,默认水平居中,可选择垂直居中,或者水平垂直都居中
6
+ @mixin position-center($type: x) {
7
+ position: absolute;
8
+
9
+ @if $type == x {
10
+ left: 50%;
11
+ transform: translateX(-50%);
12
+ }
13
+
14
+ @if $type == y {
15
+ top: 50%;
16
+ transform: translateY(-50%);
17
+ }
18
+
19
+ @if $type == xy {
20
+ top: 50%;
21
+ left: 50%;
22
+ transform: translateX(-50%) translateY(-50%);
23
+ }
24
+ }
File without changes
@@ -0,0 +1,14 @@
1
+ $namespace: "qxs" !default;
2
+ $common-separator: "-" !default;
3
+ $element-separator: "__" !default;
4
+ $modifier-separator: "--" !default;
5
+ $state-prefix: "is-" !default;
6
+
7
+
8
+ $text-color-main: #333;
9
+ $font-size-small: 12px;
10
+ $color-danger: #f56c6c;
11
+ $text-color-regular: #606266;
12
+ $color-success: #30c691;
13
+ $text-color-primary: #3d61e3;
14
+ $color-primary: #3d61e3;
File without changes
@@ -0,0 +1,95 @@
1
+ @use "sass:string";
2
+ @use "sass:meta";
3
+ @use "config";
4
+
5
+ // BEM support Func
6
+ @function selectorToString($selector) {
7
+ $selector: meta.inspect($selector);
8
+ $selector: string.slice($selector, 2, -2);
9
+
10
+ @return $selector;
11
+ }
12
+
13
+ @function containsModifier($selector) {
14
+ $selector: selectorToString($selector);
15
+
16
+ @if string.index($selector, config.$modifier-separator) {
17
+ @return true;
18
+ } @else {
19
+ @return false;
20
+ }
21
+ }
22
+
23
+ @function containWhenFlag($selector) {
24
+ $selector: selectorToString($selector);
25
+
26
+ @if string.index($selector, "." + config.$state-prefix) {
27
+ @return true;
28
+ } @else {
29
+ @return false;
30
+ }
31
+ }
32
+
33
+ @function hasPseudoClass($selector) {
34
+ @return string.index($selector, ":") != null;
35
+ }
36
+
37
+ @function containPseudoClass($selector) {
38
+ $selector: selectorToString($selector);
39
+
40
+ @if hasPseudoClass($selector) {
41
+ @return true;
42
+ } @else {
43
+ @return false;
44
+ }
45
+ }
46
+
47
+ @function hitAllSpecialNestRule($selector) {
48
+ @return containsModifier($selector) or containWhenFlag($selector) or
49
+ containPseudoClass($selector);
50
+ }
51
+
52
+ // join var name
53
+ // joinVarName(('button', 'text-color')) => '--qxs-button-text-color'
54
+ @function joinVarName($list) {
55
+ $name: "--" + config.$namespace;
56
+
57
+ @each $item in $list {
58
+ @if $item != "" {
59
+ $name: $name + "-" + $item;
60
+ }
61
+ }
62
+
63
+ @return $name;
64
+ }
65
+
66
+ // getCssVarName('button', 'text-color') => '--qxs-button-text-color'
67
+ @function getCssVarName($args...) {
68
+ @return joinVarName($args);
69
+ }
70
+
71
+ // getCssVar('button', 'text-color') => var(--qxs-button-text-color)
72
+ @function getCssVar($args...) {
73
+ @return var(#{joinVarName($args)});
74
+ }
75
+
76
+ // getCssVarWithDefault(('button', 'text-color'), red) => var(--qxs-button-text-color, red)
77
+ @function getCssVarWithDefault($args, $default) {
78
+ @return var(#{joinVarName($args)}, #{$default});
79
+ }
80
+
81
+ // bem('block', 'element', 'modifier') => 'el-block__element--modifier'
82
+ @function bem($block, $element: "", $modifier: "") {
83
+ $name: config.$namespace + config.$common-separator + $block;
84
+
85
+ @if $element != "" {
86
+ $name: $name + config.$element-separator + $element;
87
+ }
88
+
89
+ @if $modifier != "" {
90
+ $name: $name + config.$modifier-separator + $modifier;
91
+ }
92
+
93
+ // @debug $name;
94
+ @return $name;
95
+ }
File without changes
@@ -0,0 +1,103 @@
1
+ @use "function" as *;
2
+ // forward mixins
3
+ @forward "config";
4
+ @forward "function";
5
+ @forward "_var";
6
+ @use "config" as *;
7
+ // 声明变量
8
+ $B: null;
9
+ $E: null;
10
+
11
+
12
+ // BEM
13
+ @mixin b($block) {
14
+ $B: $namespace + $common-separator + $block !global;
15
+
16
+ .#{$B} {
17
+ @content;
18
+ }
19
+ }
20
+
21
+ @mixin e($element) {
22
+ $E: $element !global;
23
+ $selector: &;
24
+ $currentSelector: "";
25
+
26
+ @each $unit in $element {
27
+ $currentSelector: #{$currentSelector +
28
+ "." +
29
+ $B +
30
+ $element-separator +
31
+ $unit +
32
+ ","};
33
+ }
34
+
35
+ @if hitAllSpecialNestRule($selector) {
36
+ @at-root {
37
+ #{$selector} {
38
+ #{$currentSelector} {
39
+ @content;
40
+ }
41
+ }
42
+ }
43
+ } @else {
44
+ @at-root {
45
+ #{$currentSelector} {
46
+ @content;
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ @mixin m($modifier) {
53
+ $selector: &;
54
+ $currentSelector: "";
55
+
56
+ @each $unit in $modifier {
57
+ $currentSelector: #{$currentSelector +
58
+ $selector +
59
+ $modifier-separator +
60
+ $unit +
61
+ ","};
62
+ }
63
+
64
+ @at-root {
65
+ #{$currentSelector} {
66
+ @content;
67
+ }
68
+ }
69
+ }
70
+
71
+ @mixin meb($modifier: false, $element: $E, $block: $B) {
72
+ $selector: &;
73
+ $modifierCombo: "";
74
+
75
+ @if $modifier {
76
+ $modifierCombo: $modifier-separator + $modifier;
77
+ }
78
+
79
+ @at-root {
80
+ #{$selector} {
81
+ .#{$block + $element-separator + $element + $modifierCombo} {
82
+ @content;
83
+ }
84
+ }
85
+ }
86
+ }
87
+
88
+ @mixin when($state) {
89
+ @at-root {
90
+ &.#{$state-prefix + $state} {
91
+ @content;
92
+ }
93
+ }
94
+ }
95
+
96
+ // dark
97
+ @mixin dark($block) {
98
+ html.dark {
99
+ @include b($block) {
100
+ @content;
101
+ }
102
+ }
103
+ }
@@ -0,0 +1 @@
1
+ .qxs-photo-crop-tool__img-box{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;background-color:#fafafa}.qxs-photo-crop-tool__error-message{color:red}.qxs-photo-crop-tool__image{max-width:100%;max-height:100%;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;-o-object-fit:contain;object-fit:contain;-webkit-user-drag:none}.qxs-photo-crop-tool__crop-tool-box{position:absolute;width:calc(var(--qxs-photo-crop-tool-width)*1px);max-width:100%;height:calc(var(--qxs-photo-crop-tool-height)*1px);max-height:100%;aspect-ratio:var(--qxs-photo-crop-tool-aspect-ratio);overflow:hidden;cursor:move;border:1px dashed #fff;box-shadow:0 0 0 9999px rgba(0,0,0,.4)}.qxs-photo-crop-tool__crop-tool-box>div{position:absolute;z-index:3;width:30%;aspect-ratio:1/1;background-color:rgba(2,2,2,.01);border-radius:50%;transition:all .3s}.qxs-photo-crop-tool__crop-tool-box>div:hover,.qxs-photo-crop-tool__crop-tool-box>div:active{background-color:rgba(2,2,2,.5)}.qxs-photo-crop-tool__top-left{top:0;left:0;cursor:nwse-resize;transform:translate3d(-50%, -50%, 0)}.qxs-photo-crop-tool__top-right{top:0;right:0;cursor:nesw-resize;transform:translate3d(50%, -50%, 0)}.qxs-photo-crop-tool__bottom-right{right:0;bottom:0;cursor:nwse-resize;transform:translate3d(50%, 50%, 0)}.qxs-photo-crop-tool__bottom-left{bottom:0;left:0;cursor:nesw-resize;transform:translate3d(-50%, 50%, 0)}
@@ -0,0 +1,84 @@
1
+ @use "mixins/mixins" as *;
2
+
3
+ @include b(photo-crop-tool) {
4
+ @include e(img-box) {
5
+ position: relative;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ width: 100%;
10
+ height: 100%;
11
+ overflow: hidden;
12
+ background-color: #fafafa;
13
+
14
+ @include e(error-message) {
15
+ color: red;
16
+ }
17
+
18
+ @include e(image) {
19
+ max-width: 100%;
20
+ max-height: 100%;
21
+ vertical-align: middle;
22
+ // 禁止选中
23
+ user-select: none;
24
+ object-fit: contain;
25
+ // 禁止过拽
26
+ -webkit-user-drag: none;
27
+ }
28
+
29
+ @include e(crop-tool-box) {
30
+ position: absolute;
31
+ width: calc(getCssVar("photo-crop-tool", "width") * 1px);
32
+ max-width: 100%;
33
+ height: calc(getCssVar("photo-crop-tool", "height") * 1px);
34
+ max-height: 100%;
35
+ aspect-ratio: getCssVar("photo-crop-tool", "aspect-ratio");
36
+ overflow: hidden;
37
+ cursor: move;
38
+ border: 1px dashed #fff;
39
+ box-shadow: 0 0 0 9999px rgb(0 0 0 / 40%); /* 扩展阴影以覆盖周围区域 */
40
+ > div {
41
+ position: absolute;
42
+ z-index: 3;
43
+ width: 30%;
44
+ aspect-ratio: 1 / 1;
45
+ background-color: rgba($color: #020202, $alpha: 1%);
46
+ border-radius: 50%;
47
+ transition: all 0.3s;
48
+
49
+ &:hover,
50
+ &:active {
51
+ background-color: rgba($color: #020202, $alpha: 50%);
52
+ }
53
+
54
+ @include e(top-left) {
55
+ top: 0;
56
+ left: 0;
57
+ cursor: nwse-resize;
58
+ transform: translate3d(-50%, -50%, 0);
59
+ }
60
+
61
+ @include e(top-right) {
62
+ top: 0;
63
+ right: 0;
64
+ cursor: nesw-resize;
65
+ transform: translate3d(50%, -50%, 0);
66
+ }
67
+
68
+ @include e(bottom-right) {
69
+ right: 0;
70
+ bottom: 0;
71
+ cursor: nwse-resize;
72
+ transform: translate3d(50%, 50%, 0);
73
+ }
74
+
75
+ @include e(bottom-left) {
76
+ bottom: 0;
77
+ left: 0;
78
+ cursor: nesw-resize;
79
+ transform: translate3d(-50%, 50%, 0);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
@@ -1 +1 @@
1
- .qxs-subject-action__action-exam .action{padding:20px 0}.qxs-subject-action__action-exam .active{background-color:#f6f7fb;padding-left:10px;padding-right:10px}.qxs-subject-action__action-exam .btn-margin{margin-right:10px}.qxs-subject-action__action-exam .has-set{align-items:center;color:#bbb;display:flex;font-size:12px}.qxs-subject-action__action-exam .vertical-radio-group{align-items:flex-start;display:flex;flex-direction:column;margin-left:20px}.qxs-subject-action__action-exam .vertical-radio-group ::v-deep(.qxs-radio){display:block;margin-right:0}
1
+ .qxs-subject-action__action-exam .action{padding:20px 0}.qxs-subject-action__action-exam .active{background-color:#f6f7fb;padding-left:10px;padding-right:10px}.qxs-subject-action__action-exam .btn-margin{margin-right:10px}.qxs-subject-action__action-exam .has-set{display:flex;align-items:center;font-size:12px;color:#bbb}.qxs-subject-action__action-exam .vertical-radio-group{display:flex;flex-direction:column;align-items:flex-start;margin-left:20px}.qxs-subject-action__action-exam .vertical-radio-group ::v-deep(.qxs-radio){display:block;margin-right:0}
@@ -0,0 +1,36 @@
1
+ @use "mixins/mixins" as *;
2
+
3
+ @include b(subject-action) {
4
+ @include e(action-exam) {
5
+ .action {
6
+ padding: 20px 0;
7
+ }
8
+
9
+ .active {
10
+ background-color: #f6f7fb;
11
+ padding-left: 10px;
12
+ padding-right: 10px;
13
+ }
14
+
15
+ .btn-margin {
16
+ margin-right: 10px;
17
+ }
18
+
19
+ .has-set {
20
+ display: flex;
21
+ align-items: center;
22
+ font-size: 12px;
23
+ color: #bbb;
24
+ }
25
+ .vertical-radio-group {
26
+ display: flex;
27
+ flex-direction: column; /* 垂直排列 */
28
+ align-items: flex-start;
29
+ margin-left: 20px;
30
+ }
31
+ .vertical-radio-group ::v-deep(.#{$namespace}-radio) {
32
+ display: block; /* 关键属性 */
33
+ margin-right: 0; /* 清除默认右边距 */
34
+ }
35
+ }
36
+ }
@@ -0,0 +1 @@
1
+ .qxs-subject-layout__layout-exam{padding:10px;font-size:12px;color:#5a5a5a}.qxs-subject-layout__layout-exam .edit{position:relative;padding:20px 10px;padding-bottom:10px;margin-top:20px;background-color:#f6f7fb}.qxs-subject-layout__layout-exam .edit .triangle-up{position:absolute;top:-20px;left:100px;width:0;height:0;border-right:20px solid rgba(0,0,0,0);border-bottom:20px solid #f6f7fb;border-left:20px solid rgba(0,0,0,0)}
@@ -0,0 +1,28 @@
1
+ @use "mixins/mixins" as *;
2
+
3
+ @include b(subject-layout) {
4
+ @include e(layout-exam) {
5
+ padding: 10px;
6
+ font-size: 12px;
7
+ color: #5a5a5a;
8
+
9
+ .edit {
10
+ position: relative;
11
+ padding: 20px 10px;
12
+ padding-bottom: 10px;
13
+ margin-top: 20px;
14
+ background-color: #f6f7fb;
15
+
16
+ .triangle-up {
17
+ position: absolute;
18
+ top: -20px;
19
+ left: 100px;
20
+ width: 0;
21
+ height: 0;
22
+ border-right: 20px solid transparent;
23
+ border-bottom: 20px solid #f6f7fb;
24
+ border-left: 20px solid transparent;
25
+ }
26
+ }
27
+ }
28
+ }
@@ -0,0 +1 @@
1
+ .qxs-subject-list__list-exam .flex{display:flex;align-items:center}.qxs-subject-list__list-exam .flex-items-center{display:flex;align-items:center}.qxs-subject-list__list-exam .flex-justify-between{display:flex;justify-content:space-between}.qxs-subject-list__list-exam .flex-justify-center{display:flex;justify-content:center}.qxs-subject-list__list-exam .flex-justify-end{display:flex;justify-content:flex-end}.qxs-subject-list__list-exam .margin-left-10{margin-left:10px}.qxs-subject-list__list-exam .label{min-width:50px}.qxs-subject-list__list-exam .flex-1{flex:1}.qxs-subject-list__list-exam .subject-list-wrapper{width:100%;margin-bottom:20px}.qxs-subject-list__list-exam .margin-bottom{margin-bottom:20px}.qxs-subject-list__list-exam .auto-line{flex:1;background-color:#c8c8c8;height:1px;margin:0 15px}.qxs-subject-list__list-exam .title{font-size:14px;font-weight:500}.qxs-subject-list__list-exam .rich-text img{max-width:100%}.qxs-subject-single__single-exam .preview-answer{display:flex;flex-direction:column;margin-bottom:10px}.qxs-subject-single__single-exam .flex{display:flex;align-items:center}.qxs-subject-single__single-exam .margin-bottom{margin-bottom:20px}.qxs-subject-single__single-exam .answer-list .answer-item{margin-top:15px}.qxs-subject-single__single-exam .answer-list .answer-item .input{width:300px}.qxs-subject-single__single-exam .answer-list .answer-item .input [class$=-input]{font-weight:bold}.qxs-subject-single__single-exam .answer-list .answer-item .correct{margin:0 10px}.qxs-subject-single__single-exam .answer-list .answer-item .correct:hover{color:#3d61e3;cursor:pointer}.qxs-subject-single__single-exam .answer-list .answer-item .is-correct{color:#67c23a}.qxs-subject-single__single-exam .answer-list .answer-item .icon{margin-left:10px;font-size:18px;color:#a3a3a3;cursor:pointer}.qxs-subject-single__single-exam .answer-list .answer-item .disabled{color:#c0c4cc;cursor:not-allowed}.qxs-subject-single__single-exam .preview .answer-radio{padding-left:10px}.qxs-subject-single__single-exam .preview .answer-radio .radio{margin-top:10px}.qxs-subject-blank-fill__blank-fill-exam .flex{display:flex;align-items:center}.qxs-subject-blank-fill__blank-fill-exam .label{min-width:50px;margin-right:10px}.qxs-subject-blank-fill__blank-fill-exam .margin-bottom{margin-bottom:20px}.qxs-subject-blank-fill__blank-fill-exam .answer-list .answer-item{width:100%;margin-top:15px}.qxs-subject-blank-fill__blank-fill-exam .answer-list .answer-item .answer-tags{flex:1;padding:5px 15px;border:1px solid #eee;border-radius:4px}.qxs-subject-blank-fill__blank-fill-exam .answer-list .answer-item .answer-tags [class$=-tag]{margin-right:10px}.qxs-subject-blank-fill__blank-fill-exam .preview .content{min-height:100px;padding-top:10px;background-color:#fff}.qxs-subject-text-fill__text-fill-exam .flex{display:flex;align-items:center}.qxs-subject-text-fill__text-fill-exam .label{min-width:50px;margin-right:10px}.qxs-subject-text-fill__text-fill-exam .margin-bottom{margin-bottom:20px}.qxs-subject-text-fill__text-fill-exam .answer-list .answer-item{width:100%;margin-top:15px}.qxs-subject-text-fill__text-fill-exam .answer-list .answer-item .answer-tags{flex:1;padding:5px 15px;border:1px solid #eee;border-radius:4px}.qxs-subject-text-fill__text-fill-exam .answer-list .answer-item .operation .icon{margin-left:10px;font-size:16px;color:#a3a3a3;cursor:pointer}.qxs-subject-text-fill__text-fill-exam .answer-list .answer-item .operation .disabled{color:#c0c4cc;cursor:not-allowed}.qxs-subject-text-fill__text-fill-exam .preview .content{min-height:100px;margin-top:10px}.qxs-subject-scale__scale-exam .flex{display:flex;align-items:center}.qxs-subject-scale__scale-exam .label{min-width:50px}.qxs-subject-scale__scale-exam .margin-bottom{margin-bottom:20px}.qxs-subject-scale__scale-exam .answer{margin:20px 0}.qxs-subject-scale__scale-exam .answer .answer-list{margin-left:40px}.qxs-subject-scale__scale-exam .answer .answer-list .answer-item{margin-bottom:20px}.qxs-subject-scale__scale-exam .answer .answer-list .answer-item .order{width:16px;margin-right:10px}.qxs-subject-scale__scale-exam .answer .answer-list .answer-item .icon{margin-left:10px;font-size:16px;color:#a3a3a3;cursor:pointer}.qxs-subject-scale__scale-exam .answer .answer-list .answer-item .disabled{color:#c0c4cc;cursor:not-allowed}.qxs-subject-scale__scale-exam .preview .answer-radio .radio-item .qxs-radio-wrapper{margin-inline-end:0}