l1todolist.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  1. <template>
  2. <div>
  3. <div class="todo_top">
  4. <div class="todo_selection" v-if="todotype==0">
  5. <div class='todo_selection_check'>任务</div>
  6. <div style="margin-left:30px">审批</div>
  7. <div class="todo_top_cnt"></div>
  8. </div>
  9. <div class="todo_selection" v-if="todotype==1">
  10. <div>任务</div>
  11. <div class='todo_selection_check' style="margin-left:30px">审批</div>
  12. </div>
  13. </div>
  14. <!-- 日历 -->
  15. <div style="padding:0 0 60px 0 ">
  16. <div class="todo_img_wap" v-if="todotype==0">
  17. <div style="flex:0 0 100%;margin: 0 auto;">
  18. <img src="../assets/task_date_2.jpg" class="todo_img" v-if="datetype==0"></img>
  19. <img src="../assets/task_date_1.jpg" class="todo_img" v-if="datetype==1"></img>
  20. </div>
  21. </div>
  22. <!-- 任务页 -->
  23. <div v-if="todotype==0">
  24. <!-- 选择我的任务或我安排的任务 -->
  25. <div class="todo_mid_selection">
  26. <div class="todo_mid_selection_check">我的任务</div>
  27. <div>我安排的任务</div>
  28. </div>
  29. <!-- 任务列表 -->
  30. <div style="display:flex;align-items: center;margin-top:10px">
  31. <div class="todo_title">8月6日(今天)</div>
  32. <div style="font-size:14px;position:absolute;right:70px;color:#666">只显示待办</div>
  33. <div style="margin-left:10px;font-size:40px;position:absolute;right:20px;">
  34. <svg class="icon" aria-hidden="true">
  35. <use xlink:href="#icon-uni_icon_kaiguan_guan"></use>
  36. </svg>
  37. </div>
  38. </div>
  39. <div class="todo_list">
  40. <div class="arrow_box ">
  41. <div class="task_date_inner">8/6 16:00-18:00</div>
  42. <div class="task_conner tip_red">待办</div>
  43. <div class="task_dscrp">
  44. <div>跟设计公司沟通,定好最新一季宣传画册的设计。</div>
  45. </div>
  46. <div class="task_flex">
  47. <div class="task_tip">安排人:张小强</div>
  48. <div class="task_tip">临时任务</div>
  49. </div>
  50. </div>
  51. <div class="arrow_box ">
  52. <div class="task_date_inner">8/6 09:00-12:00</div>
  53. <div class="task_conner tip_blue">待验收</div>
  54. <div class="task_dscrp">
  55. <div>拿川建国有限公司的合同给老板签字然后传真过去给客户。</div>
  56. </div>
  57. <div class="task_flex">
  58. <div class="task_tip">安排人:张小强</div>
  59. <div class="task_tip">临时任务</div>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="liubai_dt"></div>
  64. <div class="todo_title">超期</div>
  65. <div class="todo_list">
  66. <div class="arrow_box kindred">
  67. <div class="task_date_inner">7/25 16:00-18:00</div>
  68. <div class="task_conner_sec tip_red">超期</div>
  69. <div class="task_conner tip_red">待办</div>
  70. <div class="task_dscrp">
  71. <div>拿川建国有限公司的合同给老板签字然后传真过去给客户。</div>
  72. </div>
  73. <div class="task_flex">
  74. <div class="task_tip">安排人:张小强</div>
  75. <div class="task_tip">临时任务</div>
  76. </div>
  77. </div>
  78. <div class="arrow_box kindred">
  79. <div class="task_date_inner">7/25 16:00-18:00</div>
  80. <div class="task_conner_sec tip_red">超期</div>
  81. <div class="task_conner tip_red">待办</div>
  82. <div class="task_dscrp">
  83. <div>拿川建国有限公司的合同给老板签字然后传真过去给客户。</div>
  84. </div>
  85. <div class="task_flex">
  86. <div class="task_tip">安排人:张小强</div>
  87. <div class="task_tip">临时任务</div>
  88. </div>
  89. </div>
  90. </div>
  91. <div class="liubai_dt"></div>
  92. <div class="todo_title">验收</div>
  93. <div class="todo_list">
  94. <div class="arrow_box kindgreen">
  95. <div class="task_date_inner">7/25 15:32</div>
  96. <div class="task_conner_sec">有图片</div>
  97. <div class="task_conner tip_red">待验收</div>
  98. <div class="task_dscrp">
  99. <div>木工车间设备定期保养</div>
  100. </div>
  101. <div class="task_flex">
  102. <div class="task_tip">完成人:王大民</div>
  103. <div class="task_tip">任务验收</div>
  104. </div>
  105. </div>
  106. <div class="arrow_box kindgreen">
  107. <div class="task_date_inner">7/25 16:00</div>
  108. <div class="task_conner_sec">有图片</div>
  109. <div class="task_conner tip_red">待验收</div>
  110. <div class="task_dscrp">
  111. <div>按6S标准检查车间清洁是否达标。</div>
  112. </div>
  113. <div class="task_flex">
  114. <div class="task_tip">完成人:王大民</div>
  115. <div class="task_tip">任务验收</div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <!-- 公文页 -->
  121. <div v-if="todotype==1">
  122. <!-- 选择待我审批或我发起的公文 -->
  123. <div class="todo_mid_selection">
  124. <div class="todo_mid_selection_check">待我审批</div>
  125. <div>我发起的公文</div>
  126. </div>
  127. <!-- 公文列表 -->
  128. <div style="display:flex;align-items: center;margin-top:10px">
  129. <div class="todo_title">8月6日(今天)</div>
  130. <!-- <div style="font-size:14px;position:absolute;right:70px;color:#666">只显示待审批</div>
  131. <div style="margin-left:10px;font-size:40px;position:absolute;right:20px;">
  132. <svg class="icon" aria-hidden="true">
  133. <use xlink:href="#icon-uni_icon_kaiguan_guan"></use>
  134. </svg>
  135. </div> -->
  136. </div>
  137. <div class="todo_list">
  138. <div class="arrow_box ">
  139. <div class="task_date_inner">8/6 16:24</div>
  140. <div class="task_conner tip_red">待审批</div>
  141. <div class="task_conner_sec tip_red">催办</div>
  142. <div class="task_dscrp">
  143. <div>年假申请,2019年9月1日至2019年9月7日共7天,望批准。</div>
  144. </div>
  145. <div class="task_flex">
  146. <div class="task_tip">发起人:黎小娟</div>
  147. <div class="task_tip">公文审批</div>
  148. </div>
  149. </div>
  150. <div class="arrow_box ">
  151. <div class="task_date_inner">8/6 09:00-12:00</div>
  152. <div class="task_conner tip_blue">已审批</div>
  153. <div class="task_dscrp">
  154. <div>销售订单审核。SG190725003,美利坚不合群有限公司</div>
  155. </div>
  156. <div class="task_flex">
  157. <div class="task_tip">发起人:张小强</div>
  158. <div class="task_tip">单据审批</div>
  159. </div>
  160. </div>
  161. </div>
  162. <div class="liubai_dt"></div>
  163. <div class="todo_title">待审批</div>
  164. <div class="todo_list">
  165. <div class="arrow_box kindred">
  166. <div class="task_date_inner">7/25 16:11</div>
  167. <div class="task_conner tip_red">待审批</div>
  168. <div class="task_dscrp">
  169. <div>明天(7月26日)请假一天。</div>
  170. </div>
  171. <div class="task_flex">
  172. <div class="task_tip">发起人:张小强</div>
  173. <div class="task_tip">公文审批</div>
  174. </div>
  175. </div>
  176. <div class="arrow_box kindred">
  177. <div class="task_date_inner">7/25 09:15</div>
  178. <div class="task_conner tip_red">待审批</div>
  179. <div class="task_dscrp">
  180. <div>明天(7月26日)请假一天。</div>
  181. </div>
  182. <div class="task_flex">
  183. <div class="task_tip">发起人:王小千</div>
  184. <div class="task_tip">公文审批</div>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. </div>
  190. <!-- 悬浮的新建任务按钮 -->
  191. <div class="todo_add">
  192. <svg class="icon" aria-hidden="true">
  193. <use xlink:href="#icon-shuliangjia1"></use>
  194. </svg>
  195. </div>
  196. <!-- 底部按钮 -->
  197. <div class="todolist-tab">
  198. <div class="todolist-tab-btn">
  199. <div class="todolist-tab-icon">
  200. <svg class="icon" aria-hidden="true">
  201. <use xlink:href="#icon-home"></use>
  202. </svg>
  203. </div>
  204. 首页
  205. </div>
  206. <div class="todolist-tab-btn todolist-tab-btn-on">
  207. <div class="todolist-tab-icon">
  208. <svg class="icon" aria-hidden="true">
  209. <use xlink:href="#icon-format-list-bulleted"></use>
  210. </svg>
  211. </div>
  212. <div class="todolist-tab-count">9</div>
  213. 待办
  214. </div>
  215. <div class="todolist-tab-btn">
  216. <div class="todolist-tab-icon">
  217. <svg class="icon" aria-hidden="true">
  218. <use xlink:href="#icon-google-drive"></use>
  219. </svg>
  220. </div>
  221. 功能
  222. </div>
  223. <div class="todolist-tab-btn">
  224. <div class="todolist-tab-icon">
  225. <svg class="icon" aria-hidden="true">
  226. <use xlink:href="#icon-email-outline"></use>
  227. </svg>
  228. </div>
  229. <div class="todolist-tab-count">5</div>
  230. 消息
  231. </div>
  232. <div class="todolist-tab-btn">
  233. <div class="todolist-tab-icon">
  234. <svg class="icon" aria-hidden="true">
  235. <use xlink:href="#icon-account"></use>
  236. </svg>
  237. </div>
  238. 我的
  239. </div>
  240. </div>
  241. </div>
  242. </template>
  243. <script>
  244. import TaskList from "./components/tasklist";
  245. export default {
  246. name: 'todolist',
  247. components: {
  248. TaskList
  249. },
  250. data() {
  251. return {
  252. datetype: 0, //0-完整日历 1-只显示本周的日历
  253. todotype:0,//0-任务 1-公文
  254. }
  255. }
  256. }
  257. </script>
  258. <style>
  259. body {
  260. margin: 0;
  261. padding: 0;
  262. background-color: #fff;
  263. font-family: "微软雅黑";
  264. }
  265. .todo_img_wap {
  266. display: flex;
  267. /* margin-top: 20px; */
  268. }
  269. .todo_img {
  270. width: 100%;
  271. }
  272. .todo_top_cnt {
  273. position: absolute;
  274. left: 63%;
  275. height: 2px;
  276. width: 2px;
  277. font-weight: bold;
  278. color: #fff;
  279. border-radius: 50%;
  280. padding: 3px;
  281. text-align: center;
  282. background-color: #fc4f4f
  283. }
  284. .todo_add {
  285. position: fixed;
  286. right: 20px;
  287. bottom: 60px;
  288. background-color: #ccc;
  289. height: 60px;
  290. width: 60px;
  291. border-radius: 100%;
  292. opacity: 0.5;
  293. line-height: 60px;
  294. text-align: center;
  295. font-size: 30px;
  296. z-index: 9990;
  297. }
  298. .todo_list {
  299. padding: 10px 10px 0 10px;
  300. }
  301. .todo_top {
  302. width: 100%;
  303. border-bottom: 1px solid #f5f5f5;
  304. }
  305. .liubai_dt {
  306. width: 100%;
  307. height: 10px;
  308. background-color: #f6f6f6;
  309. margin: 10px 0;
  310. }
  311. .todo_title {
  312. font-size: 15px;
  313. font-weight: bold;
  314. padding: 0 0 0 15px;
  315. }
  316. .todo_selection {
  317. display: flex;
  318. width: 90px;
  319. margin: 10px auto 5px auto;
  320. font-size: 15px;
  321. font-weight: bold;
  322. }
  323. .todo_mid_selection {
  324. display: flex;
  325. color: #888;
  326. margin:10px 0;
  327. box-shadow: 0 2px 3px rgba(0, 0, 0, 0.102);
  328. }
  329. .todo_mid_selection div {
  330. margin: 0 0 0 30px;
  331. padding: 0 0 5px 0;
  332. font-size: 14px;
  333. }
  334. .todo_selection div {
  335. padding-bottom: 3px;
  336. }
  337. .todo_selection_check {
  338. color: #fd7526;
  339. border-bottom: 2px solid #fd7526;
  340. }
  341. .todo_mid_selection_check {
  342. color: #46a4da;
  343. border-bottom: 2px solid #46a4da;
  344. }
  345. /* 任务列表相关css */
  346. .task_dscrp {
  347. line-height: 22px;
  348. margin: 0 0 5px 0;
  349. font-size: 15px;
  350. }
  351. .task_date_inner {
  352. color: #888;
  353. font-size: 12px;
  354. margin-bottom: 5px;
  355. }
  356. .task_conner {
  357. position: absolute;
  358. right: 0px;
  359. top: 0px;
  360. color: #888;
  361. font-size: 12px;
  362. padding: 4px 10px;
  363. background-color: #ececec;
  364. line-height: 12px;
  365. width: 36px;
  366. text-align: center;
  367. }
  368. .task_conner_sec {
  369. position: absolute;
  370. right: 60px;
  371. top: 0px;
  372. color: #888;
  373. font-size: 12px;
  374. padding: 4px 10px;
  375. background-color: #ececec;
  376. line-height: 12px;
  377. width: 36px;
  378. text-align: center
  379. }
  380. .task_date_left {
  381. position: absolute;
  382. top: 35px;
  383. left: -50px;
  384. font-size: 10px;
  385. width: 45px;
  386. text-align: center;
  387. }
  388. .task_time_left {
  389. position: absolute;
  390. top: 50px;
  391. left: -50px;
  392. font-size: 12px;
  393. font-weight: bold;
  394. width: 45px;
  395. text-align: center;
  396. }
  397. .left_icon {
  398. position: absolute;
  399. top: 10px;
  400. left: -40px;
  401. /* background-color: #41838e; */
  402. /* font-size: 12px; */
  403. font-weight: bold;
  404. color: #fff;
  405. border-radius: 50%;
  406. width: 25px;
  407. height: 25px;
  408. line-height: 25px;
  409. text-align: center;
  410. background: #46a4da;
  411. border-radius: 50%;
  412. box-shadow: 0 0 0 3px #afdcf8;
  413. ;
  414. }
  415. .task_flex {
  416. display: flex;
  417. line-height: 20px;
  418. }
  419. .arrow_box {
  420. position: relative;
  421. padding: 5px 5px 5px 10px;
  422. /* border-radius: 5px; */
  423. border-left: 3px solid #46a4da;
  424. box-shadow: 0 2px 7px rgba(0, 0, 0, 0.1);
  425. background: #fff;
  426. margin-bottom: 10px;
  427. /* border-bottom: 1px solid #f5f5f5;
  428. border-top: 1px solid #f5f5f5;
  429. border-right: 1px solid #f5f5f5; */
  430. }
  431. /* .arrow_box:after {
  432. right: 100%;
  433. top: 22px;
  434. border: solid transparent;
  435. content: " ";
  436. height: 0;
  437. width: 0;
  438. position: absolute;
  439. pointer-events: none;
  440. border-right-color: #46a4da;
  441. border-width: 8px;
  442. margin-top: -8px;
  443. } */
  444. .task_time {
  445. color: #888;
  446. margin-right: 10px;
  447. font-size: 14px;
  448. }
  449. .task_bottom div {
  450. margin-right: 10px
  451. }
  452. .task_tip {
  453. color: #888;
  454. font-size: 12px;
  455. margin-right: 10px;
  456. border-radius: 5px;
  457. padding: 5px;
  458. background-color: #f7f7f7;
  459. line-height: 12px;
  460. }
  461. .task_tip_inner {
  462. color: #888;
  463. font-size: 8px;
  464. /* margin-right: 10px; */
  465. border-radius: 5px;
  466. padding: 5px;
  467. background-color: #f7f7f7;
  468. line-height: 10px;
  469. }
  470. .tip_red {
  471. color: #fa5a5a;
  472. background-color: #ffc3c3
  473. }
  474. .tip_blue {
  475. color: #46a4da;
  476. background-color: #afdcf8
  477. }
  478. .kindgreen {
  479. border-left: 3px solid #8dc026;
  480. }
  481. .kindgreen::after {
  482. border-right-color: #8dc026;
  483. }
  484. .kindred {
  485. border-left: 3px solid #ff6f61;
  486. }
  487. .kindred::after {
  488. border-right-color: #ff6f61;
  489. }
  490. .kindorange {
  491. border-left: 3px solid #f2c866
  492. }
  493. .kindorange::after {
  494. border-right-color: #f2c866;
  495. }
  496. .icongreen {
  497. background: #8dc026;
  498. box-shadow: 0 0 0 3px #d1f3a1;
  499. }
  500. .iconred {
  501. background: #ff6f61;
  502. box-shadow: 0 0 0 3px #fdd1cd;
  503. }
  504. .iconorange {
  505. background: #f2c866;
  506. box-shadow: 0 0 0 3px #f7e7c2;
  507. }
  508. /* 底部栏 */
  509. .todolist-tab {
  510. color: #666;
  511. display: flex;
  512. position: fixed;
  513. bottom: 0;
  514. background-color: #ffffff;
  515. width: 100%;
  516. z-index: 9999;
  517. align-items: center;
  518. justify-content: center;
  519. padding: 5px 0 2px 0;
  520. box-shadow: 0 -1px 3px #f1f1f1
  521. }
  522. .todolist-tab-btn {
  523. font-size: 13px;
  524. width: 25%;
  525. text-align: center
  526. }
  527. .todolist-tab-btn-on {
  528. color: #46a4da
  529. }
  530. .todolist-tab-icon {
  531. font-size: 23px;
  532. }
  533. .todolist-tab-count {
  534. position: absolute;
  535. margin-left: 14%;
  536. bottom: 30px;
  537. font-size: 12px;
  538. line-height: 12px;
  539. width: 12px;
  540. font-weight: bold;
  541. color: #fff;
  542. border-radius: 50%;
  543. padding: 3px;
  544. text-align: center;
  545. background-color: #fc4f4f
  546. }
  547. </style>