index-安宁.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122
  1. <template>
  2. <view>
  3. <!-- 首页风格切换-1-切换风格 -->
  4. <view class="top_bg_color">
  5. <!-- 固定安全色 -->
  6. <view class="bg_img" :style="{backgroundColor:top_bg_color}"></view>
  7. <view class="status_bar"></view>
  8. <!-- 查询 -->
  9. <view class="search" @click="go_search()">
  10. <view class="left">
  11. <view class="icon">
  12. <image src="./icon/search.png" mode=""></image>
  13. </view>
  14. <view class="text">查询</view>
  15. </view>
  16. <view @click.stop="scan()">
  17. <uni-icons type="scan" color="#fff"></uni-icons>
  18. </view>
  19. </view>
  20. <!-- 日期天气 -->
  21. <view class="date">
  22. <view class="text">{{text_time}}</view>
  23. <view class="icon" @click="go_tianqi()">
  24. <image src="./icon/weather.png" mode=""></image>
  25. </view>
  26. </view>
  27. <!-- 值班 -->
  28. <view class="notice" @click="go_duty_information()">
  29. {{text}}
  30. </view>
  31. <!-- 开屏通告 -->
  32. <openingNotice></openingNotice>
  33. <view v-for="(item,index) in common" :key="index">
  34. <view class="fixed_system" v-if="item.type_name == '七大板块' && item.index == index">
  35. <view class="top_bg">
  36. <image src="./icon/top_bg.png" mode=""></image>
  37. </view>
  38. <view class="line">
  39. <view class="item" v-for="(item_2,index_2) in item.data" :key="index_2" v-if="index_2 < 3"
  40. @click="go_page(item_2)">
  41. <view class="icon">
  42. <image :src="item_2.thumb" mode=""></image>
  43. </view>
  44. <view class="text">{{item_2.title}}</view>
  45. </view>
  46. </view>
  47. <view class="line">
  48. <view class="item" v-for="(item_2,index_2) in item.data" :key="index_2" v-if="index_2 > 2"
  49. @click="go_page(item_2)">
  50. <view class="icon">
  51. <image :src="item_2.thumb" mode=""></image>
  52. </view>
  53. <view class="text">{{item_2.title}}</view>
  54. </view>
  55. </view>
  56. </view>
  57. </view>
  58. </view>
  59. <view v-for="(item,index) in common" :key="index">
  60. <view v-if="item.type_name == '待办事项' && item.index == index">
  61. <view class="todo">
  62. <view class="box">
  63. <view class="name">待办事项</view>
  64. <view class="text">有 <text style="color: #FF0000;">5</text> 项 <uni-icons type="right" size="14"></uni-icons></view>
  65. </view>
  66. <view style="width: 4rpx; height: 45rpx; background-color: #E6E6E6;"></view>
  67. <view class="box">
  68. <view class="name">实时预警</view>
  69. <view class="text">有 <text style="color: #FF0000;">23</text> 条 <uni-icons type="right" size="14"></uni-icons></view>
  70. </view>
  71. </view>
  72. </view>
  73. <view v-if="item.type_name == '实操应用' && item.index == index">
  74. <view class="nav">
  75. <view class="section" v-for="(item_2,index_2) in item.data" :key="index_2">
  76. <view class="title">
  77. <view class="icon">
  78. <image src="./icon/nav_1.png" mode=""></image>
  79. </view>
  80. <view class="text">{{item_2.title}}</view>
  81. </view>
  82. <view class="list">
  83. <view class="item" v-if="index_3 < 6" v-for="(item_3,index_3) in item_2.children" :key="index_3" @click="go_page(item_3)">
  84. <view class="text">{{item_3.title}}</view>
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. <view v-if="item.type_name == '数据平台' && item.index == index">
  91. <view class="nav">
  92. <view class="section" v-for="(item_2,index_2) in item.data" :key="index_2">
  93. <view class="title">
  94. <view class="icon">
  95. <image src="./icon/nav_2.png" mode=""></image>
  96. </view>
  97. <view class="text">{{item_2.title}}</view>
  98. </view>
  99. <view class="list">
  100. <view class="item" v-if="index_3 < 6" v-for="(item_3,index_3) in item_2.children" :key="index_3" @click="go_page(item_3)">
  101. <view class="text">{{item_3.title}}</view>
  102. </view>
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. <view v-if="item.type_name == '学习资料' && item.index == index">
  108. <view class="nav">
  109. <view class="section" v-for="(item_2,index_2) in item.data" :key="index_2">
  110. <view class="title">
  111. <view class="icon">
  112. <image src="./icon/nav_3.png" mode=""></image>
  113. </view>
  114. <view class="text">{{item_2.title}}</view>
  115. </view>
  116. <view class="list">
  117. <view class="item" v-if="index_3 < 6" v-for="(item_3,index_3) in item_2.children" :key="index_3" @click="go_page(item_3)">
  118. <view class="text">{{item_3.title}}</view>
  119. </view>
  120. </view>
  121. </view>
  122. </view>
  123. </view>
  124. <view class="news" v-if="item.type_name == '动态信息' && item.index == index">
  125. <view class="title_box">
  126. <view class="left">
  127. <view class="title">
  128. <view class="icon"></view>
  129. <view class="text">动态信息</view>
  130. </view>
  131. </view>
  132. <view class="right" @click="go_more()">
  133. <view class="detail">
  134. 查看全部 <uni-icons type="right" size="12" color="#B5B5B5"></uni-icons>
  135. </view>
  136. </view>
  137. </view>
  138. <t-i-banner style="padding-top: 60rpx;" :banner="banners" :mine_code="mine_code"
  139. @change_top_bg_color_img="change_top_bg_color_img">
  140. </t-i-banner>
  141. <view class="list">
  142. <view class="item" v-for="(item,index) in newsList" :key="index" @click="go_detail(item.id)">
  143. <view class="icon"></view>
  144. <view class="inner">
  145. <view class="new_title">{{item.title}}</view>
  146. <view class="tip">
  147. <view class="time">{{item.created_at}}</view>
  148. <view class="detail">
  149. 详情<image src="./icon/new_detail.png" mode=""></image>
  150. </view>
  151. </view>
  152. </view>
  153. </view>
  154. </view>
  155. </view>
  156. </view>
  157. <!-- 宁煤信息平台登录框 -->
  158. <uni-popup ref="popup" type="center" @maskClick="maskClick">
  159. <view class="login_box">
  160. <view class="input_box">
  161. <view class="label">工号:</view>
  162. <view class="box">
  163. {{staff_num}}
  164. </view>
  165. </view>
  166. <view class="input_box">
  167. <view class="label">登录密码(宁煤信息平台):</view>
  168. <view class="box">
  169. <input type="password" v-model="password" />
  170. </view>
  171. </view>
  172. <view class="btn" @click="login()">确认</view>
  173. </view>
  174. </uni-popup>
  175. </view>
  176. </template>
  177. <script>
  178. import {
  179. set_base_url
  180. } from '@/common/set_base_url.js'
  181. import {
  182. goToLink
  183. } from '@/common/common.js'
  184. import time from "@/common/time.js"
  185. import {
  186. getCurrentDate,
  187. diffTime
  188. } from '@/common/time.js'
  189. // 版本控制
  190. // import upApp from "@/uni_modules/uni-upgrade-center-app/utils/check-update"
  191. export default {
  192. data() {
  193. return {
  194. // 根_mine_code
  195. app_mine_code: "",
  196. // 当前煤矿编码
  197. mine_code: "",
  198. // 首页接口的基础请求路径 默认为当前矿编码的基础路径
  199. base_url: " ",
  200. // 轮播图
  201. banners: [],
  202. // 新闻列表
  203. newsList: "",
  204. text_time: "",
  205. // 值班公告
  206. text: "",
  207. // 背景虚化图片
  208. top_bg_color_img: "",
  209. // 背景安全色
  210. top_bg_color: "#7372c2",
  211. top_bg_color_list: ['#d62b2b', '#00a2e8', '#b08654', "#7372c2"],
  212. // 标题栏背景色
  213. navbar_bg_color: "",
  214. common: [],
  215. staff_num: "",
  216. password: "",
  217. url: "",
  218. app_id: "",
  219. gps: "",
  220. deviceID: "",
  221. phoneType: ""
  222. }
  223. },
  224. onPullDownRefresh() {
  225. uni.reLaunch({
  226. url: "./index"
  227. })
  228. setTimeout(function() {
  229. uni.stopPullDownRefresh();
  230. }, 1000);
  231. },
  232. onLoad() {
  233. // 初始化当前煤矿编码
  234. this.mine_code = uni.getStorageSync('mine_code')
  235. // 根据矿编码切换首页接口不同的请求基础路径
  236. this.base_url = set_base_url(this.mine_code)
  237. this.staff_num = uni.getStorageSync('user').staff_num
  238. this.text_time = getCurrentDate()
  239. // #ifdef H5
  240. if (this.mine_code == 'ningmeijituan') {
  241. if (window.location.href.indexOf('token') != -1) {
  242. this.$api.oauth_getNoPasswordToken({
  243. token: window.location.href.split('token=')[1].split('&')[0],
  244. caller: window.location.href.split('token=')[1].split('&')[1].split('=')[1]
  245. }).then((res) => {
  246. uni.setStorageSync('Authorization', res.data.data.accessToken)
  247. uni.setStorageSync('token_type', res.data.data.token_type)
  248. // 存储用户基本信息
  249. uni.setStorageSync('user', res.data.data.user);
  250. uni.setStorageSync('people_code', res.data.data.user.people_code);
  251. // 存储电话号码
  252. uni.setStorageSync('mobile', res.data.data.user.mobile);
  253. })
  254. } else {
  255. this.check_token()
  256. }
  257. } else {
  258. this.check_token()
  259. }
  260. // #endif
  261. // 检查更新
  262. // upApp()
  263. // #ifdef APP-PLUS
  264. this.check_token()
  265. // #endif
  266. // 获取轮播图
  267. this.get_banner()
  268. // 获取首页新闻列表
  269. this.getNews()
  270. // 值班公告
  271. this.get_notice()
  272. this.get_home_aqyk_newLinks()
  273. },
  274. onPageScroll: function(e) {
  275. if (e.scrollTop > 300) {
  276. this.navbar_bg_color = "#009fe8"
  277. } else {
  278. this.navbar_bg_color = ""
  279. }
  280. },
  281. methods: {
  282. scan() {
  283. // 只允许通过相机扫码
  284. uni.scanCode({
  285. onlyFromCamera: true,
  286. success: (res) => {
  287. console.log('条码类型:' + res.scanType);
  288. console.log('条码内容:' + res.result);
  289. let pageId = ""
  290. function GetQueryString(name) {
  291. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  292. var r = res.result.match(reg);
  293. if (r != null) return unescape(r[2]);
  294. return null;
  295. }
  296. console.log(GetQueryString("pageId"))
  297. if (GetQueryString("pageId")) {
  298. pageId = GetQueryString("pageId")
  299. } else {
  300. pageId = res.result.split('=')[1]
  301. }
  302. uni.navigateTo({
  303. url: "../../index/record/record?pageId=" + pageId + "&mine_code=" + this
  304. .mine_code,
  305. })
  306. }
  307. })
  308. },
  309. maskClick() {
  310. this.password = ""
  311. },
  312. login() {
  313. // #ifdef APP-PLUS
  314. if (this.password == '') {
  315. uni.showToast({
  316. icon: "none",
  317. title: "密码不能为空!"
  318. })
  319. return
  320. }
  321. this.$refs.popup.close()
  322. // 获取gps
  323. uni.getLocation({
  324. type: 'wgs84',
  325. success: (res) => {
  326. console.log('当前位置的经度:' + res.longitude);
  327. console.log('当前位置的纬度:' + res.latitude);
  328. this.gps = res.longitude + ',' + res.latitude
  329. // 获取设备信息
  330. plus.device.getInfo({
  331. success: (e) => {
  332. console.log(JSON.stringify(e.uuid));
  333. console.log(plus.device.model)
  334. this.deviceID = JSON.stringify(e.uuid)
  335. this.phoneType = plus.device.model
  336. uni.request({
  337. method: "POST",
  338. url: "http://mtyyxs.shnxmyjt.com:33300/api/OAuth/Login",
  339. header: {
  340. 'Content-Type': 'application/json;charset=UTF-8',
  341. 'caller': 'UnifiedPortal'
  342. },
  343. data: {
  344. phoneType: this.phoneType,
  345. password: this.password,
  346. gps: this.gps,
  347. userID: this.staff_num,
  348. resolvingPower: "851*393",
  349. deviceID: this.deviceID,
  350. ip: "112312313"
  351. },
  352. success: (res) => {
  353. console.log(this.password)
  354. console.log(res)
  355. if (res.data.code = '11002') {
  356. uni.showToast({
  357. icon: "none",
  358. title: res.data.msg
  359. })
  360. if (res.data.data.length > 20) {
  361. uni.setStorageSync('ningmei_token', res
  362. .data.data)
  363. uni.setStorageSync(
  364. 'ningmei_token_time',
  365. new Date().format("yyyy-MM-dd")
  366. )
  367. uni.navigateTo({
  368. url: "../../index/ningMeiXinXiPingTai/ningMeiXinXiPingTai",
  369. success: (res) => {
  370. // 通过eventChannel向被打开页面传送数据
  371. res.eventChannel
  372. .emit(
  373. 'acceptDataFromOpenerPage', {
  374. data: this
  375. .url
  376. })
  377. }
  378. })
  379. }
  380. }
  381. }
  382. })
  383. }
  384. });
  385. }
  386. })
  387. // #endif
  388. },
  389. // 单点登录及token过期验证
  390. check_token() {
  391. // token过期验证
  392. this.$api.worksheet_classify_list({
  393. }).then((res) => {
  394. if (res.data.code == 401) {
  395. uni.removeStorageSync('ningmei_token');
  396. uni.removeStorageSync('Authorization');
  397. const user = uni.getStorageSync('login_user')
  398. if (user) {
  399. this.$api.login({
  400. username: user.username,
  401. password: user.password
  402. }).then((res) => {
  403. if (res.data.code === 0) {
  404. // 保存当前用户的登录 工号和密码
  405. uni.setStorageSync('login_user', user)
  406. uni.setStorageSync('Authorization', res.data.data.access_token)
  407. uni.setStorageSync('token_type', res.data.data.token_type)
  408. // 存储用户基本信息
  409. uni.setStorageSync('user', res.data.data.user);
  410. uni.setStorageSync('people_code', res.data.data.user.people_code);
  411. // 存储电话号码
  412. uni.setStorageSync('mobile', res.data.data.user.mobile);
  413. // 清除信息平台的登录历史token
  414. uni.setStorageSync('ningmei_token', ' ')
  415. // 登录成功跳转首页
  416. uni.switchTab({
  417. url: "../../tabbar/index/index",
  418. success: () => {
  419. //#ifdef H5
  420. window.location.reload();
  421. //#endif
  422. }
  423. })
  424. // #ifdef APP-PLUS
  425. plus.runtime.restart();
  426. // #endif
  427. } else if (res.data.code === 1001) {
  428. uni.showToast({
  429. icon: "none",
  430. title: "用户不存在"
  431. })
  432. } else if (res.data.code === 1002) {
  433. uni.showToast({
  434. icon: "none",
  435. title: "密码错误"
  436. })
  437. } else {
  438. return false
  439. }
  440. }).catch((err) => {
  441. console.log('request fail', err);
  442. uni.showToast({
  443. icon: "none",
  444. title: err
  445. })
  446. })
  447. } else {
  448. uni.showToast({
  449. icon: "none",
  450. title: "登录失效、请重新登录"
  451. })
  452. setTimeout(function() {
  453. uni.redirectTo({
  454. url: "../../my/login/login"
  455. })
  456. }, 1500)
  457. }
  458. } else {
  459. // console.log(res)
  460. }
  461. })
  462. },
  463. // 天气
  464. go_tianqi() {
  465. uni.navigateTo({
  466. url: "../../index/weather/weather"
  467. })
  468. },
  469. go_search() {
  470. uni.navigateTo({
  471. url: "../../index/search/search?mine_code=ningmeijituan"
  472. })
  473. },
  474. get_home_aqyk_newLinks() {
  475. this.$api.home_aqyk_newLinks({
  476. }).then((res) => {
  477. // console.log(res.data)
  478. let data = res.data
  479. data.forEach((item, index) => {
  480. item['index'] = index
  481. })
  482. // console.log(data)
  483. this.common = data
  484. })
  485. },
  486. // 获取轮播图
  487. get_banner() {
  488. uni.request({
  489. url: this.base_url + "/scrollImg/list",
  490. method: "GET",
  491. header:{
  492. 'accesskey': "b364b449a18af327867f7edc3431b541"
  493. },
  494. success: (res) => {
  495. // console.log(res.data.data.data)
  496. this.banners = res.data.data.data
  497. this.top_bg_color_img = this.banners[0].imgURL
  498. }
  499. })
  500. },
  501. // 请求新闻动态
  502. getNews() {
  503. uni.request({
  504. url: this.base_url + "/article/list",
  505. method: "GET",
  506. header:{
  507. 'accesskey': "b364b449a18af327867f7edc3431b541"
  508. },
  509. data: {
  510. pageSize: 4
  511. },
  512. success: (res) => {
  513. this.newsList = res.data.data.data
  514. }
  515. })
  516. },
  517. // 值班公告
  518. get_notice() {
  519. uni.request({
  520. url: this.base_url + "/notice/list",
  521. method: "GET",
  522. header:{
  523. 'accesskey': "b364b449a18af327867f7edc3431b541"
  524. },
  525. success: (res) => {
  526. if (!res.data.data.content) {
  527. this.text = res.data.data.message
  528. } else {
  529. this.text = res.data.data.content.replace(/<br /g, " ").replace(/>/g, " ").replace(
  530. /\//g, " ")
  531. }
  532. }
  533. })
  534. },
  535. // 切换背景图片
  536. change_top_bg_color_img(index) {
  537. if (index > 3) {
  538. index = parseInt(4 * Math.random())
  539. }
  540. this.top_bg_color = this.top_bg_color_list[index]
  541. },
  542. go_page(item) {
  543. if (item.link == null) {
  544. uni.showToast({
  545. icon: "none",
  546. title: "暂未开通"
  547. })
  548. return
  549. }
  550. let link = item.link
  551. if (link.indexOf("nativeApp://") != -1) {
  552. let app_name = link.match(/nativeApp:\/\/(\S*)\?/)[1]
  553. let app_down_link = link.split('?')[1]
  554. // #ifdef APP
  555. if (plus.os.name == 'Android') {
  556. plus.runtime.launchApplication({
  557. pname: app_name
  558. }, (e) => {
  559. console.log('Open system default browser failed: ' + e.message)
  560. uni.showModal({
  561. title: app_name,
  562. content: '未安装此应用、是否下载?',
  563. success: (res) => {
  564. if (res.confirm) {
  565. console.log('用户点击确定');
  566. uni.navigateTo({
  567. url: "../../index/h5/h5?url=" + app_down_link
  568. })
  569. } else if (res.cancel) {
  570. console.log('用户点击取消');
  571. }
  572. }
  573. });
  574. })
  575. }
  576. // #endif
  577. } else if (link.indexOf("http://mtyyxs.shnxmyjt.com") != -1) {
  578. console.log("信息平台")
  579. this.url = item
  580. // 有登录记录
  581. let token = uni.getStorageSync('ningmei_token')
  582. let time = uni.getStorageSync('ningmei_token_time')
  583. // 30天刷新一次
  584. let diffTimeShow = diffTime(time, new Date().format("yyyy-MM-dd")).split(' ')[0];
  585. console.log(diffTimeShow)
  586. if (token.length > 20 && diffTimeShow < 30) {
  587. uni.navigateTo({
  588. url: "../../index/ningMeiXinXiPingTai/ningMeiXinXiPingTai",
  589. success: (res) => {
  590. // 通过eventChannel向被打开页面传送数据
  591. res.eventChannel.emit('acceptDataFromOpenerPage', {
  592. data: this.url
  593. })
  594. }
  595. })
  596. } else {
  597. this.$refs.popup.open()
  598. }
  599. } else {
  600. goToLink(item, this.mine_code)
  601. }
  602. },
  603. // 打开详情页
  604. go_detail(id) {
  605. uni.navigateTo({
  606. url: "../../index/news/news?id=" + id + "&mine_code=ningmeijituan"
  607. })
  608. },
  609. // 打开列表
  610. go_more() {
  611. uni.navigateTo({
  612. url: "../../index/news/news_list/news_list?mine_code=ningmeijituan"
  613. })
  614. },
  615. go_duty_information() {
  616. uni.navigateTo({
  617. url: "../../workbench/duty_information/duty_information"
  618. })
  619. }
  620. }
  621. }
  622. </script>
  623. <style lang="scss">
  624. page {
  625. background-color: #FFFFFF;
  626. }
  627. /deep/ .banner {
  628. background-color: #FFFFFF;
  629. }
  630. .top_bg_color {
  631. position: relative;
  632. width: 750rpx;
  633. overflow: hidden;
  634. .bg_img {
  635. width: 750rpx;
  636. height: 440rpx;
  637. position: absolute;
  638. top: 0;
  639. left: 0;
  640. z-index: 0;
  641. background-position: center;
  642. background-size: 100% 100%;
  643. filter: blur(50px);
  644. transform: scale(2);
  645. opacity: 0.9;
  646. }
  647. }
  648. .search {
  649. position: relative;
  650. z-index: 99;
  651. margin: 0 auto;
  652. margin-top: 30rpx;
  653. width: 700rpx;
  654. height: 64rpx;
  655. box-sizing: border-box;
  656. border: 2rpx solid #FFFFFF;
  657. border-radius: 30rpx;
  658. opacity: 0.5;
  659. padding: 0 30rpx;
  660. display: flex;
  661. justify-content: space-between;
  662. align-items: center;
  663. .left {
  664. display: flex;
  665. align-items: center;
  666. .icon {
  667. margin-right: 10rpx;
  668. image {
  669. width: 35rpx;
  670. height: 27rpx;
  671. }
  672. }
  673. .text {
  674. color: #DDF4FF;
  675. font-size: 27rpx;
  676. }
  677. }
  678. }
  679. .date {
  680. position: relative;
  681. z-index: 99;
  682. margin: 20rpx auto;
  683. width: 700rpx;
  684. display: flex;
  685. align-items: center;
  686. .text {
  687. font-size: 30rpx;
  688. color: #FFFFFF;
  689. }
  690. .icon {
  691. margin-left: 60rpx;
  692. image {
  693. width: 38rpx;
  694. height: 29rpx;
  695. }
  696. }
  697. }
  698. .notice {
  699. position: relative;
  700. z-index: 99;
  701. box-sizing: border-box;
  702. padding: 0rpx 25rpx;
  703. color: #FFFFFF;
  704. font-size: 30rpx;
  705. line-height: 1.8;
  706. }
  707. .fixed_system {
  708. position: relative;
  709. z-index: 10;
  710. box-sizing: border-box;
  711. padding: 25rpx 0;
  712. width: 750rpx;
  713. height: 436rpx;
  714. background-image: url(./icon/section.png);
  715. background-size: 100% 100%;
  716. background-repeat: no-repeat;
  717. .top_bg {
  718. position: absolute;
  719. top: -220rpx;
  720. right: 0rpx;
  721. image {
  722. width: 500rpx;
  723. height: 340rpx;
  724. }
  725. }
  726. .line {
  727. box-sizing: border-box;
  728. padding: 25rpx;
  729. display: flex;
  730. justify-content: center;
  731. .item {
  732. margin-right: 54rpx;
  733. .icon {
  734. image {
  735. width: 109rpx;
  736. height: 109rpx;
  737. display: block;
  738. }
  739. }
  740. .text {
  741. font-size: 28rpx;
  742. color: #171717;
  743. }
  744. }
  745. .item:nth-child(3){
  746. margin-right: 0;
  747. }
  748. }
  749. .line:last-child {
  750. .item:nth-child(3){
  751. margin-right: 54rpx;
  752. }
  753. .item:nth-child(4) {
  754. margin-right: 0;
  755. }
  756. }
  757. }
  758. .todo {
  759. margin: 0 auto;
  760. width: 700rpx;
  761. margin-top: 20rpx;
  762. border-radius: 20rpx;
  763. box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0,0,0,.1);
  764. height: 114rpx;
  765. box-sizing: border-box;
  766. padding: 25rpx;
  767. display: flex;
  768. justify-content: space-between;
  769. align-items: center;
  770. .box{
  771. width: 350rpx;
  772. display: flex;
  773. justify-content: space-between;
  774. align-items: center;
  775. color: #6A6A6A;
  776. box-sizing: border-box;
  777. padding: 0 15rpx;
  778. .name{
  779. font-size: 32rpx;
  780. font-weight: 700;
  781. }
  782. .text{
  783. display: flex;
  784. align-items: center;
  785. font-size: 24rpx;
  786. }
  787. }
  788. }
  789. .nav {
  790. margin: 30rpx auto;
  791. width: 700rpx;
  792. box-sizing: border-box;
  793. padding: 30rpx 10rpx;
  794. border-radius: 20rpx;
  795. box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0,0,0,.1);
  796. .section {
  797. display: flex;
  798. align-items: center;
  799. justify-content: space-between;
  800. .title {
  801. width: 150rpx;
  802. text-align: center;
  803. .icon {
  804. text-align: center;
  805. image{
  806. width: 70rpx;
  807. height: 70rpx;
  808. }
  809. }
  810. .text {
  811. margin-left: 10rpx;
  812. color: #6A6A6A;
  813. font-size: 28rpx;
  814. font-weight: 700;
  815. }
  816. }
  817. .list {
  818. width: 520rpx;
  819. overflow: hidden;
  820. .item {
  821. border-right: 2rpx solid #E6E6E6;
  822. float: left;
  823. margin: 15rpx 0;
  824. margin-right: 22rpx;
  825. width: 150rpx;
  826. text-align: center;
  827. .icon {
  828. image {
  829. width: 73rpx;
  830. height: 73rpx;
  831. }
  832. }
  833. .text {
  834. color: #171717;
  835. font-size: 26rpx;
  836. white-space: nowrap;
  837. overflow: hidden;
  838. text-overflow: ellipsis;
  839. }
  840. }
  841. .item:nth-child(3n) {
  842. margin-right: 0;
  843. border-right: none;
  844. }
  845. .item:last-child {
  846. margin-right: 0;
  847. border-right: none;
  848. }
  849. }
  850. }
  851. }
  852. .news {
  853. .title_box {
  854. background-color: #FFFFFF;
  855. box-sizing: border-box;
  856. padding: 25rpx;
  857. display: flex;
  858. justify-content: space-between;
  859. align-items: center;
  860. .left {
  861. .title {
  862. display: flex;
  863. align-items: center;
  864. .icon {
  865. width: 9rpx;
  866. height: 34rpx;
  867. background-color: #04A0E8;
  868. border-radius: 5rpx;
  869. }
  870. .text {
  871. margin-left: 10rpx;
  872. color: #6A6A6A;
  873. font-size: 33rpx;
  874. font-weight: 700;
  875. }
  876. }
  877. }
  878. .right {
  879. display: flex;
  880. align-items: baseline;
  881. .tip {
  882. font-size: 25rpx;
  883. color: #6A6A6A;
  884. }
  885. .detail {
  886. margin-left: 24rpx;
  887. font-size: 25rpx;
  888. color: #B5B5B5;
  889. }
  890. }
  891. }
  892. .list {
  893. box-sizing: border-box;
  894. padding: 25rpx;
  895. background-color: #FFFFFF;
  896. .item {
  897. margin-bottom: 20rpx;
  898. display: flex;
  899. justify-content: space-between;
  900. border-bottom: 1rpx solid #F5F6F7;
  901. .icon {
  902. position: relative;
  903. top: 16rpx;
  904. width: 8rpx;
  905. height: 8rpx;
  906. background: #999999;
  907. border-radius: 50%;
  908. }
  909. .inner {
  910. width: 680rpx;
  911. .new_title {
  912. color: #171717;
  913. font-size: 29rpx;
  914. line-height: 44rpx;
  915. }
  916. .tip {
  917. margin: 20rpx 0;
  918. display: flex;
  919. justify-content: space-between;
  920. .time {
  921. font-size: 26rpx;
  922. color: #999999;
  923. }
  924. .detail {
  925. color: #FD6B5C;
  926. font-size: 23rpx;
  927. image {
  928. margin-left: 8rpx;
  929. width: 19rpx;
  930. height: 16rpx;
  931. }
  932. }
  933. }
  934. }
  935. }
  936. .item:last-child {
  937. border: none;
  938. }
  939. }
  940. }
  941. .login_box {
  942. width: 500rpx;
  943. padding: 30rpx 50rpx;
  944. border-radius: 20rpx;
  945. margin: 0 auto;
  946. background-color: #FFFFFF;
  947. .input_box {
  948. margin-bottom: 30rpx;
  949. .label {
  950. color: #6C6F74;
  951. margin-bottom: 20rpx;
  952. }
  953. .box {
  954. background: #FFFFFF;
  955. border-radius: 8rpx;
  956. border: 2rpx solid #E9EBF2;
  957. box-sizing: border-box;
  958. padding: 20rpx 25rpx;
  959. }
  960. }
  961. .btn {
  962. width: 500rpx;
  963. margin: 0 auto;
  964. border-radius: 8rpx;
  965. background-color: #009FE8;
  966. line-height: 90rpx;
  967. color: #FFFFFF;
  968. text-align: center;
  969. }
  970. }
  971. </style>