components.scss 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. /******************** 这里存放通用组件样式 ********************/
  2. /********** uni-app基础组件 待删除**********/
  3. /*** lli-button--primary ***/
  4. // lli-primary
  5. .lli-btn {
  6. background-color: $uni-primary;
  7. color:#ffffff;
  8. }
  9. // lli-primary-hover
  10. .button-hover.lli-btn{
  11. background-color: $lli-btn-hover;
  12. color: hsla(0,0%,100%,.6);
  13. }
  14. // lli-primary-disabled
  15. .lli-btn[disabled]:not([type]){
  16. background-color: $lli-btn-disabled;
  17. color: hsla(0,0%,100%,.6);
  18. }
  19. // lli-primary-loading
  20. .lli-btn[loading]{
  21. background-color: $uni-primary;
  22. color: hsla(0,0%,100%,.6);
  23. }
  24. /*** lli-button--plain ***/
  25. //lli-primary-plain
  26. .lli-btn[plain]{
  27. border-color: $uni-primary;
  28. color: $uni-primary;
  29. }
  30. // lli-primary-plain
  31. .button-hover.lli-btn[plain]{
  32. border-color: $lli-btn-disabled;
  33. color: $lli-btn-disabled;
  34. }
  35. // lli-primary-disabled
  36. .lli-btn[plain][disabled]:not([type]){
  37. background-color: #f7f7f7;
  38. color: rgba(0, 0, 0, 0.3);
  39. }
  40. .lli-btn[plain][loading]{
  41. background-color: transparent;
  42. border-color: $lli-btn-disabled;
  43. color: $lli-btn-disabled;
  44. }
  45. /***** 项目中组件 *****/
  46. // view
  47. view{box-sizing: border-box;}
  48. // 对齐方式
  49. .lli-tl{text-align: left;}
  50. .lli-tc{text-align: center;}
  51. .lli-tr{text-align: right;}
  52. /***** view *****/
  53. view{box-sizing: border-box;}
  54. /***** 超出省略 *****/
  55. // 文本超出省略号显示 (一行)
  56. @mixin single-line-ellipsis() {text-overflow: ellipsis;overflow: hidden;word-wrap: break-word;white-space: nowrap;word-break: break-all;}
  57. // 文本超出省略号显示 (多行)
  58. @mixin multi-line-ellipsis($rows: 3){-webkit-line-clamp:$rows;text-overflow: ellipsis;-o-text-overflow: ellipsis;overflow: hidden;word-wrap: break-word;display: -webkit-box;white-space: normal !important;-webkit-box-orient: vertical;}
  59. /***** 页面背景图 *****/
  60. // no-repeat cover
  61. @mixin ezy-no-repeat-cover($position: center) {
  62. background-position: $position;background-size: cover;background-repeat: no-repeat;
  63. }
  64. // no-repeat contain
  65. @mixin ezy-no-repeat-contain($position: center) {
  66. background-position: $position;background-size: contain;background-repeat: no-repeat;
  67. }
  68. /***** 标题栏 *****/
  69. // 三个元素
  70. .phone-navBar-box{
  71. display: flex;align-items: center;justify-content: space-between;background-color: #fff;
  72. padding: calc(20rpx + var(--status-bar-height)) 20rpx 20rpx;box-sizing: border-box;position: relative;
  73. .nav-bar-icon{
  74. width: 24rpx;height: 38rpx;
  75. background-image: url("@/static/images/common/nav-bar-jt.svg");@include ezy-no-repeat-cover();
  76. }
  77. .nav-bar-title{font-size: 36rpx;color: #333;}
  78. // 考试数字
  79. .nav-bar-other{
  80. font-size: 30rpx;color: #fff;margin-right: 2%;
  81. .key-note{color: #ffff01;}
  82. }
  83. // 文字按钮
  84. .text-btn{font-size: 26rpx;color: #666;padding-top: 4rpx;box-sizing: border-box;}
  85. // 图标
  86. .nav-bar-icon-box{
  87. .nav-bar-right-icon{font-size: 42rpx;color: #666;}
  88. .nav-bar-right-icon + .nav-bar-right-icon{margin-left: 24rpx;}
  89. }
  90. }
  91. // 两个元素
  92. .icon-title-navBar-box{
  93. background-color: #fff;box-sizing: border-box;
  94. .icon-title-box{display: flex;align-items: center;justify-content: center;padding:10rpx 10rpx 20rpx;position: relative;}
  95. .nav-bar-title{
  96. font-size: 32rpx;height: 64rpx;line-height: 64rpx;color: #333;max-width: 70%;
  97. }
  98. .nav-bar-icon{
  99. width: 24rpx;height: 38rpx;position: absolute;left: 24rpx;top: 24rrpx;
  100. background-image: url("@/static/images/common/nav-bar-jt.svg");@include ezy-no-repeat-cover();
  101. }
  102. .bar-ml10{margin-left: 10rpx;}
  103. .nav-bar-btn{font-size: 24rpx;position: absolute;right: 20rpx;
  104. line-height: 50rpx;border-radius: 8rpx;padding: 0 10rpx;}
  105. }
  106. // 仅一个返回按钮
  107. .phone-nav-bar-icon{width: 24rpx;height: 38rpx;position: absolute;left: 24rpx;top: var(--status-bar-height);
  108. background-image: url("@/static/images/common/nav-bar-jt.svg");@include ezy-no-repeat-cover();
  109. }
  110. /***** 富文本处理 *****/
  111. @mixin ezy-rich-text() {
  112. white-space: pre-wrap;text-align: justify;
  113. div,p,span{margin: 0;padding: 0;}
  114. img{max-width: 100%;}
  115. .ql-align-center{text-align: center}
  116. .ql-align-right{text-align: right}
  117. // 9号字
  118. .ql-size-9px{font-size: 18rpx;}
  119. // 12号字
  120. .ql-size-12px{font-size: 24rpx;}
  121. // 14号字
  122. .ql-size-14px{font-size: 28rpx;}
  123. // 16号字
  124. .ql-size-16px{font-size: 32rpx;}
  125. // 18号字
  126. .ql-size-18px{font-size: 36rpx;}
  127. // 24号字
  128. .ql-size-24px{font-size: 48rpx;}
  129. // 32号字
  130. .ql-size-32px{font-size: 64rpx;}
  131. // 单倍行距
  132. .line-height-lineHeight1{line-height: 1;}
  133. // 1.5倍行距
  134. .line-height-lineHeight1-5{line-height: 1.5;}
  135. // 2倍行距
  136. .line-height-lineHeight2{line-height: 2;}
  137. // 2.5倍行距
  138. .line-height-lineHeight2-5{line-height: 2.5;}
  139. // 3倍行距
  140. .line-height-lineHeight3{line-height: 3;}
  141. }
  142. /***** 按钮 *****/
  143. // 按钮
  144. .phone-blue-btn[type='default']{background-color: $uni-primary;color: #fff;}
  145. .phone-white-btn[type='default']{background-color: #fff;color: $uni-primary;border: 1rpx solid $uni-primary;}
  146. .phone-white-btn[type='default']:after{display: none;}
  147. .phone-blue-btn[type='default']:hover{background-color: $lli-btn-hover;color: #fff;}
  148. /***** 试题---题干 *****/
  149. .phone-shiti-question{
  150. font-size: 32rpx;color: #333;line-height: 1.6;margin-bottom: 24rpx;
  151. text-align: justify;word-wrap: break-word;word-break: break-all;display: block;@include ezy-rich-text;
  152. display: flex;flex-direction: row;justify-content: flex-start;
  153. .question-num{flex-shrink: 0;}
  154. }
  155. /***** 单选题 *****/
  156. .phone-danxuan-box{
  157. margin: 0 10rpx;overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  158. .danxuan-option-box{
  159. width: 100%;line-height:96rpx;border-radius: 8px;margin-bottom: 20rpx;
  160. font-size: 32rpx;color: #666;box-sizing: border-box;padding: 10rpx 24rpx;
  161. display: flex;
  162. .option-change{
  163. width: 48rpx;height: 48rpx;line-height: 48rpx;box-sizing: border-box;
  164. flex-shrink: 0;border-radius: 50%;border: 1rpx solid;margin-right: 20rpx;
  165. display: flex;align-items: center;justify-content: center;
  166. }
  167. .option-question{font-size: 32rpx;line-height: 1.6;@include ezy-rich-text;
  168. text-align: justify;word-wrap: break-word;word-break: break-all;display: block;}
  169. }
  170. .danxuan-option-box.active .option-change{color: #FFF;background-color:#6186fb;border-color:#6186fb;}
  171. .danxuan-option-box.showError .option-change{color: #FFF;background-color:#ff5757;border-color:#ff5757;}
  172. .danxuan-option-box.active_right .option-change{color: #FFF;background-color:#1ac136;border-color:#1ac136;}
  173. }
  174. /***** 多选题 *****/
  175. .phone-duoxuan-box{
  176. margin: 0 10rpx;overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  177. .duoxuan-option-box{
  178. width: 100%;line-height:96rpx;border-radius: 8px;margin-bottom: 20rpx;
  179. font-size: 32rpx;color: #666;box-sizing: border-box;padding: 10rpx 24rpx;
  180. display: flex;
  181. .option-change{
  182. width: 48rpx;height: 48rpx;line-height: 48rpx;box-sizing: border-box;
  183. flex-shrink: 0;border: 1rpx solid;margin-right: 20rpx;
  184. display: flex;align-items: center;justify-content: center;
  185. }
  186. .option-question{font-size: 32rpx;line-height: 1.6;@include ezy-rich-text;
  187. text-align: justify;word-wrap: break-word;word-break: break-all;display: block;}
  188. }
  189. // active background-color:#0589e9;
  190. .duoxuan-option-box.active .option-change{color: #FFF;background-color:#6186fb;border-color:#6186fb;}
  191. .duoxuan-option-box.showError .option-change{color: #FFF;background-color:#ff5757;border-color:#ff5757;}
  192. .duoxuan-option-box.active_right .option-change{color: #FFF;background-color:#1ac136;border-color:#1ac136;}
  193. }
  194. /***** 判断题 *****/
  195. .phone-panduan-box{
  196. margin: 0 10rpx;overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  197. .panduan-option-box{
  198. width: 100%;line-height:96rpx;font-size: 32rpx;color: #666;margin: 32rpx 0;
  199. .option-question{font-size: 32rpx;line-height: 1.6;margin-bottom: 20rpx;padding: 10rpx 24rpx;box-sizing: border-box;
  200. text-align: justify;word-wrap: break-word;word-break: break-all;display: flex;align-items: center;
  201. uni-radio{display: flex;align-items: center;}
  202. .uni-radio-input{margin-right: 20rpx;}
  203. }
  204. }
  205. // active background-color:#0589e9;
  206. .option-question.active .uni-radio-input{color: #FFF;background-color:#6186fb!important;border-color:#6186fb!important;}
  207. .option-question.showError .uni-radio-input{color: #FFF;background-color:#ff5757!important;border-color:#ff5757!important;}
  208. .option-question.active_right .uni-radio-input{color: #FFF;background-color:#1ac136!important;border-color:#1ac136!important;}
  209. }
  210. /***** 填空题 *****/
  211. .phone-tiankong-box{
  212. overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  213. .tiankong-option-box{
  214. padding:0 40rpx;box-sizing: border-box;margin-bottom: 36rpx;
  215. .option-question{font-size: 30rpx;color: #333;}
  216. .option-question-text{font-size: 30rpx;color: #333;margin-top: 16rpx;background: #f0f0f0;padding: 10px;border-radius: 4px;}
  217. }
  218. }
  219. /***** 简答题 *****/
  220. .phone-jianda-box{
  221. overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  222. .jianda-textarea-box{
  223. width: 90%;margin: 0 auto;height: 200rpx;border-radius: 6rpx;
  224. border: 1rpx solid #ccc;padding: 10rpx 24rpx;box-sizing: border-box;
  225. }
  226. }
  227. /***** 阅读题 *****/
  228. .phone-yuedu-box{
  229. overflow: auto;height: calc(100vh - 440rpx - var(--status-bar-height));
  230. display: flex;flex-direction: column;position: relative;
  231. .yuedu-swiper-box{flex: 1;}
  232. .yuedu-swiper-content{overflow-y: auto;padding: 32rpx 52rpx;box-sizing: border-box;}
  233. .phone-danxuan-box,.phone-duoxuan-box,.phone-panduan-box,.phone-tiankong-box,.phone-jianda-box{
  234. height: auto;
  235. }
  236. .yuedu-left-jt,.yuedu-right-jt{
  237. width: 60rpx;height: 60rpx;position: absolute;top: 50%;display: flex;align-items: center;justify-content: center;}
  238. .yuedu-left-jt{left: 0;transform: rotate(180deg);}
  239. .yuedu-right-jt{right: 0;}
  240. .yuedu-left-jt::before,.yuedu-right-jt::before{
  241. content:'';width: 27rpx;height: 44rpx;display: block;
  242. background-image: url("@/static/images/exam/yuedu-jt-icon.svg");@include ezy-no-repeat-cover();
  243. }
  244. .yuedu-left-jt.disable,.yuedu-right-jt.disable{opacity: 0.35;}
  245. .button-next-tip{
  246. width: 320rpx;position: absolute;bottom:50%;right:0;pointer-events: none;z-index: 2;font-size: 28rpx;line-height: 1.5;
  247. background: #646566;color: #fff;border-radius: 10rpx;margin: 0;padding:24rpx 24rpx;text-align: center;
  248. &::before{
  249. content: '';bottom: -40rpx;display:inline-block; border-width:10px;
  250. border-style:solid dashed dashed; border-color:#646566 transparent transparent ;
  251. font-size:0; line-height:0;right: 12px;position: absolute;}
  252. }
  253. }
  254. /***** 答题卡 *****/
  255. /* .answer-card-popup{
  256. height: 100vh;display: flex;flex-direction: column;
  257. .card-navBar-box{
  258. background-color: #0856e6;
  259. .icon-title-navBar-box{background-color: #0856e6;}
  260. .nav-bar-title{color: #fff!important;}
  261. .nav-bar-icon{background-image: url("@/static/images/common/nav-white-bar-jt.svg");}
  262. }
  263. .card-content-box{
  264. flex: 1;overflow-y: auto;padding: 0 24rpx;
  265. .answer-card-content{display: flex;flex-flow: row wrap;}
  266. .paragraph-title {color: #666;width: 100%;font-size: 32rpx;padding: 18rpx;
  267. padding-bottom: 3rpx;box-sizing: border-box;}
  268. .paragraph-qa{
  269. width: 80rpx;height: 80rpx;border-radius: 50%;border: 1rpx solid #ccc;
  270. text-align: center;line-height: 76rpx;box-sizing: border-box;margin: 30rpx;
  271. }
  272. .paragraph-qa-block-mark{background-color: #FF9100;color: #fff;border-color:#FF9100;}
  273. }
  274. .answer-card-btn-box{
  275. display: flex;border-top: 1rpx solid #E3E3E3;background-color: #FEF0F0;line-height: 1;
  276. .card-btn{width: 50%;text-align: center;font-size: 32rpx;color: #333;padding: 32rpx 0;}
  277. .card-jj-btn{background-color: #0856e6;color: #FFF;}}
  278. } */
  279. /***** 考试须知 *****/
  280. .ksxz-dialog{
  281. width: 640rpx;font-size: 28rpx;color: #333;max-height: 70vh;overflow: auto;border-radius: 20rpx;background-color: #fff;
  282. .ksxz-title-row{
  283. background-color: #F0F0F0;position: relative;text-align: center;padding: 20rpx 0;font-size: 32rpx;
  284. }
  285. .ksxz-content-box{
  286. padding: 24rpx;max-height: 640rpx;overflow-y: auto;
  287. >view{margin-bottom: 12rpx;line-height: 1.6;color: #333;font-size: 32rpx;}
  288. .ksms-row{margin-bottom: 12rpx;}
  289. .ksms-intro{color: #666;}
  290. .ksxz-img-box{
  291. text-align: center;
  292. img{max-width: 100%;max-height: 260rpx;}
  293. }
  294. }
  295. .ksxz-btn-box{
  296. display: flex;justify-content: center;
  297. .ksxz-btn{width: 160rpx;background: #0856e6;border: 1rpx solid #1989fa;color: #fff;text-align: center;
  298. padding: 10rpx;font-size: 28rpx;margin:30rpx 16rpx;border-radius: 4rpx;}
  299. }
  300. }
  301. /*****音频播放器 author: TX date:2024-06-24*****/
  302. .MtaBusAudioPlayerBox{
  303. position: relative;
  304. .st-aplayer{
  305. //position: relative;
  306. }
  307. .audio-mask {
  308. width: 30px;
  309. height: 30px;
  310. background: transparent;
  311. z-index: 99;
  312. position: absolute;
  313. top: 10px;
  314. right: 20px;
  315. }
  316. }
  317. /***** 默认头像 *****/
  318. .phone-default-userImg{
  319. width: 120rpx;height: 120rpx;margin: 0 auto;
  320. background-image: url("@/static/images/my/user-default-img.png");@include ezy-no-repeat-cover();}
  321. /***** 通用弹窗 *****/
  322. .phone-common-dialog{
  323. width: 660rpx;border-radius: 12rpx;background-color: #fff;padding-top: 24rpx;box-sizing: border-box;position: relative;
  324. .common-title{padding-top: 24rpx;font-size: 34rpx;color: #333;text-align: center;}
  325. .common-content{font-size: 32rpx;color: #666;margin:32rpx 48rpx 48rpx;line-height: 1.6;}
  326. .common-input-box{
  327. padding: 32rpx 0 20rpx;
  328. .common-input-row{display: flex;align-items: center;margin-bottom: 24rpx;}
  329. .common-label-require{color: #ff0101;margin-right: 6rpx;width:16rpx;display: inline-block;flex-shrink: 0;}
  330. .common-input-label{width: 200rpx;line-height:70rpx;font-size: 28rpx;color: #333;text-align: right;}
  331. .common-input,.common-input-margin{
  332. height: 70rpx;min-height: 70rpx;padding: 20rpx;box-sizing: border-box;margin-right: 30rpx;
  333. border: 1rpx solid #f0f0f0;border-radius: 10rpx;display: block;flex: 1;font-size: 28rpx;}
  334. .common-input-margin{margin:0 46rpx 24rpx 46rpx;}
  335. .common-select{margin-right: 42rpx;}
  336. }
  337. .content-center-class{text-align: center;}
  338. .content-left-class{text-align: left;}
  339. .content-margin-bottom{margin-bottom: 20rpx;}
  340. .common-btn-box{display: flex;flex-direction: row;border-top-color: #f5f5f5;border-top-style: solid;border-top-width: 1px;}
  341. .not-confirm-btn,.confirm-btn{height: 90rpx;line-height: 90rpx;flex:1;text-align: center;font-size: 30rpx;}
  342. .not-confirm-btn{color: #666;}
  343. .confirm-btn{border-left-color: #f0f0f0;border-left-style: solid;border-left-width: 1px;color: $uni-primary;}
  344. .code-img{width: 500rpx;height: 500rpx;display: block;margin: 0 auto;}
  345. }
  346. /*****分类组件 author: TX date:2024-06-24*****/
  347. .lli-status-box{
  348. display: flex;justify-content: space-around;background: #fff;
  349. border-bottom:1px solid #f2f1f2;padding: 15px 10px;
  350. .status-item{text-align: center;color: #333333;position: relative;}
  351. .status-item.click:before{content: '';position: absolute;height: 2px;width: 80%;bottom: -15px;font-size: 14px;
  352. background-color: $uni-primary;
  353. left: 10%;border-radius: 2px;}
  354. }
  355. /*****开发中,敬请期待 author: TX date:2024-06-25*****/
  356. .lli-develop-expect-page{
  357. height: 100vh;display: flex;align-items: center;justify-content: center;font-size: 36rpx;color: #666;
  358. }