index.html 85 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <link rel="stylesheet" href="/layui/css/layui.css">
  8. <link rel="stylesheet" href="/css/common.css">
  9. <script src="/layui/layui.js"></script>
  10. <link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
  11. <style>
  12. /** 初始化 */
  13. html #layuicss-easyxin {
  14. display: none;
  15. width: 1989px
  16. }
  17. [template] {
  18. display: none
  19. }
  20. [lay-href] {
  21. cursor: pointer
  22. }
  23. * {
  24. font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
  25. }
  26. body {
  27. color: #595959;
  28. background-color: #f0f2f5;
  29. }
  30. .layui-body {
  31. left: 0;
  32. }
  33. .layui-layout-body {
  34. overflow: auto;
  35. }
  36. .layui-layout-admin {
  37. position: absolute;
  38. top: 0;
  39. left: 0;
  40. right: 0;
  41. bottom: 0;
  42. overflow: hidden;
  43. -webkit-transition: left .3s ease, right .3s ease;
  44. transition: left .3s ease, right .3s ease;
  45. }
  46. /** body */
  47. .layui-layout-admin .layui-body {
  48. position: absolute;
  49. left: 60px;
  50. top: 50px;
  51. z-index: auto;
  52. overflow: auto;
  53. -webkit-transition: left .3s;
  54. transition: left .3s;
  55. -webkit-overflow-scrolling: touch
  56. }
  57. .admin-iframe {
  58. position: absolute;
  59. top: 0;
  60. left: 0;
  61. right: 0;
  62. bottom: 0;
  63. width: 100%;
  64. height: 100%
  65. }
  66. .layui-fluid {
  67. padding: 14px;
  68. }
  69. /** footer */
  70. .layui-layout-admin .layui-footer {
  71. position: absolute;
  72. left: 60px;
  73. background: #fff;
  74. box-sizing: border-box;
  75. border-top: 1px solid #f5f7f9;
  76. -webkit-transition: left .3s;
  77. transition: left .3s;
  78. overflow: hidden
  79. }
  80. .close-footer .layui-layout-admin .layui-footer {
  81. display: none
  82. }
  83. .close-footer .layui-layout-admin .layui-body {
  84. bottom: 0
  85. }
  86. /** side */
  87. .layui-layout-admin .layui-side {
  88. position: absolute;
  89. top: 50px;
  90. width: 60px;
  91. background-color: #191a23;
  92. box-shadow: 1px 2px 2px 0 rgba(0, 0, 0, .05);
  93. -webkit-transition: width .3s;
  94. transition: width .3s;
  95. -webkit-user-select: none;
  96. user-select: none;
  97. z-index: 1000
  98. }
  99. .layui-layout-admin .layui-side .layui-side-scroll {
  100. width: 255px
  101. }
  102. .layui-layout-admin .layui-side .layui-nav {
  103. width: 60px;
  104. background-color: transparent
  105. }
  106. .layui-layout-admin .layui-side>.layui-side-scroll>.layui-nav:first-child {
  107. margin-top: 10px
  108. }
  109. .layui-layout-admin .layui-side .layui-nav .layui-nav-item>a {
  110. cursor: pointer;
  111. padding-top: 5px;
  112. padding-bottom: 5px;
  113. overflow: visible
  114. }
  115. .layui-layout-admin .layui-side .layui-nav .layui-nav-item a {
  116. -webkit-transition: color .3s, background-color .3s;
  117. transition: color .3s, background-color .3s
  118. }
  119. .layui-layout-admin .layui-side .layui-nav .layui-nav-more {
  120. right: 15px
  121. }
  122. .layui-layout-admin .layui-side .layui-nav .layui-nav-item>.layui-nav-child {
  123. position: static
  124. }
  125. .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a {
  126. padding-left: 50px;
  127. cursor: pointer
  128. }
  129. .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a {
  130. padding-left: 70px
  131. }
  132. .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a {
  133. padding-left: 90px
  134. }
  135. .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a {
  136. padding-left: 110px
  137. }
  138. /** 侧导航折叠状态下样式 */
  139. .layui-layout-admin .layui-side .layui-nav .layui-nav-item>a .layui-nav-more,
  140. .layui-layout-admin .layui-side .layui-nav .layui-nav-item>a>cite,
  141. .layui-layout-admin .layui-side .layui-nav .layui-nav-itemed>.layui-nav-child {
  142. display: none !important
  143. }
  144. .layui-layout-admin .layui-side .layui-nav li.layui-nav-itemed>a {
  145. background: rgba(0, 0, 0, .8)
  146. }
  147. .layui-layout-admin .layui-side .layui-nav .layui-nav-item>a>.layui-icon {
  148. font-size: 16px;
  149. -webkit-transition: font-size .3s;
  150. transition: font-size .3s
  151. }
  152. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child {
  153. position: fixed;
  154. top: 60px;
  155. left: 60px;
  156. padding: 5px;
  157. min-width: 150px;
  158. display: block !important;
  159. background: 0 0 !important
  160. }
  161. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before {
  162. content: '';
  163. position: absolute;
  164. right: 5px;
  165. left: 5px;
  166. bottom: 0;
  167. top: 0;
  168. border-radius: 4px;
  169. background: #191a23;
  170. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1)
  171. }
  172. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:first-child>.layui-nav-child {
  173. margin-top: -5px
  174. }
  175. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:last-child>.layui-nav-child.show-top {
  176. margin-top: 5px
  177. }
  178. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a {
  179. padding: 0 20px !important
  180. }
  181. .layui-layout-admin .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more {
  182. border-color: transparent transparent transparent rgba(255, 255, 255, .7);
  183. right: 7px;
  184. margin-top: -6px
  185. }
  186. .layui-layout-admin .layui-side .layui-nav.arrow1 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more,
  187. .layui-layout-admin .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more {
  188. -o-transform: rotate(0);
  189. -ms-transform: rotate(0);
  190. -moz-transform: rotate(0);
  191. -webkit-transform: rotate(0);
  192. transform: rotate(0);
  193. width: 6px;
  194. height: 10px;
  195. right: 10px;
  196. margin-top: -5px;
  197. font-weight: 600
  198. }
  199. .layui-layout-admin .layui-side .layui-nav.arrow1 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before,
  200. .layui-layout-admin .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before {
  201. content: "\e602";
  202. left: -4px;
  203. top: -2px
  204. }
  205. .layui-layout-admin .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before {
  206. -o-transform: rotate(0);
  207. -ms-transform: rotate(0);
  208. -moz-transform: rotate(0);
  209. -webkit-transform: rotate(0);
  210. transform: rotate(0)
  211. }
  212. /** side hover 进入动画 */
  213. .ew-anim-drop-in {
  214. -webkit-animation: ewTransitionDropIn .3s ease-in-out;
  215. animation: ewTransitionDropIn .3s ease-in-out;
  216. -webkit-transform-origin: 0 0;
  217. transform-origin: 0 0
  218. }
  219. @-webkit-keyframes ewTransitionDropIn {
  220. from {
  221. opacity: 0;
  222. -webkit-transform: scale(.8)
  223. }
  224. to {
  225. opacity: 1;
  226. -webkit-transform: scale(1)
  227. }
  228. }
  229. @keyframes ewTransitionDropIn {
  230. from {
  231. opacity: 0;
  232. transform: scale(.8)
  233. }
  234. to {
  235. opacity: 1;
  236. transform: scale(1)
  237. }
  238. }
  239. /** layui nav tree */
  240. .layui-nav-tree .layui-nav-bar {
  241. display: none
  242. }
  243. .layui-nav-tree>.layui-nav-item>a:before {
  244. content: "";
  245. position: absolute;
  246. top: 0;
  247. left: 0;
  248. bottom: 100%;
  249. width: 3px;
  250. background-color: #009688;
  251. transition: all .3s ease
  252. }
  253. .layui-nav-tree>.layui-nav-item:hover>a:before {
  254. bottom: 0
  255. }
  256. .layui-nav-tree .layui-nav-item a:hover {
  257. background-color: transparent
  258. }
  259. .layui-nav-tree .layui-nav-child dd.layui-this,
  260. .layui-nav-tree .layui-this {
  261. background: 0 0
  262. }
  263. .layui-nav-tree .layui-nav-item .layui-nav-child {
  264. padding: 5px 0;
  265. background-color: rgba(0, 0, 0, .3) !important
  266. }
  267. .layui-nav-tree .layui-nav-itemed>.layui-nav-child {
  268. display: none
  269. }
  270. /** 小三角改箭头 */
  271. .layui-nav-tree.arrow1 .layui-nav-more {
  272. font-family: layui-icon !important;
  273. font-size: 12px;
  274. font-weight: 600;
  275. font-style: normal;
  276. -webkit-font-smoothing: antialiased;
  277. -moz-osx-font-smoothing: grayscale;
  278. overflow: hidden;
  279. line-height: normal;
  280. border: none;
  281. margin: -3px 0 0 0;
  282. padding: 0;
  283. width: 10px;
  284. height: 6px;
  285. top: 50%;
  286. display: inline-block;
  287. -webkit-transition: all .3s ease;
  288. transition: all .3s ease
  289. }
  290. .layui-nav-tree.arrow1 .layui-nav-more:before {
  291. content: "\e61a";
  292. position: absolute;
  293. right: -1px;
  294. top: -4px
  295. }
  296. .layui-nav-tree.arrow1 .layui-nav-itemed>a>.layui-nav-more {
  297. -ms-transform: rotate(-180deg);
  298. -moz-transform: rotate(-180deg);
  299. -webkit-transform: rotate(-180deg);
  300. -o-transform: rotate(-180deg);
  301. transform: rotate(-180deg)
  302. }
  303. /** 小三角改加减号 */
  304. .layui-nav-tree.arrow2 .layui-nav-more {
  305. font-family: layui-icon !important;
  306. font-size: 12px;
  307. font-style: normal;
  308. -webkit-font-smoothing: antialiased;
  309. -moz-osx-font-smoothing: grayscale;
  310. overflow: hidden;
  311. line-height: normal;
  312. border: none;
  313. margin: -5px 0 0 0;
  314. padding: 0;
  315. width: 10px;
  316. height: 10px;
  317. top: 50%;
  318. display: inline-block;
  319. -webkit-transition: all .3s ease;
  320. transition: all .3s ease
  321. }
  322. .layui-nav-tree.arrow2 .layui-nav-more:before {
  323. content: "\e654";
  324. position: absolute;
  325. top: -2px;
  326. left: -1px
  327. }
  328. .layui-nav-tree.arrow2 .layui-nav-itemed>a>.layui-nav-more {
  329. -ms-transform: rotate(-45deg);
  330. -moz-transform: rotate(-45deg);
  331. -webkit-transform: rotate(-45deg);
  332. -o-transform: rotate(-45deg);
  333. transform: rotate(-45deg)
  334. }
  335. .layui-nav-tree.arrow2 .layui-nav-itemed>a>.layui-nav-more:before {
  336. content: '';
  337. width: 8px;
  338. height: 2px;
  339. background-color: rgba(255, 255, 255, .7);
  340. top: 4px;
  341. left: 1px;
  342. -ms-transform: rotate(45deg);
  343. -moz-transform: rotate(45deg);
  344. -webkit-transform: rotate(45deg);
  345. -o-transform: rotate(45deg);
  346. transform: rotate(45deg)
  347. }
  348. /** 单标签标题 */
  349. .layui-body-header {
  350. color: #262626;
  351. font-size: 16px;
  352. padding: 0 20px;
  353. height: 45px;
  354. line-height: 45px;
  355. background-color: #fff;
  356. box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .1);
  357. box-sizing: border-box;
  358. position: absolute;
  359. left: 0;
  360. right: 0;
  361. z-index: 998;
  362. display: block
  363. }
  364. .layui-body-header-title {
  365. padding-left: 6px;
  366. border-left: 4px solid #009688
  367. }
  368. .layui-body-header+div {
  369. position: absolute;
  370. left: 0;
  371. right: 0;
  372. top: 45px;
  373. bottom: 0;
  374. overflow: auto;
  375. -webkit-overflow-scrolling: touch
  376. }
  377. .layui-breadcrumb {
  378. visibility: visible
  379. }
  380. /** 右侧弹窗 */
  381. .layui-layer.layui-layer-adminRight {
  382. bottom: 0;
  383. top: 50px !important;
  384. border: none !important;
  385. box-shadow: 1px 1px 50px rgba(0, 0, 0, .3) !important;
  386. overflow: auto
  387. }
  388. .layui-anim-rl {
  389. -webkit-animation-name: layui-rl;
  390. animation-name: layui-rl
  391. }
  392. @-webkit-keyframes layui-rl {
  393. from {
  394. -webkit-transform: translate3d(100%, 0, 0)
  395. }
  396. to {
  397. -webkit-transform: translate3d(0, 0, 0)
  398. }
  399. }
  400. @keyframes layui-rl {
  401. from {
  402. transform: translate3d(100%, 0, 0)
  403. }
  404. to {
  405. transform: translate3d(0, 0, 0)
  406. }
  407. }
  408. .layui-anim-lr,
  409. .layui-anim-rl.layer-anim-close {
  410. -webkit-animation-name: layui-lr;
  411. animation-name: layui-lr
  412. }
  413. @-webkit-keyframes layui-lr {
  414. from {
  415. -webkit-transform: translate3d(0, 0, 0);
  416. opacity: 1
  417. }
  418. to {
  419. -webkit-transform: translate3d(100%, 0, 0);
  420. opacity: 1
  421. }
  422. }
  423. @keyframes layui-lr {
  424. from {
  425. transform: translate3d(0, 0, 0)
  426. }
  427. to {
  428. transform: translate3d(100%, 0, 0)
  429. }
  430. }
  431. /** admin风格弹窗 */
  432. .layui-layer.layui-layer-admin {
  433. border: none !important;
  434. box-shadow: 1px 1px 50px rgba(0, 0, 0, .3) !important
  435. }
  436. .layui-layer.layui-layer-admin .layui-layer-title {
  437. color: #fff;
  438. height: 50px;
  439. line-height: 50px;
  440. background-color: #191a23;
  441. border: none
  442. }
  443. .layui-layer.layui-layer-admin .layui-layer-setwin {
  444. top: 17px
  445. }
  446. .layui-layer.layui-layer-admin .layui-layer-setwin a {
  447. color: #fff;
  448. font-size: 16px;
  449. font-style: normal;
  450. font-family: layui-icon !important;
  451. -webkit-font-smoothing: antialiased;
  452. -moz-osx-font-smoothing: grayscale
  453. }
  454. /** 关闭按钮 */
  455. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1 {
  456. background: 0 0
  457. }
  458. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1:before {
  459. content: "\1006"
  460. }
  461. /** 最小化按钮 */
  462. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite {
  463. background-color: #ddd
  464. }
  465. /** 最大化按钮 */
  466. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max {
  467. font-size: 14px;
  468. padding-top: 1px;
  469. background: 0 0
  470. }
  471. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max:before {
  472. content: "\e622"
  473. }
  474. .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-maxmin:before {
  475. content: "\e758"
  476. }
  477. /** 弹窗按钮 */
  478. .layui-layer.layui-layer-admin .layui-layer-btn {
  479. padding-bottom: 15px
  480. }
  481. .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0 {
  482. border-color: #009688;
  483. background-color: #009688
  484. }
  485. .layui-layer.layui-layer-admin .layui-layer-btn a {
  486. height: 34px;
  487. line-height: 34px
  488. }
  489. .layui-layer-admin {
  490. max-width: 100%
  491. }
  492. .layui-layer-iframe .layui-layer-content {
  493. overflow: auto;
  494. -webkit-overflow-scrolling: touch
  495. }
  496. /** msg样式 */
  497. body .layui-layer-msg {
  498. border: none;
  499. border-radius: 4px;
  500. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1)
  501. }
  502. body .layui-layer-load {
  503. background: 0 0
  504. }
  505. /** loading */
  506. .page-loading {
  507. position: absolute;
  508. display: block;
  509. width: 100%;
  510. height: 100%;
  511. top: 0;
  512. left: 0;
  513. right: 0;
  514. bottom: 0;
  515. z-index: 19891017;
  516. background-color: #fff
  517. }
  518. body>.page-loading {
  519. position: fixed;
  520. background-color: #f5f7f9
  521. }
  522. .layui-layout-admin>.layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,
  523. .layui-layout-admin>.layui-body>.page-loading {
  524. background-color: #f5f7f9
  525. }
  526. .layui-layout-admin>.layui-body>.layui-body-header.show+div+.page-loading {
  527. top: 45px;
  528. height: auto
  529. }
  530. .page-no-scroll {
  531. overflow-x: hidden;
  532. overflow-y: hidden;
  533. min-height: 80px
  534. }
  535. .ball-loader,
  536. .rubik-loader,
  537. .signal-loader {
  538. position: absolute;
  539. left: 50%;
  540. top: 50%;
  541. -webkit-transform: translate(-50%, -50%);
  542. -ms-transform: translate(-50%, -50%);
  543. transform: translate(-50%, -50%)
  544. }
  545. .ball-loader>span,
  546. .signal-loader>span {
  547. background-color: #4aca85;
  548. display: inline-block
  549. }
  550. .ball-loader.sm>span:nth-child(1),
  551. .ball-loader>span:nth-child(1),
  552. .signal-loader.sm>span:nth-child(1),
  553. .signal-loader>span:nth-child(1) {
  554. -webkit-animation-delay: 0s;
  555. animation-delay: 0s
  556. }
  557. .ball-loader.sm>span:nth-child(2),
  558. .ball-loader>span:nth-child(2),
  559. .signal-loader.sm>span:nth-child(2),
  560. .signal-loader>span:nth-child(2) {
  561. -webkit-animation-delay: .1s;
  562. animation-delay: .1s
  563. }
  564. .ball-loader.sm>span:nth-child(3),
  565. .ball-loader>span:nth-child(3),
  566. .signal-loader.sm>span:nth-child(3),
  567. .signal-loader>span:nth-child(3) {
  568. -webkit-animation-delay: .15s;
  569. animation-delay: .15s
  570. }
  571. .ball-loader.sm>span:nth-child(4),
  572. .ball-loader>span:nth-child(4),
  573. .signal-loader.sm>span:nth-child(4),
  574. .signal-loader>span:nth-child(4) {
  575. -webkit-animation-delay: .2s;
  576. animation-delay: .2s
  577. }
  578. /** 魔方loading */
  579. .rubik-loader {
  580. width: 64px;
  581. height: 64px;
  582. background-image: url(img/ic_loading.gif);
  583. background-repeat: no-repeat;
  584. background-position: center;
  585. background-size: contain
  586. }
  587. .rubik-loader.sm {
  588. width: 50px;
  589. height: 50px
  590. }
  591. /** 球形loading */
  592. .ball-loader>span {
  593. width: 20px;
  594. height: 20px;
  595. margin: 0 3px;
  596. border-radius: 50%;
  597. -webkit-transform: scale(0);
  598. -ms-transform: scale(0);
  599. transform: scale(0);
  600. -webkit-animation: 1s ball-load ease-in-out infinite;
  601. animation: ball-load 1s ease-in-out infinite
  602. }
  603. @-webkit-keyframes ball-load {
  604. 0% {
  605. -webkit-transform: scale(0)
  606. }
  607. 50% {
  608. -webkit-transform: scale(1)
  609. }
  610. 100% {
  611. -webkit-transform: scale(0)
  612. }
  613. }
  614. @keyframes ball-load {
  615. 0% {
  616. transform: scale(0)
  617. }
  618. 50% {
  619. transform: scale(1)
  620. }
  621. 100% {
  622. transform: scale(0)
  623. }
  624. }
  625. .ball-loader.sm>span {
  626. width: 15px;
  627. height: 15px;
  628. margin: 0 2px
  629. }
  630. /** 信号loading */
  631. .signal-loader {
  632. width: 50px;
  633. height: 22px
  634. }
  635. .signal-loader>span {
  636. width: 8px;
  637. height: 0;
  638. position: absolute;
  639. bottom: 0;
  640. left: 0;
  641. margin: 0;
  642. -webkit-animation: signal-load 1s infinite;
  643. animation: signal-load 1s infinite
  644. }
  645. .signal-loader>span:nth-child(2) {
  646. left: 14px
  647. }
  648. .signal-loader>span:nth-child(3) {
  649. left: 28px
  650. }
  651. .signal-loader>span:nth-child(4) {
  652. left: 42px
  653. }
  654. @-webkit-keyframes signal-load {
  655. 0% {
  656. height: 0
  657. }
  658. 50% {
  659. height: 22px
  660. }
  661. 100% {
  662. height: 0
  663. }
  664. }
  665. @keyframes signal-load {
  666. 0% {
  667. height: 0
  668. }
  669. 50% {
  670. height: 22px
  671. }
  672. 100% {
  673. height: 0
  674. }
  675. }
  676. /** 信号loading小型 */
  677. .signal-loader.sm {
  678. width: 32px;
  679. height: 15px
  680. }
  681. .signal-loader.sm>span {
  682. width: 5px;
  683. -webkit-animation: signal-load-sm 1s infinite;
  684. animation: signal-load-sm 1s infinite
  685. }
  686. .signal-loader.sm>span:nth-child(2) {
  687. left: 9px
  688. }
  689. .signal-loader.sm>span:nth-child(3) {
  690. left: 18px
  691. }
  692. .signal-loader.sm>span:nth-child(4) {
  693. left: 27px
  694. }
  695. @-webkit-keyframes signal-load-sm {
  696. 0% {
  697. height: 0
  698. }
  699. 50% {
  700. height: 15px
  701. }
  702. 100% {
  703. height: 0
  704. }
  705. }
  706. @keyframes signal-load-sm {
  707. 0% {
  708. height: 0
  709. }
  710. 50% {
  711. height: 15px
  712. }
  713. 100% {
  714. height: 0
  715. }
  716. }
  717. /** 组件样式 */
  718. /** toolbar */
  719. .layui-form.toolbar .layui-form-item {
  720. margin-bottom: 0
  721. }
  722. .layui-card-body>.layui-table,
  723. .toolbar+.layui-table {
  724. margin: 2px 0
  725. }
  726. .layui-card-body>.layui-table-view,
  727. .toolbar+table+.ew-tree-table,
  728. .toolbar+table+.layui-table-view {
  729. margin: 0
  730. }
  731. .mr0 {
  732. margin-right: 0 !important
  733. }
  734. .w-auto {
  735. width: auto
  736. }
  737. @media screen and (max-width:450px) {
  738. .layui-form-item .w-auto+.layui-input-inline {
  739. margin-left: 100px
  740. }
  741. .layui-form-item .layui-inline {
  742. margin-bottom: 8px
  743. }
  744. }
  745. /** form */
  746. .model-form {
  747. padding: 20px 30px 0 0
  748. }
  749. .model-form.no-padding {
  750. padding: 0
  751. }
  752. .model-form .model-form-body {
  753. overflow-y: auto;
  754. padding: 25px 30px 0 0;
  755. max-height: calc(100vh - 180px)
  756. }
  757. .model-form.no-padding .model-form-footer {
  758. padding-top: 10px;
  759. padding-right: 30px
  760. }
  761. .layui-form.model-form>.layui-form-item:last-child {
  762. margin-bottom: 0;
  763. padding-bottom: 20px
  764. }
  765. .layui-form-required:before {
  766. content: "*";
  767. display: inline-block;
  768. font-family: SimSun;
  769. margin-right: 4px;
  770. font-size: 14px;
  771. line-height: 1;
  772. color: #ed4014
  773. }
  774. .layui-input,
  775. .layui-textarea {
  776. color: #595959
  777. }
  778. .layui-input[type=number] {
  779. line-height: 38px
  780. }
  781. .layui-form-select .layui-input {
  782. padding-right: 0
  783. }
  784. .layui-form-select-top .layui-form-select>dl {
  785. top: auto;
  786. bottom: 42px
  787. }
  788. /** button */
  789. .layui-btn-primary {
  790. color: #595959;
  791. border-color: #e6e6e6
  792. }
  793. .layui-btn-group .layui-btn-primary:first-child {
  794. border-left: 1px solid #e6e6e6
  795. }
  796. .layui-btn-group .layui-btn-primary:hover,
  797. .layui-btn-primary:hover {
  798. color: #262626;
  799. border-color: #c9c9c9
  800. }
  801. .layui-btn {
  802. -webkit-transition: background-color .2s;
  803. transition: background-color .2s
  804. }
  805. /** 圆形按钮 */
  806. .btn-circle {
  807. width: 50px;
  808. height: 50px;
  809. line-height: 50px;
  810. border-radius: 50%;
  811. background: #009688;
  812. position: fixed;
  813. right: 15px;
  814. bottom: 15px;
  815. color: #fff;
  816. text-align: center;
  817. box-shadow: 0 0 8px rgba(0, 0, 0, .2);
  818. cursor: pointer
  819. }
  820. .btn-circle:hover {
  821. color: #fff;
  822. opacity: .8
  823. }
  824. .btn-circle .layui-icon {
  825. font-size: 24px
  826. }
  827. /** 组件加图标 */
  828. .date-icon,
  829. .icon-date {
  830. background-image: url(img/icon_date.png);
  831. background-repeat: no-repeat;
  832. background-position: right center;
  833. padding-right: 28px
  834. }
  835. .icon-search {
  836. background-image: url(img/icon_search.png);
  837. background-repeat: no-repeat;
  838. background-position: right center;
  839. padding-right: 26px
  840. }
  841. a.icon-text>.layui-icon,
  842. span.icon-text>.layui-icon {
  843. font-size: 14px;
  844. margin-left: 2px
  845. }
  846. .icon-btn {
  847. padding: 0 10px
  848. }
  849. /** 辅助样式 */
  850. .bg-white,
  851. html.bg-white>body {
  852. background-color: #fff
  853. }
  854. [ew-href],
  855. [lay-tips] {
  856. cursor: pointer
  857. }
  858. .inline-block {
  859. display: inline-block
  860. }
  861. .pull-right {
  862. float: right
  863. }
  864. .pull-left {
  865. float: left
  866. }
  867. .text-left {
  868. text-align: left
  869. }
  870. .text-center {
  871. text-align: center
  872. }
  873. .text-right {
  874. text-align: right
  875. }
  876. .layui-link,
  877. .text-primary {
  878. color: #009688 !important
  879. }
  880. .text-success {
  881. color: #5fb878 !important
  882. }
  883. .text-warning {
  884. color: #ffb800 !important
  885. }
  886. .text-danger {
  887. color: #ff5722 !important
  888. }
  889. .text-info {
  890. color: #01aaed !important
  891. }
  892. .text-muted {
  893. color: #c2c2c2 !important
  894. }
  895. .layui-text a:not(.layui-btn) {
  896. color: #2d8cf0;
  897. cursor: pointer
  898. }
  899. .layui-text a:not(.layui-btn):hover {
  900. text-decoration: none
  901. }
  902. .ew-console-wrapper .layui-card {
  903. box-shadow: none;
  904. border-radius: 4px;
  905. padding: 10px;
  906. }
  907. .layui-card-header {
  908. color: #595959;
  909. border-bottom: none;
  910. }
  911. .lay-big-font {
  912. font-size: 30px;
  913. line-height: 36px;
  914. padding: 10px 0px 10px;
  915. overflow: hidden;
  916. white-space: nowrap;
  917. word-break: break-all;
  918. text-overflow: ellipsis;
  919. color: rgba(0, 0, 0, .85);
  920. }
  921. /** 隐藏滚动条 */
  922. .no-scrollbar {
  923. overflow-x: hidden !important;
  924. overflow-y: hidden !important
  925. }
  926. /** 输入框禁用样式 */
  927. input.layui-disabled,
  928. input.layui-disabled:hover,
  929. textarea.layui-disabled,
  930. textarea.layui-disabled:hover {
  931. color: #595959 !important;
  932. background-color: #f6f6f6
  933. }
  934. /** 下拉菜单 */
  935. .dropdown-menu {
  936. display: inline-block
  937. }
  938. .dropdown-menu .dropdown-menu-nav {
  939. display: none
  940. }
  941. .dropdown-menu+.dropdown-menu,
  942. .dropdown-menu+.layui-btn,
  943. .layui-btn+.dropdown-menu {
  944. margin-left: 10px
  945. }
  946. /** 滚动条样式 */
  947. ::-webkit-scrollbar {
  948. width: 10px;
  949. height: 10px;
  950. background: 0 0
  951. }
  952. ::-webkit-scrollbar-track {
  953. background: 0 0
  954. }
  955. ::-webkit-scrollbar-thumb {
  956. border-radius: 5px;
  957. background-color: #c1c1c1
  958. }
  959. ::-webkit-scrollbar-thumb:hover {
  960. background-color: #a8a8a8
  961. }
  962. .mini-bar::-webkit-scrollbar {
  963. width: 6px;
  964. height: 6px
  965. }
  966. .mini-bar::-webkit-scrollbar-thumb {
  967. border-radius: 3px
  968. }
  969. @media screen and (max-width:768px) {
  970. ::-webkit-scrollbar {
  971. width: 4px;
  972. height: 4px
  973. }
  974. ::-webkit-scrollbar-thumb {
  975. border-radius: 2px
  976. }
  977. }
  978. /** 地图选择位置弹窗 */
  979. #ew-map-select-map {
  980. height: 450px
  981. }
  982. #ew-map-select-pois {
  983. height: 450px;
  984. overflow-x: hidden;
  985. overflow-y: auto
  986. }
  987. .ew-map-select-search-list-item {
  988. padding: 10px 30px 10px 15px;
  989. border-bottom: 1px solid #e8e8e8;
  990. cursor: pointer;
  991. position: relative
  992. }
  993. .ew-map-select-search-list-item:hover {
  994. background: #f2f2f2
  995. }
  996. .ew-map-select-search-list-item:last-child {
  997. border-bottom: none
  998. }
  999. .ew-map-select-search-list-item .ew-map-select-search-list-item-title {
  1000. font-size: 14px;
  1001. color: #262626
  1002. }
  1003. .ew-map-select-search-list-item .ew-map-select-search-list-item-address {
  1004. font-size: 12px;
  1005. color: #595959;
  1006. padding-top: 5px
  1007. }
  1008. .ew-map-select-search-list-item-icon-ok {
  1009. position: absolute;
  1010. right: 15px;
  1011. top: 50%;
  1012. transform: translateY(-50%)
  1013. }
  1014. .ew-map-select-search-list-item-icon-ok .layui-icon {
  1015. color: #3b74ff
  1016. }
  1017. .ew-map-select-tool {
  1018. padding: 5px 15px;
  1019. box-shadow: 0 1px 0 0 rgba(0, 0, 0, .05)
  1020. }
  1021. #ew-map-select-center-img {
  1022. position: absolute;
  1023. bottom: 50%;
  1024. left: 50%;
  1025. width: 26px;
  1026. margin-left: -13px
  1027. }
  1028. #ew-map-select-center-img2 {
  1029. position: absolute;
  1030. left: 50%;
  1031. top: 50%;
  1032. font-size: 12px;
  1033. display: inline-block;
  1034. margin-left: -6px;
  1035. margin-top: -7px;
  1036. color: #3b74ff
  1037. }
  1038. .bounceInDown {
  1039. animation: bounceInDown .5s;
  1040. animation-direction: alternate;
  1041. -webkit-animation: bounceInDown .5s;
  1042. -webkit-animation-direction: alternate
  1043. }
  1044. @-webkit-keyframes bounceInDown {
  1045. 0%,
  1046. 60%,
  1047. 75%,
  1048. 90%,
  1049. to {
  1050. -webkit-transition-timing-function: cubic-bezier(.215, .61, .355, 1)
  1051. }
  1052. 0%,
  1053. to {
  1054. -webkit-transform: translate3d(0, 0, 0)
  1055. }
  1056. 25% {
  1057. -webkit-transform: translate3d(0, -30px, 0)
  1058. }
  1059. 50% {
  1060. -webkit-transform: translate3d(0, -15px, 0)
  1061. }
  1062. 75% {
  1063. -webkit-transform: translate3d(0, -4px, 0)
  1064. }
  1065. }
  1066. @keyframes bounceInDown {
  1067. 0%,
  1068. 60%,
  1069. 75%,
  1070. 90%,
  1071. to {
  1072. transition-timing-function: cubic-bezier(.215, .61, .355, 1)
  1073. }
  1074. 0%,
  1075. to {
  1076. transform: translate3d(0, 0, 0)
  1077. }
  1078. 25% {
  1079. transform: translate3d(0, -10px, 0)
  1080. }
  1081. 50% {
  1082. transform: translate3d(0, -20px, 0)
  1083. }
  1084. 75% {
  1085. transform: translate3d(0, -10px, 0)
  1086. }
  1087. }
  1088. #ew-map-select-tips {
  1089. position: absolute;
  1090. z-index: 999;
  1091. background: #fff;
  1092. max-height: 430px;
  1093. overflow: auto;
  1094. top: 48px;
  1095. left: 56px;
  1096. width: 280px;
  1097. box-shadow: 0 2px 4px rgba(0, 0, 0, .12);
  1098. border: 1px solid #d2d2d2
  1099. }
  1100. #ew-map-select-tips .ew-map-select-search-list-item {
  1101. padding: 10px 15px 10px 35px
  1102. }
  1103. .ew-map-select-search-list-item-icon-search {
  1104. position: absolute;
  1105. left: 10px;
  1106. top: 50%;
  1107. transform: translateY(-50%)
  1108. }
  1109. .ew-map-select-search-list-item-icon-search .layui-icon {
  1110. color: #8c8c8c
  1111. }
  1112. /** 表格头部工具栏迷你样式 */
  1113. .table-tool-mini .layui-table-view {
  1114. position: relative
  1115. }
  1116. .table-tool-mini .layui-table-tool {
  1117. position: absolute;
  1118. min-height: unset;
  1119. height: auto;
  1120. padding: 3px 10px;
  1121. width: auto;
  1122. top: -38px;
  1123. right: -1px;
  1124. border-top-right-radius: 8px;
  1125. border-top-left-radius: 8px;
  1126. border: 1px solid #e6e6e6;
  1127. border-bottom: none
  1128. }
  1129. .table-tool-mini .layui-table-tool .layui-table-tool-temp {
  1130. padding-right: 0;
  1131. display: inline-block
  1132. }
  1133. .table-tool-mini .layui-table-tool .layui-table-tool-self {
  1134. position: static;
  1135. display: inline-block
  1136. }
  1137. .table-tool-mini .layui-table-tool .layui-table-tool-self .layui-inline[lay-event]:first-child {
  1138. margin: 0
  1139. }
  1140. .table-tool-mini.full-table .layui-table-tool {
  1141. top: -35px;
  1142. height: 1px;
  1143. padding: 0 10px;
  1144. background: 0 0;
  1145. border: none
  1146. }
  1147. .table-tool-mini.full-table .layui-table-tool:before {
  1148. content: "";
  1149. position: absolute;
  1150. top: -3px;
  1151. right: 0;
  1152. left: 0;
  1153. height: 36px;
  1154. background-color: #f2f2f2;
  1155. border-top-right-radius: 8px;
  1156. border-top-left-radius: 8px;
  1157. border: 1px solid #e6e6e6;
  1158. border-bottom: none
  1159. }
  1160. /** laydate自适应 */
  1161. @media screen and (max-width: 768px) {
  1162. .layui-laydate-range {
  1163. left: 0 !important;
  1164. top: 0 !important;
  1165. right: 0 !important;
  1166. margin: 10px auto !important;
  1167. max-width: 95%
  1168. }
  1169. .layui-laydate-range .layui-laydate-content table,
  1170. .layui-laydate-range .layui-laydate-main {
  1171. width: 100%
  1172. }
  1173. .layui-laydate-range .laydate-main-list-0 .laydate-next-m,
  1174. .layui-laydate-range .laydate-main-list-0 .laydate-next-y,
  1175. .layui-laydate-range .laydate-main-list-1 .laydate-prev-m,
  1176. .layui-laydate-range .laydate-main-list-1 .laydate-prev-y {
  1177. display: inline-block !important
  1178. }
  1179. .layui-laydate-range .laydate-main-list-1 .layui-laydate-header {
  1180. border-top: 1px solid #e2e2e2
  1181. }
  1182. .layui-laydate-range .laydate-main-list-1 .layui-laydate-content {
  1183. border-left: none !important
  1184. }
  1185. .layui-laydate-range .laydate-time-list ol li {
  1186. padding-left: 0 !important;
  1187. text-align: center
  1188. }
  1189. .layui-laydate-range .laydate-time-list ol {
  1190. overflow: auto !important
  1191. }
  1192. }
  1193. /** tree展开箭头朝下 */
  1194. .layui-tree-spread>div>div>span>.layui-tree-iconArrow:after {
  1195. border-color: #c0c4cc transparent transparent transparent;
  1196. top: 6px;
  1197. left: 0
  1198. }
  1199. .layui-tree .layui-tree-iconArrow:after {
  1200. transition: none
  1201. }
  1202. /** 数据表格内checkbox */
  1203. .ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary] {
  1204. padding-left: 22px
  1205. }
  1206. .ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary] span {
  1207. padding-right: 5px
  1208. }
  1209. /** 字段集嵌套数据表格 */
  1210. .ew-field-group>.layui-elem-field {
  1211. border-bottom: none;
  1212. margin: 0
  1213. }
  1214. .ew-field-group>.ew-field-box {
  1215. border: 1px solid #e6e6e6;
  1216. padding: 10px 15px;
  1217. border-top: none
  1218. }
  1219. /** 垂直选项卡 */
  1220. .layui-tab.layui-tab-vertical {
  1221. position: relative
  1222. }
  1223. .layui-tab.layui-tab-vertical:after {
  1224. content: "";
  1225. clear: both;
  1226. display: block
  1227. }
  1228. .layui-tab.layui-tab-vertical>.layui-tab-title {
  1229. width: 130px;
  1230. height: auto;
  1231. border: none;
  1232. border-right: 1px solid #e9e9e9;
  1233. box-sizing: border-box;
  1234. padding: 10px 0;
  1235. float: left
  1236. }
  1237. .layui-tab.layui-tab-vertical>.layui-tab-title>li {
  1238. display: block;
  1239. margin-right: -1px;
  1240. border-right: 2px solid transparent;
  1241. white-space: normal;
  1242. line-height: normal;
  1243. padding: 10px 20px;
  1244. text-align: right
  1245. }
  1246. .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this {
  1247. border-right: 2px solid #5fb878;
  1248. color: #5fb878
  1249. }
  1250. .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this:after {
  1251. display: none
  1252. }
  1253. .layui-tab.layui-tab-vertical>.layui-tab-title>li>.layui-icon {
  1254. font-size: 14px;
  1255. margin-right: 5px
  1256. }
  1257. .layui-tab.layui-tab-vertical>.layui-tab-content {
  1258. margin-left: 130px
  1259. }
  1260. .layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title {
  1261. float: right;
  1262. border-right: none;
  1263. border-left: 1px solid #e9e9e9
  1264. }
  1265. .layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-content {
  1266. margin-left: 0;
  1267. margin-right: 130px
  1268. }
  1269. .layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li {
  1270. text-align: left;
  1271. border-left: 2px solid transparent;
  1272. border-right: none
  1273. }
  1274. .layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li.layui-this {
  1275. border-left: 2px solid #5fb878
  1276. }
  1277. .layui-tab.layui-tab-vertical.layui-tab-vertical-full>.layui-tab-title {
  1278. position: absolute;
  1279. top: 0;
  1280. left: 0;
  1281. right: auto;
  1282. min-height: 100%
  1283. }
  1284. .layui-tab.layui-tab-vertical.layui-tab-vertical-right.layui-tab-vertical-full>.layui-tab-title {
  1285. right: 0;
  1286. left: auto
  1287. }
  1288. /** 按钮加载中状态 */
  1289. .ew-btn-loading {
  1290. opacity: .8;
  1291. pointer-events: none;
  1292. font-size: 0 !important
  1293. }
  1294. .ew-btn-loading * {
  1295. display: none !important
  1296. }
  1297. .ew-btn-loading>.ew-btn-loading-text {
  1298. font-size: 14px !important;
  1299. display: inline-block !important
  1300. }
  1301. .ew-btn-loading.layui-btn-sm>.ew-btn-loading-text,
  1302. .ew-btn-loading.layui-btn-xs>.ew-btn-loading-text {
  1303. font-size: 12px !important
  1304. }
  1305. .ew-btn-loading>.ew-btn-loading-text * {
  1306. display: inline-block !important
  1307. }
  1308. /** 搜索展开更多 */
  1309. .form-search-expand,
  1310. .form-search-expand:hover {
  1311. padding: 0;
  1312. border: none;
  1313. color: #2d8cf0;
  1314. box-shadow: none !important
  1315. }
  1316. .form-search-expand .layui-icon {
  1317. font-size: 12px;
  1318. font-weight: 600
  1319. }
  1320. .form-search-show-expand {
  1321. display: none !important
  1322. }
  1323. /** 徽章扩展样式 */
  1324. .layui-badge-green {
  1325. color: #52c41a;
  1326. background: #f6ffed;
  1327. border: 1px solid #b7eb8f
  1328. }
  1329. .layui-badge-blue {
  1330. color: #1890ff;
  1331. background: #e6f7ff;
  1332. border: 1px solid #91d5ff
  1333. }
  1334. .layui-badge-red {
  1335. color: #f5222d;
  1336. background: #fff1f0;
  1337. border: 1px solid #ffa39e
  1338. }
  1339. .layui-badge-yellow {
  1340. color: #faad14;
  1341. background: #fffbe6;
  1342. border: 1px solid #ffe58f
  1343. }
  1344. .layui-badge-gray {
  1345. color: #8c8c8c;
  1346. background: #fafafa;
  1347. border: 1px solid #ccc
  1348. }
  1349. .layui-badge {
  1350. height: 20px;
  1351. line-height: 19px;
  1352. box-sizing: border-box
  1353. }
  1354. .layui-badge-list .layui-badge {
  1355. height: 23px;
  1356. line-height: 22px;
  1357. margin-bottom: 8px
  1358. }
  1359. .layui-badge-list .layui-badge+.layui-badge {
  1360. margin-left: 6px
  1361. }
  1362. .layui-badge-list .layui-badge.layui-bg-gray {
  1363. border: 1px solid #ccc;
  1364. background-color: #fafafa !important
  1365. }
  1366. .layui-card .layui-card-header .layui-badge.pull-right {
  1367. top: 50%;
  1368. margin-top: -10px
  1369. }
  1370. /** 锁屏 */
  1371. .ew-lock-screen-group {
  1372. position: fixed;
  1373. top: 0;
  1374. left: 0;
  1375. right: 0;
  1376. bottom: 0;
  1377. z-index: 19891099
  1378. }
  1379. /** ios下iframe兼容 */
  1380. .ios-iframe-body {
  1381. position: absolute;
  1382. top: 0;
  1383. left: 0;
  1384. right: 0;
  1385. bottom: 0
  1386. }
  1387. /** 应用快捷块样式 */
  1388. .console-app-group {
  1389. padding: 16px;
  1390. border-radius: 4px;
  1391. text-align: center;
  1392. background-color: #fff;
  1393. cursor: pointer
  1394. }
  1395. .console-app-group .console-app-icon,
  1396. .console-user-group .console-user-group-head .console-app-icon {
  1397. width: 32px;
  1398. height: 32px;
  1399. line-height: 32px;
  1400. margin-bottom: 6px;
  1401. display: inline-block;
  1402. -webkit-box-sizing: border-box;
  1403. -moz-box-sizing: border-box;
  1404. box-sizing: border-box;
  1405. font-size: 32px;
  1406. color: #69c0ff
  1407. }
  1408. .console-app-group:hover {
  1409. box-shadow: 0 0 15px rgba(0, 0, 0, .08)
  1410. }
  1411. /** 小组成员 */
  1412. .console-user-group {
  1413. position: relative;
  1414. padding: 10px 0 10px 60px
  1415. }
  1416. .console-user-group .console-user-group-head {
  1417. width: 32px;
  1418. height: 32px;
  1419. position: absolute;
  1420. top: 50%;
  1421. left: 12px;
  1422. margin-top: -16px
  1423. }
  1424. .console-user-group .layui-badge {
  1425. position: absolute;
  1426. top: 50%;
  1427. right: 8px;
  1428. margin-top: -10px
  1429. }
  1430. .console-user-group .console-user-group-name {
  1431. line-height: 1.2
  1432. }
  1433. .console-user-group .console-user-group-desc {
  1434. color: #8c8c8c;
  1435. line-height: 1;
  1436. font-size: 12px;
  1437. margin-top: 5px
  1438. }
  1439. /** 卡片轮播图样式 */
  1440. .admin-carousel .layui-carousel-ind {
  1441. position: absolute;
  1442. top: -41px;
  1443. text-align: right
  1444. }
  1445. .admin-carousel .layui-carousel-ind ul {
  1446. background: 0 0
  1447. }
  1448. .admin-carousel .layui-carousel-ind li {
  1449. background-color: #e2e2e2
  1450. }
  1451. .admin-carousel .layui-carousel-ind li.layui-this {
  1452. background-color: #999
  1453. }
  1454. /** 广告位轮播图 */
  1455. .admin-news .layui-carousel-ind {
  1456. height: 45px
  1457. }
  1458. .admin-news a {
  1459. display: block;
  1460. line-height: 60px;
  1461. text-align: center;
  1462. border-radius: 4px
  1463. }
  1464. /** 消息列表样式 */
  1465. .message-tab {
  1466. padding: 5px 0 0 0;
  1467. margin: 0
  1468. }
  1469. .message-tab .layui-tab-title {
  1470. text-align: center
  1471. }
  1472. .message-tab .layui-tab-content {
  1473. padding: 5px 0 0 0
  1474. }
  1475. .message-list {
  1476. overflow: auto
  1477. }
  1478. .message-list-item {
  1479. padding: 10px 24px;
  1480. border-bottom: 1px solid #e8e8e8;
  1481. -ms-flex-align: start;
  1482. align-items: flex-start;
  1483. display: flex;
  1484. -ms-flex: 1 1;
  1485. flex: 1 1
  1486. }
  1487. .message-btn-clear:hover,
  1488. .message-btn-more:hover,
  1489. .message-list-item:hover {
  1490. background: #f2f2f2
  1491. }
  1492. .message-item-icon {
  1493. width: 40px;
  1494. height: 40px;
  1495. margin-right: 16px;
  1496. display: block;
  1497. margin-top: 4px
  1498. }
  1499. .message-item-right {
  1500. display: block;
  1501. flex: 1 0;
  1502. line-height: 24px
  1503. }
  1504. .message-item-title {
  1505. font-size: 14px;
  1506. color: rgba(0, 0, 0, .65)
  1507. }
  1508. .message-item-text {
  1509. color: rgba(0, 0, 0, .45);
  1510. font-size: 12px
  1511. }
  1512. .message-btn-clear,
  1513. .message-btn-more {
  1514. display: block;
  1515. padding: 10px 5px;
  1516. text-align: center;
  1517. line-height: 24px;
  1518. color: #333
  1519. }
  1520. .message-btn-clear {
  1521. background: #fff;
  1522. border-top: 1px solid #e8e8e8
  1523. }
  1524. .message-btn-more {
  1525. color: #666;
  1526. font-size: 13px
  1527. }
  1528. .message-list-empty {
  1529. text-align: center;
  1530. color: rgba(0, 0, 0, .45);
  1531. padding: 73px 0 88px;
  1532. display: none;
  1533. }
  1534. .message-list-empty img {
  1535. height: 76px;
  1536. margin-bottom: 16px
  1537. }
  1538. /** 便签样式 */
  1539. .note-wrapper {
  1540. padding-left: 15px;
  1541. margin-bottom: 10px;
  1542. padding-top: 15px;
  1543. }
  1544. .note-item {
  1545. width: 113px;
  1546. height: 100px;
  1547. display: inline-block;
  1548. margin: 0 6px 10px 0;
  1549. padding: 10px;
  1550. border: 1px solid #ddd;
  1551. border-radius: 8px;
  1552. background-color: #fff;
  1553. position: relative;
  1554. cursor: pointer
  1555. }
  1556. .note-item:hover {
  1557. background-color: #f1f1f1
  1558. }
  1559. .note-item .note-item-content {
  1560. font-size: 14px;
  1561. color: #666;
  1562. height: 78px;
  1563. overflow: hidden;
  1564. word-wrap: break-word
  1565. }
  1566. .note-item .note-item-time {
  1567. font-size: 12px;
  1568. color: #999;
  1569. margin-top: 10px
  1570. }
  1571. .note-empty {
  1572. text-align: center;
  1573. color: rgba(0, 0, 0, .45);
  1574. padding: 73px 0 88px;
  1575. display: none
  1576. }
  1577. .note-empty .layui-icon {
  1578. margin-bottom: 10px;
  1579. display: inline-block;
  1580. font-size: 60px
  1581. }
  1582. .note-item-del {
  1583. position: absolute;
  1584. right: 3px;
  1585. top: 3px;
  1586. display: none;
  1587. color: #ff5722
  1588. }
  1589. .note-item-del.show {
  1590. display: inline-block
  1591. }
  1592. .note-item-del .layui-icon {
  1593. font-size: 22px
  1594. }
  1595. .layui-layer-admin textarea {
  1596. width: 260px;
  1597. height: 112px;
  1598. color: #666666;
  1599. word-wrap: break-word;
  1600. resize: none;
  1601. margin: 20px 5px;
  1602. margin-bottom: 0;
  1603. border: none;
  1604. padding: 0 10px;
  1605. overflow: hidden;
  1606. }
  1607. /** 单色导航图标 */
  1608. @font-face {
  1609. font-family: easyxin-icon-nav;
  1610. src: url(/font/nav/iconfont.eot);
  1611. src: url(/font/nav/iconfont.eot?#iefix) format('embedded-opentype'), url(/font/nav/iconfont.woff2) format('woff2'), url(/font/nav/iconfont.woff) format('woff'), url(/font/nav/iconfont.ttf) format('truetype'), url(/font/nav/iconfont.svg#easyxin-icon-nav) format('svg')
  1612. }
  1613. .easyxin-icon-nav {
  1614. font-family: easyxin-icon-nav !important;
  1615. font-size: 16px;
  1616. font-style: normal;
  1617. -webkit-font-smoothing: antialiased;
  1618. -moz-osx-font-smoothing: grayscale
  1619. }
  1620. .easyxin-icon-nav-anpaipaiche:before {
  1621. content: "\e60a"
  1622. }
  1623. .easyxin-icon-nav-gongchengguanli:before {
  1624. content: "\e609"
  1625. }
  1626. .easyxin-icon-nav-zichanguanli:before {
  1627. content: "\e608"
  1628. }
  1629. .easyxin-icon-nav-caigouguanli:before {
  1630. content: "\e607"
  1631. }
  1632. .easyxin-icon-nav-cangkuguanli:before {
  1633. content: "\e606"
  1634. }
  1635. .easyxin-icon-nav-yuangongguanli:before {
  1636. content: "\e605"
  1637. }
  1638. .easyxin-icon-nav-dingdanguanli:before {
  1639. content: "\e604"
  1640. }
  1641. .easyxin-icon-nav-wuliaoguanli:before {
  1642. content: "\e603"
  1643. }
  1644. .easyxin-icon-nav-waixieguanli:before {
  1645. content: "\e602"
  1646. }
  1647. /** 单色前三名 */
  1648. @font-face {
  1649. font-family: currency-icon-ranking;
  1650. src: url(/font/ranking/iconfont.eot);
  1651. src: url(/font/ranking/iconfont.eot?#iefix) format('embedded-opentype'), url(/font/ranking/iconfont.woff2) format('woff2'), url(/font/ranking/iconfont.woff) format('woff'), url(/font/ranking/iconfont.ttf) format('truetype'), url(/font/ranking/iconfont.svg#currency-icon-ranking) format('svg')
  1652. }
  1653. .currency-icon-ranking {
  1654. font-family: currency-icon-ranking !important;
  1655. font-size: 16px;
  1656. font-style: normal;
  1657. -webkit-font-smoothing: antialiased;
  1658. -moz-osx-font-smoothing: grayscale
  1659. }
  1660. .currency-icon-ranking-fuben3:before {
  1661. content: "\e60d"
  1662. }
  1663. .currency-icon-ranking-fuben2:before {
  1664. content: "\e60c"
  1665. }
  1666. .currency-icon-ranking-fuben1:before {
  1667. content: "\e60b"
  1668. }
  1669. .currency-icon-ranking-huangguan:before {
  1670. content: "\e601"
  1671. }
  1672. </style>
  1673. </head>
  1674. <body>
  1675. <div class="layui-body">
  1676. <div class="layui-fluid ew-console-wrapper">
  1677. <div class="layui-row layui-col-space15">
  1678. <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
  1679. <div class="layui-card">
  1680. <div class="layui-card-body">
  1681. <p style="font-size:14px;color: rgba(0,0,0,.45);">总订单金额
  1682. <span class="pull-right">
  1683. <i class="ri-exchange-cny-fill ri-xl" style="vertical-align: -0.3em;"></i>
  1684. </span>
  1685. </p>
  1686. <p class="lay-big-font"><span style="font-size: 26px;line-height: 1;">¥&nbsp;</span>85,84787
  1687. </p>
  1688. <div style="height: 40px;">
  1689. <p>
  1690. <span style="margin-right: 30px;">周同比 17% &nbsp;
  1691. <svg style="vertical-align: -0.5em;" xmlns="http://www.w3.org/2000/svg"
  1692. viewBox="0 0 24 24" width="24" height="24">
  1693. <path fill="none" d="M0 0h24v24H0z" />
  1694. <path d="M12 8l6 6H6z" fill="rgba(231,76,60,1)" /></svg>
  1695. </span>
  1696. <span>日同比 11% &nbsp;
  1697. <svg style="vertical-align: -0.5em;" xmlns="http://www.w3.org/2000/svg"
  1698. viewBox="0 0 24 24" width="24" height="24">
  1699. <path fill="none" d="M0 0h24v24H0z" />
  1700. <path d="M12 16l-6-6h12z" fill="rgba(47,204,113,1)" /></svg>
  1701. </span>
  1702. </p>
  1703. </div>
  1704. </div>
  1705. <p style="padding: 10px 15px 0px 15px;border-top: 1px solid #f0f0f0;">日销售金额<span
  1706. style="padding: 0 12px;">¥&nbsp;63 万元</span></p>
  1707. </div>
  1708. </div>
  1709. <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
  1710. <div class="layui-card">
  1711. <div class="layui-card-body">
  1712. <p style="font-size:14px;color: rgba(0,0,0,.45);">访问量
  1713. <span class="pull-right">
  1714. <i class="ri-funds-line ri-xl" style="vertical-align: -0.3em;"></i>
  1715. </span>
  1716. </p>
  1717. <p class="lay-big-font"><span style="font-size: 26px;line-height: 1;"></span>92,648
  1718. </p>
  1719. <div style="height: 40px;" id="ECharts01">
  1720. </div>
  1721. </div>
  1722. <p style="padding: 10px 15px 0px 15px;border-top: 1px solid #f0f0f0;">
  1723. 日访问量<span style="padding: 0 10px;">1675</span>
  1724. <span style="margin-left: 20px;">日同比 26% &nbsp;
  1725. <svg style="vertical-align: -0.5em;" xmlns="http://www.w3.org/2000/svg"
  1726. viewBox="0 0 24 24" width="24" height="24">
  1727. <path fill="none" d="M0 0h24v24H0z" />
  1728. <path d="M12 8l6 6H6z" fill="rgba(231,76,60,1)" /></svg>
  1729. </span>
  1730. </p>
  1731. </div>
  1732. </div>
  1733. <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
  1734. <div class="layui-card">
  1735. <div class="layui-card-body">
  1736. <p style="font-size:14px;color: rgba(0,0,0,.45);">活跃用户
  1737. <span class="pull-right">
  1738. <i class="ri-ghost-2-line ri-xl" style="vertical-align: -0.3em;"></i>
  1739. </span>
  1740. </p>
  1741. <p class="lay-big-font"><span style="font-size: 26px;line-height: 1;"></span>12684
  1742. </p>
  1743. <div style="height: 40px;" id="ECharts02">
  1744. </div>
  1745. </div>
  1746. <p style="padding: 10px 15px 0px 15px;border-top: 1px solid #f0f0f0;">
  1747. 今日活跃用户<span style="padding: 0 10px;">782</span>
  1748. <span style="margin-left: 20px;">日同比 6% &nbsp;
  1749. <svg style="vertical-align: -0.5em;" xmlns="http://www.w3.org/2000/svg"
  1750. viewBox="0 0 24 24" width="24" height="24">
  1751. <path fill="none" d="M0 0h24v24H0z" />
  1752. <path d="M12 16l-6-6h12z" fill="rgba(47,204,113,1)" /></svg>
  1753. </span>
  1754. </p>
  1755. </div>
  1756. </div>
  1757. <div class="layui-col-xs12 layui-col-sm6 layui-col-md3">
  1758. <div class="layui-card">
  1759. <div class="layui-card-body">
  1760. <p style="font-size:14px;color: rgba(0,0,0,.45);">总支出金额
  1761. <span class="pull-right">
  1762. <i class="ri-hand-coin-line ri-xl" style="vertical-align: -0.3em;"></i>
  1763. </span>
  1764. </p>
  1765. <div class="layui-row" style="height: 96px;">
  1766. <div style="width: 40%;height: 100%;float: left;">
  1767. <p class="lay-big-font"><span
  1768. style="font-size: 26px;line-height: 1;">¥&nbsp;</span>4675217
  1769. </p>
  1770. <p>
  1771. <span>周同比12% &nbsp;
  1772. <svg style="vertical-align: -0.5em;" xmlns="http://www.w3.org/2000/svg"
  1773. viewBox="0 0 24 24" width="24" height="24">
  1774. <path fill="none" d="M0 0h24v24H0z" />
  1775. <path d="M12 8l6 6H6z" fill="rgba(231,76,60,1)" /></svg>
  1776. </span>
  1777. </p>
  1778. </div>
  1779. <div style="width:60%;height: 100%;float: left;" id="ECharts03">
  1780. </div>
  1781. </div>
  1782. </div>
  1783. <p style="padding: 10px 15px 0px 15px;border-top: 1px solid #f0f0f0;">今日总支出<span
  1784. style="padding: 0 10px;">68541</span></p>
  1785. </div>
  1786. </div>
  1787. </div>
  1788. <div class="layui-row layui-col-space15">
  1789. <div class="layui-col-sm8">
  1790. <div class="layui-row">
  1791. <div class="layui-card">
  1792. <div class="layui-card-header">全国用户分布</div>
  1793. <div class="layui-card-body">
  1794. <div id="ECharts04" style="min-height: 420px;"></div>
  1795. </div>
  1796. </div>
  1797. </div>
  1798. </div>
  1799. <div class="layui-col-sm4">
  1800. <div class="layui-row ">
  1801. <div class="layui-card">
  1802. <div class="layui-card-header">科目通过人数比例</div>
  1803. <div class="layui-card-body">
  1804. <div id="ECharts05" style="min-height: 420px;"></div>
  1805. </div>
  1806. </div>
  1807. </div>
  1808. </div>
  1809. </div>
  1810. <div class="layui-row layui-col-space15">
  1811. <div class="layui-col-lg8 layui-col-md7">
  1812. <div class="layui-card">
  1813. <div class="layui-card-header">2018年 - 2019年 | 销售趋势</div>
  1814. <div class="layui-card-body">
  1815. <div class="layui-row">
  1816. <div class="layui-card">
  1817. <div class="layui-card-body">
  1818. <div id="ECharts06" style="min-height: 220px;"></div>
  1819. </div>
  1820. </div>
  1821. </div>
  1822. </div>
  1823. </div>
  1824. <div class="layui-card">
  1825. <div class="layui-card-header">登录日志</div>
  1826. <div class="layui-card-body">
  1827. <table class="layui-table"
  1828. lay-data="{height:384, url:'/data/user/loginlog.json', page:true, limit: 10 ,skin: 'line', even: true,size: 'sm'}"
  1829. lay-filter="test">
  1830. <thead>
  1831. <tr>
  1832. <th lay-data="{field:'userName'}">用户名</th>
  1833. <th lay-data="{field:'IP'}">IP</th>
  1834. <th lay-data="{field:'status'}">状态</th>
  1835. <th lay-data="{field:'creationTime', sort: true}">登陆时间</th>
  1836. </tr>
  1837. </thead>
  1838. </table>
  1839. </div>
  1840. </div>
  1841. </div>
  1842. <div class="layui-col-lg4 layui-col-md5">
  1843. <div class="layui-card">
  1844. <div class="layui-card-header">安全情况</div>
  1845. <div class="layui-card-body">
  1846. <div id="ECharts07" style="min-height: 260px;"></div>
  1847. </div>
  1848. </div>
  1849. <div class="layui-card">
  1850. <div class="layui-card-header">最新订单</div>
  1851. <div class="layui-card-body">
  1852. <table class="layui-table layui-text">
  1853. <colgroup>
  1854. <col width="80">
  1855. <col>
  1856. <col width="90">
  1857. <col>
  1858. </colgroup>
  1859. <tbody>
  1860. <tr>
  1861. <td>订货单</td>
  1862. <td>Y20200824</td>
  1863. <td>下单客户</td>
  1864. <td><span class="layui-badge layui-badge-red">张三</span></td>
  1865. </tr>
  1866. <tr>
  1867. <td>订货单</td>
  1868. <td>Y20200824</td>
  1869. <td>下单客户</td>
  1870. <td><span class="layui-badge layui-badge-yellow">李四</span></td>
  1871. </tr>
  1872. <tr>
  1873. <td>订货单</td>
  1874. <td>Y20200824</td>
  1875. <td>下单客户</td>
  1876. <td><span class="layui-badge layui-badge-green">王五</span></td>
  1877. </tr>
  1878. </tbody>
  1879. </table>
  1880. </div>
  1881. </div>
  1882. <div class="layui-card">
  1883. <div class="layui-card-header">星级客户</div>
  1884. <div class="layui-card-body">
  1885. <div class="console-user-group">
  1886. <div class="console-user-group-head">
  1887. <i class="ri-trophy-line ri-2x" style="color: #1890ff;"></i>
  1888. </div>
  1889. <div class="console-user-group-name">王五</div>
  1890. <div class="console-user-group-desc">13800000000</div>
  1891. <span class="layui-badge layui-badge-blue">¥684104.00</span>
  1892. </div>
  1893. <div class="console-user-group">
  1894. <div class="console-user-group-head">
  1895. <i class="ri-medal-line ri-2x" style="color: #faad14;"></i>
  1896. </div>
  1897. <div class="console-user-group-name">张三</div>
  1898. <div class="console-user-group-desc">13800000000</div>
  1899. <span class="layui-badge layui-badge-yellow">¥475211.00</span>
  1900. </div>
  1901. <div class="console-user-group">
  1902. <div class="console-user-group-head">
  1903. <i class="ri-award-line ri-2x" style="color: #52c41a;"></i>
  1904. </div>
  1905. <div class="console-user-group-name">李四</div>
  1906. <div class="console-user-group-desc">13800000000</div>
  1907. <span class="layui-badge layui-badge-green">¥207457.00</span>
  1908. </div>
  1909. </div>
  1910. </div>
  1911. </div>
  1912. </div>
  1913. </div>
  1914. </div>
  1915. <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.0-alpha.1/echarts.min.js"></script>
  1916. <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> -->
  1917. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
  1918. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script>
  1919. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script>
  1920. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js"></script>
  1921. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/world.js"></script>
  1922. <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script>
  1923. <script>
  1924. layui.use('table', function () {
  1925. var table = layui.table;
  1926. })
  1927. </script>
  1928. <script>
  1929. var ECharts01 = echarts.init(document.getElementById('ECharts01'));
  1930. var option01 = {
  1931. tooltip: {
  1932. trigger: 'axis',
  1933. axisPointer: {
  1934. lineStyle: {
  1935. color: '#57617B'
  1936. }
  1937. }
  1938. },
  1939. grid: {
  1940. top: 2,
  1941. left: 0,
  1942. right: 0,
  1943. bottom: 0,
  1944. containLabel: true
  1945. },
  1946. xAxis: [{
  1947. show: false,
  1948. data: ['0:00', '2:00', '4:00', '6:00', '8:00', '10:00', '12:00', '14:00', '16:00', '18:00', '20:00', '22:00'],
  1949. }],
  1950. yAxis: [{
  1951. show: false,
  1952. type: 'value',
  1953. data: ['13:00', '13:00', '13:00', '13:05', '13:10', '13:00', '13:05', '13:10', '13:00', '13:05', '13:10', '13:15', '13:20', '13:25', '13:30', '13:35', '13:00', '13:05', '13:10', '13:15', '13:20', '13:25', '13:30', '13:35',]
  1954. }],
  1955. series: [{
  1956. name: 'PV',
  1957. type: 'line',
  1958. smooth: true,
  1959. showSymbol: false,
  1960. lineStyle: {
  1961. normal: {
  1962. color: "#16D9F0"
  1963. }
  1964. },
  1965. areaStyle: {
  1966. normal: {
  1967. color: {
  1968. type: 'linear',
  1969. x: 0,
  1970. y: 0,
  1971. x2: 0,
  1972. y2: 1,
  1973. colorStops: [{
  1974. offset: 0,
  1975. color: 'rgba(22,217,240, 1)' // 0% 处的颜色
  1976. }, {
  1977. offset: 1,
  1978. color: 'rgba(22,217,240, 0)' // 100% 处的颜色
  1979. }],
  1980. global: false // 缺省为 false
  1981. },
  1982. shadowColor: 'rgba(0, 0, 0, 0.1)',
  1983. shadowBlur: 10
  1984. }
  1985. },
  1986. itemStyle: {
  1987. normal: {
  1988. color: '#16D9F0',
  1989. },
  1990. emphasis: {
  1991. show: true,
  1992. borderWidth: 1,
  1993. },
  1994. },
  1995. data: ['2', '156', '129', '3', '126', '7', '99', '143', '50', '180', '67', '142',],
  1996. }]
  1997. };
  1998. ECharts01.setOption(option01);
  1999. var ECharts02 = echarts.init(document.getElementById('ECharts02'));
  2000. var option02 = {
  2001. color: ['#60ABFC',],
  2002. tooltip: {
  2003. trigger: 'axis',
  2004. axisPointer: {
  2005. type: 'shadow'
  2006. }
  2007. },
  2008. legend: {
  2009. orient: 'horizontal',
  2010. data: ['2020-8-13', '2020-8-14', '2020-8-15', '2020-8-16', '2020-8-17', '2020-8-18', '2020-8-19', '2020-8-20', '2020-8-21', '2020-8-22'],
  2011. textStyle: {
  2012. color: '#858FA6',
  2013. fontFamily: 'Microsoft YAHei,serf'
  2014. }
  2015. },
  2016. grid: {
  2017. top: 0,
  2018. left: 0,
  2019. right: 0,
  2020. bottom: 0,
  2021. containLabel: true
  2022. },
  2023. xAxis: {
  2024. data: ['2020-8-13', '2020-8-14', '2020-8-15', '2020-8-16', '2020-8-17', '2020-8-18', '2020-8-19', '2020-8-20', '2020-8-21', '2020-8-22'],
  2025. axisLabel: {
  2026. show: false,
  2027. color: '#858fa6'
  2028. },
  2029. axisTick: {
  2030. show: false
  2031. },
  2032. splitLine: {
  2033. lineStyle: {
  2034. width: 1,
  2035. color: '#E2E2E2'
  2036. }
  2037. },
  2038. axisLine: {
  2039. lineStyle: {
  2040. width: 1,
  2041. color: '#E2E2E2'
  2042. }
  2043. }
  2044. },
  2045. yAxis: {
  2046. data: [],
  2047. axisTick: {
  2048. show: false
  2049. },
  2050. splitLine: {
  2051. lineStyle: {
  2052. width: 1,
  2053. color: '#E2E2E2'
  2054. }
  2055. },
  2056. axisLabel: {
  2057. color: '#858fa6'
  2058. },
  2059. axisLine: {
  2060. lineStyle: {
  2061. width: 0,
  2062. color: '#E2E2E2',
  2063. show: false
  2064. }
  2065. }
  2066. },
  2067. series: [{
  2068. name: '数量',
  2069. type: 'bar',
  2070. data: [119, 102, 126, 118, 107, 100, 104, 80, 140, 100],
  2071. barGap: 0,
  2072. barWidth: '60%'
  2073. }]
  2074. };
  2075. ECharts02.setOption(option02);
  2076. var ECharts03 = echarts.init(document.getElementById('ECharts03'));
  2077. var option03 = {
  2078. color: ['#4956ff', '#2d82ff', '#2dc6ff', '#2fca95', '#f4d040'],
  2079. tooltip: {
  2080. trigger: 'item',
  2081. formatter: '{a} <br/>{b} : {c} ({d}%)'
  2082. },
  2083. series: [{
  2084. name: '2020年度',
  2085. type: 'pie',
  2086. radius: ['10%', '90%'],
  2087. center: ['50%', '50%'],
  2088. roseType: 'radius',
  2089. label: {
  2090. show: false
  2091. },
  2092. emphasis: {
  2093. label: {
  2094. show: true
  2095. }
  2096. },
  2097. itemStyle: {
  2098. shadowBlur: 10,
  2099. shadowColor: 'rgba(0, 103, 255, 0.2)',
  2100. shadowOffsetX: -5,
  2101. shadowOffsetY: 5,
  2102. },
  2103. data: [{
  2104. value: 10000,
  2105. name: '其他'
  2106. },
  2107. {
  2108. value: 15000,
  2109. name: '漏款'
  2110. },
  2111. {
  2112. value: 20000,
  2113. name: '补贴'
  2114. },
  2115. {
  2116. value: 25000,
  2117. name: '聚餐'
  2118. },
  2119. {
  2120. value: 30000,
  2121. name: '活动'
  2122. },
  2123. {
  2124. value: 35000,
  2125. name: '投资'
  2126. },
  2127. {
  2128. value: 40000,
  2129. name: '工资'
  2130. },
  2131. {
  2132. value: 45,
  2133. name: 'rose8'
  2134. }
  2135. ]
  2136. },
  2137. ]
  2138. };
  2139. ECharts03.setOption(option03);
  2140. var outname = ["南海诸岛", '北京', '天津', '上海', '重庆', '河北', '河南', '云南', '辽宁', '黑龙江', '湖南', '安徽', '山东', '新疆', '江苏', '浙江', '江西', '湖北', '广西', '甘肃', '山西', '内蒙古', '陕西', '吉林', '福建', '贵州', '广东', '青海', '西藏', '四川', '宁夏', '海南', '台湾', '香港', '澳门'];
  2141. var outvalue = [0, 524, 13, 140, 75, 13, 83, 11, 19, 15, 69, 260, 39, 4, 31, 104, 36, 1052, 33, 347, 9, 157, 22, 4, 18, 5, 6398, 41, 0, 484, 404, 22, 3, 5, 225];
  2142. var outdata = [];
  2143. for (var i = 0; i < outname.length; i++) {
  2144. outdata.push({
  2145. name: outname[i],
  2146. value: outvalue[i]
  2147. })
  2148. }
  2149. var option04 = {
  2150. tooltip: {
  2151. show: true,
  2152. formatter: function (params) {
  2153. return '&nbsp;&nbsp;' + params.name + '&nbsp;&nbsp;&nbsp;' + params.value + '人&nbsp;&nbsp;';
  2154. }
  2155. },
  2156. visualMap: {
  2157. type: 'piecewise',
  2158. left: '15',
  2159. bottom: '15',
  2160. itemWidth: 27,
  2161. itemHeight: 15,
  2162. textStyle: {
  2163. color: '#333333',
  2164. fontSize: 14,
  2165. },
  2166. pieces: [{
  2167. min: 500,
  2168. label: '>500',
  2169. }, {
  2170. max: 500,
  2171. min: 200,
  2172. label: '200-500',
  2173. }, {
  2174. max: 200,
  2175. min: 0,
  2176. label: '<200',
  2177. }, {
  2178. value: 0,
  2179. label: '无数据',
  2180. },],
  2181. inRange: {
  2182. color: ['#B2CAE0', '#D2EAFF', '#8AC6FD', '#45A5F8']
  2183. },
  2184. outOfRange: {
  2185. color: ['#999999']
  2186. }
  2187. },
  2188. geo: {
  2189. map: 'china',
  2190. show: true,
  2191. roam: false,
  2192. label: {
  2193. emphasis: {
  2194. show: false
  2195. }
  2196. },
  2197. itemStyle: {
  2198. normal: {
  2199. borderColor: 'rgba(0,63,140,0.2)',
  2200. shadowColor: 'rgba(0,63,140,0.2)',
  2201. shadowOffsetY: 20,
  2202. shadowBlur: 30
  2203. }
  2204. }
  2205. },
  2206. series: [{
  2207. type: 'map',
  2208. map: 'china',
  2209. aspectScale: 0.75,
  2210. //zoom:1.1,
  2211. label: {
  2212. normal: {
  2213. show: false,
  2214. },
  2215. emphasis: {
  2216. show: false,
  2217. }
  2218. },
  2219. itemStyle: {
  2220. normal: {
  2221. areaColor: '#B2CAE0',
  2222. borderColor: '#fff',
  2223. borderWidth: 1,
  2224. },
  2225. emphasis: {
  2226. areaColor: '#FFAE00',
  2227. }
  2228. },
  2229. data: outdata
  2230. }]
  2231. };
  2232. var ECharts04 = echarts.init(document.getElementById('ECharts04'));
  2233. ECharts04.setOption(option04);
  2234. let legendData = ['科目七', '科目六', '科目五', '科目四', '科目三', '科目二', '科目一']
  2235. // 预约数
  2236. let seriesData1 = [434, 231, 112, 140, 256, 341, 97]
  2237. // 已考试数
  2238. let seriesData2 = [200, 150, 100, 40, 210, 82, 62]
  2239. // 计算百分比
  2240. let seriesData3 = []
  2241. let seriesData4 = []
  2242. for (let i in seriesData1) {
  2243. seriesData3.push(Math.round(seriesData2[i] / seriesData1[i] * 10000) / 100)
  2244. seriesData4.push(100)
  2245. }
  2246. var option05 = {
  2247. grid: {
  2248. left: 120,
  2249. top: 0,
  2250. bottom: 0,
  2251. right: 60
  2252. },
  2253. yAxis: [{
  2254. type: 'category',
  2255. data: legendData,
  2256. axisPointer: {
  2257. type: 'line'
  2258. },
  2259. axisLine: {
  2260. show: false
  2261. },
  2262. splitLine: {
  2263. show: false
  2264. },
  2265. axisTick: {
  2266. show: false
  2267. },
  2268. axisLabel: {
  2269. margin: 20,
  2270. textStyle: {
  2271. fontSize: 14,
  2272. },
  2273. formatter: function (value, index) {
  2274. let res = '{grey|' + value + '}{blue|' + seriesData3[index] + '%}';
  2275. return res;
  2276. },
  2277. rich: {
  2278. blue: {
  2279. color: '#6bb6fd',
  2280. width: 60,
  2281. align: 'right',
  2282. },
  2283. grey: {
  2284. color: '#adb1b3'
  2285. }
  2286. }
  2287. },
  2288. }],
  2289. xAxis: [{
  2290. min: 0,
  2291. max: 100,
  2292. axisLabel: {
  2293. show: false
  2294. },
  2295. axisLine: {
  2296. show: false
  2297. },
  2298. splitLine: {
  2299. show: false
  2300. },
  2301. axisTick: {
  2302. show: false
  2303. }
  2304. }],
  2305. series: [{
  2306. type: 'bar',
  2307. data: seriesData3,
  2308. barWidth: '12px',
  2309. z: 100,
  2310. itemStyle: {
  2311. normal: {
  2312. color: '#2c96f8',
  2313. barBorderRadius: [10, 10, 10, 10],
  2314. }
  2315. }
  2316. },
  2317. {
  2318. name: '进度条背景',
  2319. type: 'bar',
  2320. barGap: '-100%',
  2321. data: seriesData4,
  2322. barWidth: 12,
  2323. itemStyle: {
  2324. barBorderRadius: [10, 10, 10, 10],
  2325. color: '#f7b534'
  2326. },
  2327. z: 90,
  2328. yAxisIndex: 0,
  2329. xAxisIndex: 0,
  2330. label: {
  2331. normal: {
  2332. show: true,
  2333. position: 'right',
  2334. distance: 10,
  2335. color: '#6bb6fd',
  2336. formatter: function (params) {
  2337. let res = '{blue|' + seriesData2[params.dataIndex] + '/}{orange|' + seriesData1[params.dataIndex] + '}';
  2338. return res;
  2339. },
  2340. rich: {
  2341. blue: {
  2342. color: '#6bb6fd'
  2343. },
  2344. orange: {
  2345. color: '#f7b534'
  2346. }
  2347. }
  2348. }
  2349. }
  2350. }
  2351. ]
  2352. };
  2353. var ECharts05 = echarts.init(document.getElementById('ECharts05'));
  2354. ECharts05.setOption(option05);
  2355. var option06 = {
  2356. backgroundColor: "#fff",
  2357. legend: {
  2358. show: true
  2359. },
  2360. grid: {
  2361. left: '30',
  2362. right: '0',
  2363. top: '64',
  2364. bottom: '30'
  2365. },
  2366. tooltip: {
  2367. trigger: 'axis',
  2368. axisPointer: {
  2369. type: "item",
  2370. crossStyle: {
  2371. color: '#999'
  2372. }
  2373. },
  2374. confine: true,
  2375. formatter: function (params) {
  2376. var html = params[0].name + '月';
  2377. for (var i = 0; i < params.length; i++) {
  2378. html += '<br />' + params[i].marker + params[i].seriesName + '年:' + params[i].value;
  2379. }
  2380. return html;
  2381. }
  2382. },
  2383. xAxis: [{
  2384. type: 'category',
  2385. name: '月',
  2386. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  2387. axisPointer: {
  2388. type: 'shadow'
  2389. },
  2390. axisLine: {
  2391. show: true,
  2392. lineStyle: {
  2393. color: '#eee'
  2394. }
  2395. },
  2396. axisLabel: {
  2397. show: true,
  2398. color: '#333'
  2399. },
  2400. axisTick: {
  2401. show: false
  2402. }
  2403. }],
  2404. yAxis: [{
  2405. type: 'value',
  2406. splitNumber: 5,
  2407. splitLine: {
  2408. show: true,
  2409. lineStyle: {
  2410. color: '#eee'
  2411. }
  2412. },
  2413. axisLine: {
  2414. show: false
  2415. },
  2416. axisTick: {
  2417. show: false
  2418. }
  2419. }],
  2420. series: [
  2421. {
  2422. name: '2018',
  2423. type: 'bar',
  2424. symbol: 'bar',
  2425. itemStyle: {
  2426. normal: {
  2427. color: 'rgba(49,150,250,0.4)'
  2428. }
  2429. },
  2430. data: [3, 34, 47, 10, 20, 53, 65, 77, 40, 20, 73, 45]
  2431. },
  2432. {
  2433. name: '2019',
  2434. type: 'bar',
  2435. symbol: 'circle',
  2436. itemStyle: {
  2437. normal: {
  2438. color: 'rgba(49,150,250,1)'
  2439. }
  2440. },
  2441. data: [3, 34, 47, 10, 20, 53, 65, 77, 40, 20, 73, 45]
  2442. }
  2443. ]
  2444. };
  2445. var ECharts06 = echarts.init(document.getElementById('ECharts06'));
  2446. ECharts06.setOption(option06);
  2447. var option07 = {
  2448. color: ['#327bfa', '#35b1fa', '#62d56b', '#ffb84f', '#ff7a32'],
  2449. tooltip: {
  2450. trigger: 'item',
  2451. formatter: "{a}:{b} <br/>占比:{d}%<br/>点击查看详情->"
  2452. },
  2453. legend: {
  2454. show: true,
  2455. orient: 'horizontal',
  2456. x: 'center',
  2457. y: 'bottom',
  2458. data: ['优秀', '安全', '良好', '警示', '严重警示'],
  2459. },
  2460. grid: {
  2461. top: 'bottom',
  2462. left: '90',
  2463. width: '90%',
  2464. height: '80%',
  2465. },
  2466. series: [
  2467. {
  2468. name: '健康度22等级',
  2469. type: 'pie',
  2470. selectedMode: 'single',
  2471. radius: ['30%', '55%'],
  2472. label: {
  2473. normal: {
  2474. formatter: '{b|{b}}',
  2475. rich: {
  2476. b: {
  2477. fontSize: 16,
  2478. lineHeight: 30
  2479. }
  2480. }
  2481. }
  2482. },
  2483. data: [
  2484. { value: 310, name: '优秀' },
  2485. { value: 310, name: '安全' },
  2486. { value: 251, name: '良好' },
  2487. { value: 147, name: '警示' },
  2488. { value: 102, name: '严重警示' }
  2489. ]
  2490. }
  2491. ]
  2492. };
  2493. var ECharts07 = echarts.init(document.getElementById('ECharts07'));
  2494. ECharts07.setOption(option07);
  2495. // 宽度改变后350ms 进行刷新图表的大小
  2496. // 为了解决点击侧边伸缩造成卡顿情况
  2497. let time = performance.now();
  2498. const timeout = 350;
  2499. window.addEventListener('resize', function () {
  2500. const now = performance.now()
  2501. if (now - time > timeout) {
  2502. setTimeout(() => {
  2503. ECharts01.resize();
  2504. ECharts02.resize();
  2505. ECharts03.resize();
  2506. ECharts04.resize();
  2507. ECharts05.resize();
  2508. ECharts06.resize();
  2509. ECharts07.resize();
  2510. }, timeout);
  2511. }
  2512. time = now;
  2513. });
  2514. </script>
  2515. </body>
  2516. </html>