From 303ad947b6a15ddaf1fc722b2360bfb0c6c70ad7 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 11 Apr 2019 15:37:20 +0800 Subject: [PATCH] Initial Commit --- .gitignore | 14 + app.js | 102 ++ app.json | 69 + app.wxss | 36 + components/footer/footer.js | 33 + components/footer/footer.json | 4 + components/footer/footer.wxml | 6 + components/footer/footer.wxss | 39 + components/path-view/index.js | 242 +++ components/path-view/index.json | 4 + components/path-view/index.wxml | 45 + components/path-view/index.wxss | 56 + components/path-view/toTree.js | 34 + image/home.png | Bin 0 -> 1155 bytes image/homec.png | Bin 0 -> 723 bytes image/me.png | Bin 0 -> 1266 bytes image/mec.png | Bin 0 -> 892 bytes image/todo.png | Bin 0 -> 715 bytes image/todoc.png | Bin 0 -> 512 bytes pages/bind/binduser.js | 102 ++ pages/bind/binduser.json | 1 + pages/bind/binduser.wxml | 23 + pages/bind/binduser.wxss | 5 + pages/drill/drill.js | 66 + pages/drill/drill.json | 1 + pages/drill/drill.wxml | 2 + pages/drill/drill.wxss | 1 + pages/footer/footer.js | 66 + pages/footer/footer.json | 3 + pages/footer/footer.wxml | 2 + pages/footer/footer.wxss | 1 + pages/images/accident.png | Bin 0 -> 1588 bytes pages/images/base64.js | 4 + pages/images/icon_footer.png | Bin 0 -> 1697 bytes pages/images/icon_footer_link.png | Bin 0 -> 1697 bytes pages/images/icon_intro.png | Bin 0 -> 748 bytes pages/images/icon_nav_feedback.png | Bin 0 -> 924 bytes pages/images/icon_nav_form.png | Bin 0 -> 200 bytes pages/images/icon_nav_nav.png | Bin 0 -> 579 bytes pages/images/icon_nav_search.png | Bin 0 -> 1068 bytes pages/images/icon_nav_special.png | Bin 0 -> 495 bytes pages/images/icon_nav_widget.png | Bin 0 -> 357 bytes pages/images/icon_nav_z-index.png | Bin 0 -> 388 bytes pages/images/icon_tabbar.png | Bin 0 -> 1176 bytes pages/images/logo.png | Bin 0 -> 2751 bytes pages/images/man.png | Bin 0 -> 559 bytes pages/images/miss.png | Bin 0 -> 979 bytes pages/images/operation.png | Bin 0 -> 1419 bytes pages/images/part.png | Bin 0 -> 247 bytes pages/images/pic_160.png | Bin 0 -> 2243 bytes pages/images/pic_article.png | Bin 0 -> 816 bytes pages/images/public.png | Bin 0 -> 689 bytes pages/images/send.png | Bin 0 -> 2065 bytes pages/images/socert.png | Bin 0 -> 1293 bytes pages/images/suggest.png | Bin 0 -> 761 bytes pages/images/suggest1.png | Bin 0 -> 718 bytes pages/images/test.png | Bin 0 -> 2927 bytes pages/images/train.png | Bin 0 -> 1193 bytes pages/images/trouble.png | Bin 0 -> 1375 bytes pages/images/troubleb.png | Bin 0 -> 2053 bytes pages/images/troublec.png | Bin 0 -> 2194 bytes pages/images/vcode.jpg | Bin 0 -> 2775 bytes pages/images/watch.png | Bin 0 -> 1847 bytes pages/index/index.js | 25 + pages/index/index.json | 1 + pages/index/index.wxml | 34 + pages/index/index.wxss | 5 + pages/logs/logs.js | 15 + pages/logs/logs.json | 3 + pages/logs/logs.wxml | 6 + pages/logs/logs.wxss | 8 + pages/main/main.js | 159 ++ pages/main/main.json | 1 + pages/main/main.wxml | 51 + pages/main/main.wxss | 1 + pages/miss/addmiss.js | 227 +++ pages/miss/addmiss.json | 3 + pages/miss/addmiss.wxml | 81 + pages/miss/addmiss.wxss | 1 + pages/miss/miss.js | 121 ++ pages/miss/miss.json | 5 + pages/miss/miss.wxml | 20 + pages/miss/miss.wxss | 14 + pages/miss/missdetail.js | 103 ++ pages/miss/missdetail.json | 3 + pages/miss/missdetail.wxml | 93 + pages/miss/missdetail.wxss | 1 + pages/notice/detail.js | 147 ++ pages/notice/detail.json | 3 + pages/notice/detail.wxml | 22 + pages/notice/detail.wxss | 1 + pages/notice/notice.js | 123 ++ pages/notice/notice.json | 5 + pages/notice/notice.wxml | 24 + pages/notice/notice.wxss | 13 + pages/observe/addobserve.js | 397 ++++ pages/observe/addobserve.json | 3 + pages/observe/addobserve.wxml | 180 ++ pages/observe/addobserve.wxss | 1 + pages/observe/observe.js | 121 ++ pages/observe/observe.json | 5 + pages/observe/observe.wxml | 20 + pages/observe/observe.wxss | 14 + pages/observe/observedetail.js | 103 ++ pages/observe/observedetail.json | 3 + pages/observe/observedetail.wxml | 109 ++ pages/observe/observedetail.wxss | 1 + pages/operation/operation.js | 279 +++ pages/operation/operation.json | 6 + pages/operation/operation.wxml | 91 + pages/operation/operation.wxss | 13 + pages/operation/operationadd.js | 328 ++++ pages/operation/operationadd.json | 4 + pages/operation/operationadd.wxml | 139 ++ pages/operation/operationadd.wxss | 1 + pages/operation/operationcheck.js | 242 +++ pages/operation/operationcheck.json | 3 + pages/operation/operationcheck.wxml | 120 ++ pages/operation/operationcheck.wxss | 5 + pages/operation/operationdetail.js | 117 ++ pages/operation/operationdetail.json | 3 + pages/operation/operationdetail.wxml | 147 ++ pages/operation/operationdetail.wxss | 1 + pages/parttree/index.js | 106 ++ pages/parttree/index.json | 4 + pages/parttree/index.wxml | 8 + pages/parttree/index.wxss | 12 + pages/public/detail.js | 150 ++ pages/public/detail.json | 3 + pages/public/detail.wxml | 20 + pages/public/detail.wxss | 1 + pages/public/public.js | 121 ++ pages/public/public.json | 5 + pages/public/public.wxml | 23 + pages/public/public.wxss | 13 + pages/socert/socert.js | 170 ++ pages/socert/socert.json | 5 + pages/socert/socert.wxml | 15 + pages/socert/socert.wxss | 1 + pages/socert/socertdetail.js | 87 + pages/socert/socertdetail.json | 3 + pages/socert/socertdetail.wxml | 88 + pages/socert/socertdetail.wxss | 1 + pages/suggest/add.js | 228 +++ pages/suggest/add.json | 3 + pages/suggest/add.wxml | 71 + pages/suggest/add.wxss | 1 + pages/suggest/detail.js | 102 ++ pages/suggest/detail.json | 3 + pages/suggest/detail.wxml | 78 + pages/suggest/detail.wxss | 1 + pages/suggest/suggest.js | 120 ++ pages/suggest/suggest.json | 5 + pages/suggest/suggest.wxml | 20 + pages/suggest/suggest.wxss | 14 + pages/todo/todo.js | 88 + pages/todo/todo.json | 1 + pages/todo/todo.wxml | 31 + pages/todo/todo.wxss | 1 + pages/train/add.js | 327 ++++ pages/train/add.json | 4 + pages/train/add.wxml | 148 ++ pages/train/add.wxss | 1 + pages/train/train.js | 241 +++ pages/train/train.json | 5 + pages/train/train.wxml | 91 + pages/train/train.wxss | 13 + pages/trouble/accesstrouble.js | 610 +++++++ pages/trouble/accesstrouble.json | 1 + pages/trouble/accesstrouble.wxml | 422 +++++ pages/trouble/accesstrouble.wxss | 13 + pages/trouble/addtrouble.js | 366 ++++ pages/trouble/addtrouble.json | 3 + pages/trouble/addtrouble.wxml | 83 + pages/trouble/addtrouble.wxss | 4 + pages/trouble/addtroublezg.js | 342 ++++ pages/trouble/addtroublezg.json | 3 + pages/trouble/addtroublezg.wxml | 88 + pages/trouble/addtroublezg.wxss | 4 + pages/trouble/addtroublezp.js | 323 ++++ pages/trouble/addtroublezp.json | 3 + pages/trouble/addtroublezp.wxml | 98 + pages/trouble/addtroublezp.wxss | 4 + pages/trouble/trouble.js | 208 +++ pages/trouble/trouble.json | 4 + pages/trouble/trouble.wxml | 108 ++ pages/trouble/trouble.wxss | 14 + pages/trouble/troubledetail.js | 118 ++ pages/trouble/troubledetail.json | 3 + pages/trouble/troubledetail.wxml | 186 ++ pages/trouble/troubledetail.wxss | 1 + pages/trouble/troubletodo.js | 62 + pages/trouble/troubletodo.json | 5 + pages/trouble/troubletodo.wxml | 26 + pages/trouble/troubletodo.wxss | 13 + pages/user/userdetail.js | 182 ++ pages/user/userdetail.json | 3 + pages/user/userdetail.wxml | 76 + pages/user/userdetail.wxss | 5 + pages/userSelect/ArrayUtils.js | 22 + pages/userSelect/userSelect.js | 307 ++++ pages/userSelect/userSelect.json | 5 + pages/userSelect/userSelect.wxml | 21 + pages/userSelect/userSelect.wxss | 82 + project.config.json | 33 + utils/dateTimePicker.js | 80 + utils/dict.js | 20 + utils/util.js | 20 + weui.wxss | 6 + wxParse/emojis/00.gif | Bin 0 -> 1810 bytes wxParse/emojis/01.gif | Bin 0 -> 1582 bytes wxParse/emojis/02.gif | Bin 0 -> 1804 bytes wxParse/emojis/03.gif | Bin 0 -> 1852 bytes wxParse/emojis/04.gif | Bin 0 -> 1977 bytes wxParse/emojis/05.gif | Bin 0 -> 1866 bytes wxParse/emojis/06.gif | Bin 0 -> 3556 bytes wxParse/emojis/07.gif | Bin 0 -> 3929 bytes wxParse/emojis/08.gif | Bin 0 -> 4679 bytes wxParse/emojis/09.gif | Bin 0 -> 3298 bytes wxParse/emojis/10.gif | Bin 0 -> 3716 bytes wxParse/emojis/100.gif | Bin 0 -> 1780 bytes wxParse/emojis/101.gif | Bin 0 -> 2443 bytes wxParse/emojis/102.gif | Bin 0 -> 1446 bytes wxParse/emojis/103.gif | Bin 0 -> 2166 bytes wxParse/emojis/104.gif | Bin 0 -> 2169 bytes wxParse/emojis/105.gif | Bin 0 -> 1277 bytes wxParse/emojis/106.gif | Bin 0 -> 1041 bytes wxParse/emojis/107.gif | Bin 0 -> 1058 bytes wxParse/emojis/108.gif | Bin 0 -> 1046 bytes wxParse/emojis/109.gif | Bin 0 -> 1081 bytes wxParse/emojis/11.gif | Bin 0 -> 8033 bytes wxParse/emojis/110.gif | Bin 0 -> 1082 bytes wxParse/emojis/111.gif | Bin 0 -> 1039 bytes wxParse/emojis/112.gif | Bin 0 -> 1111 bytes wxParse/emojis/113.gif | Bin 0 -> 1015 bytes wxParse/emojis/114.gif | Bin 0 -> 1003 bytes wxParse/emojis/115.gif | Bin 0 -> 1061 bytes wxParse/emojis/116.gif | Bin 0 -> 996 bytes wxParse/emojis/117.gif | Bin 0 -> 1041 bytes wxParse/emojis/118.gif | Bin 0 -> 1012 bytes wxParse/emojis/119.gif | Bin 0 -> 1101 bytes wxParse/emojis/12.gif | Bin 0 -> 2247 bytes wxParse/emojis/120.gif | Bin 0 -> 1008 bytes wxParse/emojis/121.gif | Bin 0 -> 1060 bytes wxParse/emojis/122.gif | Bin 0 -> 999 bytes wxParse/emojis/123.gif | Bin 0 -> 1055 bytes wxParse/emojis/124.gif | Bin 0 -> 1022 bytes wxParse/emojis/125.gif | Bin 0 -> 1013 bytes wxParse/emojis/126.gif | Bin 0 -> 1030 bytes wxParse/emojis/127.gif | Bin 0 -> 956 bytes wxParse/emojis/128.gif | Bin 0 -> 1022 bytes wxParse/emojis/129.gif | Bin 0 -> 972 bytes wxParse/emojis/13.gif | Bin 0 -> 1736 bytes wxParse/emojis/130.gif | Bin 0 -> 980 bytes wxParse/emojis/131.gif | Bin 0 -> 945 bytes wxParse/emojis/132.gif | Bin 0 -> 936 bytes wxParse/emojis/133.gif | Bin 0 -> 1012 bytes wxParse/emojis/134.gif | Bin 0 -> 968 bytes wxParse/emojis/14.gif | Bin 0 -> 4006 bytes wxParse/emojis/15.gif | Bin 0 -> 1562 bytes wxParse/emojis/16.gif | Bin 0 -> 1413 bytes wxParse/emojis/17.gif | Bin 0 -> 3366 bytes wxParse/emojis/18.gif | Bin 0 -> 8137 bytes wxParse/emojis/19.gif | Bin 0 -> 8135 bytes wxParse/emojis/20.gif | Bin 0 -> 1808 bytes wxParse/emojis/21.gif | Bin 0 -> 1864 bytes wxParse/emojis/22.gif | Bin 0 -> 3010 bytes wxParse/emojis/23.gif | Bin 0 -> 1950 bytes wxParse/emojis/24.gif | Bin 0 -> 2257 bytes wxParse/emojis/25.gif | Bin 0 -> 2446 bytes wxParse/emojis/26.gif | Bin 0 -> 4014 bytes wxParse/emojis/27.gif | Bin 0 -> 2893 bytes wxParse/emojis/28.gif | Bin 0 -> 3262 bytes wxParse/emojis/29.gif | Bin 0 -> 5861 bytes wxParse/emojis/30.gif | Bin 0 -> 1780 bytes wxParse/emojis/31.gif | Bin 0 -> 5174 bytes wxParse/emojis/32.gif | Bin 0 -> 7189 bytes wxParse/emojis/33.gif | Bin 0 -> 4317 bytes wxParse/emojis/34.gif | Bin 0 -> 2140 bytes wxParse/emojis/35.gif | Bin 0 -> 13392 bytes wxParse/emojis/36.gif | Bin 0 -> 1417 bytes wxParse/emojis/37.gif | Bin 0 -> 1195 bytes wxParse/emojis/38.gif | Bin 0 -> 1674 bytes wxParse/emojis/39.gif | Bin 0 -> 1798 bytes wxParse/emojis/40.gif | Bin 0 -> 10092 bytes wxParse/emojis/41.gif | Bin 0 -> 3368 bytes wxParse/emojis/42.gif | Bin 0 -> 13367 bytes wxParse/emojis/43.gif | Bin 0 -> 4327 bytes wxParse/emojis/44.gif | Bin 0 -> 1571 bytes wxParse/emojis/45.gif | Bin 0 -> 4692 bytes wxParse/emojis/46.gif | Bin 0 -> 5162 bytes wxParse/emojis/47.gif | Bin 0 -> 3685 bytes wxParse/emojis/48.gif | Bin 0 -> 1755 bytes wxParse/emojis/49.gif | Bin 0 -> 6361 bytes wxParse/emojis/50.gif | Bin 0 -> 3073 bytes wxParse/emojis/51.gif | Bin 0 -> 3731 bytes wxParse/emojis/52.gif | Bin 0 -> 1532 bytes wxParse/emojis/53.gif | Bin 0 -> 2056 bytes wxParse/emojis/54.gif | Bin 0 -> 2362 bytes wxParse/emojis/55.gif | Bin 0 -> 1582 bytes wxParse/emojis/56.gif | Bin 0 -> 1170 bytes wxParse/emojis/57.gif | Bin 0 -> 5072 bytes wxParse/emojis/58.gif | Bin 0 -> 2596 bytes wxParse/emojis/59.gif | Bin 0 -> 1533 bytes wxParse/emojis/60.gif | Bin 0 -> 2667 bytes wxParse/emojis/61.gif | Bin 0 -> 1136 bytes wxParse/emojis/62.gif | Bin 0 -> 1269 bytes wxParse/emojis/63.gif | Bin 0 -> 971 bytes wxParse/emojis/64.gif | Bin 0 -> 988 bytes wxParse/emojis/65.gif | Bin 0 -> 5285 bytes wxParse/emojis/66.gif | Bin 0 -> 1159 bytes wxParse/emojis/67.gif | Bin 0 -> 2746 bytes wxParse/emojis/68.gif | Bin 0 -> 4148 bytes wxParse/emojis/69.gif | Bin 0 -> 1015 bytes wxParse/emojis/70.gif | Bin 0 -> 1162 bytes wxParse/emojis/71.gif | Bin 0 -> 824 bytes wxParse/emojis/72.gif | Bin 0 -> 3679 bytes wxParse/emojis/73.gif | Bin 0 -> 2195 bytes wxParse/emojis/74.gif | Bin 0 -> 2454 bytes wxParse/emojis/75.gif | Bin 0 -> 1222 bytes wxParse/emojis/76.gif | Bin 0 -> 1211 bytes wxParse/emojis/77.gif | Bin 0 -> 1151 bytes wxParse/emojis/78.gif | Bin 0 -> 1565 bytes wxParse/emojis/79.gif | Bin 0 -> 1518 bytes wxParse/emojis/80.gif | Bin 0 -> 1537 bytes wxParse/emojis/81.gif | Bin 0 -> 1591 bytes wxParse/emojis/82.gif | Bin 0 -> 1547 bytes wxParse/emojis/83.gif | Bin 0 -> 1591 bytes wxParse/emojis/84.gif | Bin 0 -> 3424 bytes wxParse/emojis/85.gif | Bin 0 -> 1581 bytes wxParse/emojis/86.gif | Bin 0 -> 1519 bytes wxParse/emojis/87.gif | Bin 0 -> 1558 bytes wxParse/emojis/88.gif | Bin 0 -> 2134 bytes wxParse/emojis/89.gif | Bin 0 -> 1219 bytes wxParse/emojis/90.gif | Bin 0 -> 2743 bytes wxParse/emojis/91.gif | Bin 0 -> 654 bytes wxParse/emojis/92.gif | Bin 0 -> 1377 bytes wxParse/emojis/93.gif | Bin 0 -> 1119 bytes wxParse/emojis/94.gif | Bin 0 -> 3426 bytes wxParse/emojis/95.gif | Bin 0 -> 3011 bytes wxParse/emojis/96.gif | Bin 0 -> 1796 bytes wxParse/emojis/97.gif | Bin 0 -> 5300 bytes wxParse/emojis/98.gif | Bin 0 -> 1629 bytes wxParse/emojis/99.gif | Bin 0 -> 2261 bytes wxParse/html2json.js | 303 +++ wxParse/htmlparser.js | 192 ++ wxParse/showdown.js | 2532 ++++++++++++++++++++++++++ wxParse/wxDiscode.js | 207 +++ wxParse/wxParse.js | 159 ++ wxParse/wxParse.wxml | 967 ++++++++++ wxParse/wxParse.wxss | 206 +++ 351 files changed, 15712 insertions(+) create mode 100644 .gitignore create mode 100644 app.js create mode 100644 app.json create mode 100644 app.wxss create mode 100644 components/footer/footer.js create mode 100644 components/footer/footer.json create mode 100644 components/footer/footer.wxml create mode 100644 components/footer/footer.wxss create mode 100644 components/path-view/index.js create mode 100644 components/path-view/index.json create mode 100644 components/path-view/index.wxml create mode 100644 components/path-view/index.wxss create mode 100644 components/path-view/toTree.js create mode 100644 image/home.png create mode 100644 image/homec.png create mode 100644 image/me.png create mode 100644 image/mec.png create mode 100644 image/todo.png create mode 100644 image/todoc.png create mode 100644 pages/bind/binduser.js create mode 100644 pages/bind/binduser.json create mode 100644 pages/bind/binduser.wxml create mode 100644 pages/bind/binduser.wxss create mode 100644 pages/drill/drill.js create mode 100644 pages/drill/drill.json create mode 100644 pages/drill/drill.wxml create mode 100644 pages/drill/drill.wxss create mode 100644 pages/footer/footer.js create mode 100644 pages/footer/footer.json create mode 100644 pages/footer/footer.wxml create mode 100644 pages/footer/footer.wxss create mode 100644 pages/images/accident.png create mode 100644 pages/images/base64.js create mode 100644 pages/images/icon_footer.png create mode 100644 pages/images/icon_footer_link.png create mode 100644 pages/images/icon_intro.png create mode 100644 pages/images/icon_nav_feedback.png create mode 100644 pages/images/icon_nav_form.png create mode 100644 pages/images/icon_nav_nav.png create mode 100644 pages/images/icon_nav_search.png create mode 100644 pages/images/icon_nav_special.png create mode 100644 pages/images/icon_nav_widget.png create mode 100644 pages/images/icon_nav_z-index.png create mode 100644 pages/images/icon_tabbar.png create mode 100644 pages/images/logo.png create mode 100644 pages/images/man.png create mode 100644 pages/images/miss.png create mode 100644 pages/images/operation.png create mode 100644 pages/images/part.png create mode 100644 pages/images/pic_160.png create mode 100644 pages/images/pic_article.png create mode 100644 pages/images/public.png create mode 100644 pages/images/send.png create mode 100644 pages/images/socert.png create mode 100644 pages/images/suggest.png create mode 100644 pages/images/suggest1.png create mode 100644 pages/images/test.png create mode 100644 pages/images/train.png create mode 100644 pages/images/trouble.png create mode 100644 pages/images/troubleb.png create mode 100644 pages/images/troublec.png create mode 100644 pages/images/vcode.jpg create mode 100644 pages/images/watch.png create mode 100644 pages/index/index.js create mode 100644 pages/index/index.json create mode 100644 pages/index/index.wxml create mode 100644 pages/index/index.wxss create mode 100644 pages/logs/logs.js create mode 100644 pages/logs/logs.json create mode 100644 pages/logs/logs.wxml create mode 100644 pages/logs/logs.wxss create mode 100644 pages/main/main.js create mode 100644 pages/main/main.json create mode 100644 pages/main/main.wxml create mode 100644 pages/main/main.wxss create mode 100644 pages/miss/addmiss.js create mode 100644 pages/miss/addmiss.json create mode 100644 pages/miss/addmiss.wxml create mode 100644 pages/miss/addmiss.wxss create mode 100644 pages/miss/miss.js create mode 100644 pages/miss/miss.json create mode 100644 pages/miss/miss.wxml create mode 100644 pages/miss/miss.wxss create mode 100644 pages/miss/missdetail.js create mode 100644 pages/miss/missdetail.json create mode 100644 pages/miss/missdetail.wxml create mode 100644 pages/miss/missdetail.wxss create mode 100644 pages/notice/detail.js create mode 100644 pages/notice/detail.json create mode 100644 pages/notice/detail.wxml create mode 100644 pages/notice/detail.wxss create mode 100644 pages/notice/notice.js create mode 100644 pages/notice/notice.json create mode 100644 pages/notice/notice.wxml create mode 100644 pages/notice/notice.wxss create mode 100644 pages/observe/addobserve.js create mode 100644 pages/observe/addobserve.json create mode 100644 pages/observe/addobserve.wxml create mode 100644 pages/observe/addobserve.wxss create mode 100644 pages/observe/observe.js create mode 100644 pages/observe/observe.json create mode 100644 pages/observe/observe.wxml create mode 100644 pages/observe/observe.wxss create mode 100644 pages/observe/observedetail.js create mode 100644 pages/observe/observedetail.json create mode 100644 pages/observe/observedetail.wxml create mode 100644 pages/observe/observedetail.wxss create mode 100644 pages/operation/operation.js create mode 100644 pages/operation/operation.json create mode 100644 pages/operation/operation.wxml create mode 100644 pages/operation/operation.wxss create mode 100644 pages/operation/operationadd.js create mode 100644 pages/operation/operationadd.json create mode 100644 pages/operation/operationadd.wxml create mode 100644 pages/operation/operationadd.wxss create mode 100644 pages/operation/operationcheck.js create mode 100644 pages/operation/operationcheck.json create mode 100644 pages/operation/operationcheck.wxml create mode 100644 pages/operation/operationcheck.wxss create mode 100644 pages/operation/operationdetail.js create mode 100644 pages/operation/operationdetail.json create mode 100644 pages/operation/operationdetail.wxml create mode 100644 pages/operation/operationdetail.wxss create mode 100644 pages/parttree/index.js create mode 100644 pages/parttree/index.json create mode 100644 pages/parttree/index.wxml create mode 100644 pages/parttree/index.wxss create mode 100644 pages/public/detail.js create mode 100644 pages/public/detail.json create mode 100644 pages/public/detail.wxml create mode 100644 pages/public/detail.wxss create mode 100644 pages/public/public.js create mode 100644 pages/public/public.json create mode 100644 pages/public/public.wxml create mode 100644 pages/public/public.wxss create mode 100644 pages/socert/socert.js create mode 100644 pages/socert/socert.json create mode 100644 pages/socert/socert.wxml create mode 100644 pages/socert/socert.wxss create mode 100644 pages/socert/socertdetail.js create mode 100644 pages/socert/socertdetail.json create mode 100644 pages/socert/socertdetail.wxml create mode 100644 pages/socert/socertdetail.wxss create mode 100644 pages/suggest/add.js create mode 100644 pages/suggest/add.json create mode 100644 pages/suggest/add.wxml create mode 100644 pages/suggest/add.wxss create mode 100644 pages/suggest/detail.js create mode 100644 pages/suggest/detail.json create mode 100644 pages/suggest/detail.wxml create mode 100644 pages/suggest/detail.wxss create mode 100644 pages/suggest/suggest.js create mode 100644 pages/suggest/suggest.json create mode 100644 pages/suggest/suggest.wxml create mode 100644 pages/suggest/suggest.wxss create mode 100644 pages/todo/todo.js create mode 100644 pages/todo/todo.json create mode 100644 pages/todo/todo.wxml create mode 100644 pages/todo/todo.wxss create mode 100644 pages/train/add.js create mode 100644 pages/train/add.json create mode 100644 pages/train/add.wxml create mode 100644 pages/train/add.wxss create mode 100644 pages/train/train.js create mode 100644 pages/train/train.json create mode 100644 pages/train/train.wxml create mode 100644 pages/train/train.wxss create mode 100644 pages/trouble/accesstrouble.js create mode 100644 pages/trouble/accesstrouble.json create mode 100644 pages/trouble/accesstrouble.wxml create mode 100644 pages/trouble/accesstrouble.wxss create mode 100644 pages/trouble/addtrouble.js create mode 100644 pages/trouble/addtrouble.json create mode 100644 pages/trouble/addtrouble.wxml create mode 100644 pages/trouble/addtrouble.wxss create mode 100644 pages/trouble/addtroublezg.js create mode 100644 pages/trouble/addtroublezg.json create mode 100644 pages/trouble/addtroublezg.wxml create mode 100644 pages/trouble/addtroublezg.wxss create mode 100644 pages/trouble/addtroublezp.js create mode 100644 pages/trouble/addtroublezp.json create mode 100644 pages/trouble/addtroublezp.wxml create mode 100644 pages/trouble/addtroublezp.wxss create mode 100644 pages/trouble/trouble.js create mode 100644 pages/trouble/trouble.json create mode 100644 pages/trouble/trouble.wxml create mode 100644 pages/trouble/trouble.wxss create mode 100644 pages/trouble/troubledetail.js create mode 100644 pages/trouble/troubledetail.json create mode 100644 pages/trouble/troubledetail.wxml create mode 100644 pages/trouble/troubledetail.wxss create mode 100644 pages/trouble/troubletodo.js create mode 100644 pages/trouble/troubletodo.json create mode 100644 pages/trouble/troubletodo.wxml create mode 100644 pages/trouble/troubletodo.wxss create mode 100644 pages/user/userdetail.js create mode 100644 pages/user/userdetail.json create mode 100644 pages/user/userdetail.wxml create mode 100644 pages/user/userdetail.wxss create mode 100644 pages/userSelect/ArrayUtils.js create mode 100644 pages/userSelect/userSelect.js create mode 100644 pages/userSelect/userSelect.json create mode 100644 pages/userSelect/userSelect.wxml create mode 100644 pages/userSelect/userSelect.wxss create mode 100644 project.config.json create mode 100644 utils/dateTimePicker.js create mode 100644 utils/dict.js create mode 100644 utils/util.js create mode 100644 weui.wxss create mode 100644 wxParse/emojis/00.gif create mode 100644 wxParse/emojis/01.gif create mode 100644 wxParse/emojis/02.gif create mode 100644 wxParse/emojis/03.gif create mode 100644 wxParse/emojis/04.gif create mode 100644 wxParse/emojis/05.gif create mode 100644 wxParse/emojis/06.gif create mode 100644 wxParse/emojis/07.gif create mode 100644 wxParse/emojis/08.gif create mode 100644 wxParse/emojis/09.gif create mode 100644 wxParse/emojis/10.gif create mode 100644 wxParse/emojis/100.gif create mode 100644 wxParse/emojis/101.gif create mode 100644 wxParse/emojis/102.gif create mode 100644 wxParse/emojis/103.gif create mode 100644 wxParse/emojis/104.gif create mode 100644 wxParse/emojis/105.gif create mode 100644 wxParse/emojis/106.gif create mode 100644 wxParse/emojis/107.gif create mode 100644 wxParse/emojis/108.gif create mode 100644 wxParse/emojis/109.gif create mode 100644 wxParse/emojis/11.gif create mode 100644 wxParse/emojis/110.gif create mode 100644 wxParse/emojis/111.gif create mode 100644 wxParse/emojis/112.gif create mode 100644 wxParse/emojis/113.gif create mode 100644 wxParse/emojis/114.gif create mode 100644 wxParse/emojis/115.gif create mode 100644 wxParse/emojis/116.gif create mode 100644 wxParse/emojis/117.gif create mode 100644 wxParse/emojis/118.gif create mode 100644 wxParse/emojis/119.gif create mode 100644 wxParse/emojis/12.gif create mode 100644 wxParse/emojis/120.gif create mode 100644 wxParse/emojis/121.gif create mode 100644 wxParse/emojis/122.gif create mode 100644 wxParse/emojis/123.gif create mode 100644 wxParse/emojis/124.gif create mode 100644 wxParse/emojis/125.gif create mode 100644 wxParse/emojis/126.gif create mode 100644 wxParse/emojis/127.gif create mode 100644 wxParse/emojis/128.gif create mode 100644 wxParse/emojis/129.gif create mode 100644 wxParse/emojis/13.gif create mode 100644 wxParse/emojis/130.gif create mode 100644 wxParse/emojis/131.gif create mode 100644 wxParse/emojis/132.gif create mode 100644 wxParse/emojis/133.gif create mode 100644 wxParse/emojis/134.gif create mode 100644 wxParse/emojis/14.gif create mode 100644 wxParse/emojis/15.gif create mode 100644 wxParse/emojis/16.gif create mode 100644 wxParse/emojis/17.gif create mode 100644 wxParse/emojis/18.gif create mode 100644 wxParse/emojis/19.gif create mode 100644 wxParse/emojis/20.gif create mode 100644 wxParse/emojis/21.gif create mode 100644 wxParse/emojis/22.gif create mode 100644 wxParse/emojis/23.gif create mode 100644 wxParse/emojis/24.gif create mode 100644 wxParse/emojis/25.gif create mode 100644 wxParse/emojis/26.gif create mode 100644 wxParse/emojis/27.gif create mode 100644 wxParse/emojis/28.gif create mode 100644 wxParse/emojis/29.gif create mode 100644 wxParse/emojis/30.gif create mode 100644 wxParse/emojis/31.gif create mode 100644 wxParse/emojis/32.gif create mode 100644 wxParse/emojis/33.gif create mode 100644 wxParse/emojis/34.gif create mode 100644 wxParse/emojis/35.gif create mode 100644 wxParse/emojis/36.gif create mode 100644 wxParse/emojis/37.gif create mode 100644 wxParse/emojis/38.gif create mode 100644 wxParse/emojis/39.gif create mode 100644 wxParse/emojis/40.gif create mode 100644 wxParse/emojis/41.gif create mode 100644 wxParse/emojis/42.gif create mode 100644 wxParse/emojis/43.gif create mode 100644 wxParse/emojis/44.gif create mode 100644 wxParse/emojis/45.gif create mode 100644 wxParse/emojis/46.gif create mode 100644 wxParse/emojis/47.gif create mode 100644 wxParse/emojis/48.gif create mode 100644 wxParse/emojis/49.gif create mode 100644 wxParse/emojis/50.gif create mode 100644 wxParse/emojis/51.gif create mode 100644 wxParse/emojis/52.gif create mode 100644 wxParse/emojis/53.gif create mode 100644 wxParse/emojis/54.gif create mode 100644 wxParse/emojis/55.gif create mode 100644 wxParse/emojis/56.gif create mode 100644 wxParse/emojis/57.gif create mode 100644 wxParse/emojis/58.gif create mode 100644 wxParse/emojis/59.gif create mode 100644 wxParse/emojis/60.gif create mode 100644 wxParse/emojis/61.gif create mode 100644 wxParse/emojis/62.gif create mode 100644 wxParse/emojis/63.gif create mode 100644 wxParse/emojis/64.gif create mode 100644 wxParse/emojis/65.gif create mode 100644 wxParse/emojis/66.gif create mode 100644 wxParse/emojis/67.gif create mode 100644 wxParse/emojis/68.gif create mode 100644 wxParse/emojis/69.gif create mode 100644 wxParse/emojis/70.gif create mode 100644 wxParse/emojis/71.gif create mode 100644 wxParse/emojis/72.gif create mode 100644 wxParse/emojis/73.gif create mode 100644 wxParse/emojis/74.gif create mode 100644 wxParse/emojis/75.gif create mode 100644 wxParse/emojis/76.gif create mode 100644 wxParse/emojis/77.gif create mode 100644 wxParse/emojis/78.gif create mode 100644 wxParse/emojis/79.gif create mode 100644 wxParse/emojis/80.gif create mode 100644 wxParse/emojis/81.gif create mode 100644 wxParse/emojis/82.gif create mode 100644 wxParse/emojis/83.gif create mode 100644 wxParse/emojis/84.gif create mode 100644 wxParse/emojis/85.gif create mode 100644 wxParse/emojis/86.gif create mode 100644 wxParse/emojis/87.gif create mode 100644 wxParse/emojis/88.gif create mode 100644 wxParse/emojis/89.gif create mode 100644 wxParse/emojis/90.gif create mode 100644 wxParse/emojis/91.gif create mode 100644 wxParse/emojis/92.gif create mode 100644 wxParse/emojis/93.gif create mode 100644 wxParse/emojis/94.gif create mode 100644 wxParse/emojis/95.gif create mode 100644 wxParse/emojis/96.gif create mode 100644 wxParse/emojis/97.gif create mode 100644 wxParse/emojis/98.gif create mode 100644 wxParse/emojis/99.gif create mode 100644 wxParse/html2json.js create mode 100644 wxParse/htmlparser.js create mode 100644 wxParse/showdown.js create mode 100644 wxParse/wxDiscode.js create mode 100644 wxParse/wxParse.js create mode 100644 wxParse/wxParse.wxml create mode 100644 wxParse/wxParse.wxss diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10fa70b --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Windows +[Dd]esktop.ini +Thumbs.db +$RECYCLE.BIN/ + +# macOS +.DS_Store +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes + +# Node.js +node_modules/ diff --git a/app.js b/app.js new file mode 100644 index 0000000..c08a124 --- /dev/null +++ b/app.js @@ -0,0 +1,102 @@ +//app.js +App({ + onLaunch: function () { + // 展示本地存储能力 + //var logs = wx.getStorageSync('logs') || [] + //logs.unshift(Date.now()) + //wx.setStorageSync('logs', logs) + // wx.checkSession({ + // success() { + // //session_key 未过期,并且在本生命周期一直有效 + // console.log(wx.getStorageSync("sessionid")) + // }, + // fail() { + // // session_key 已经失效,需要重新执行登录流程 + // // 登录 + // } + // }) + this.mplogin(); + }, + mplogin: function () { + var that = this; + wx.login({ + success: res => { + // 发送 res.code 到后台换取 openId, sessionKey, unionId + wx.request({ + url: that.globalData.serverUrl + 'mplogin', + data: { + code: res.code + }, + method: 'POST', + header: { + 'content-type': 'application/json' + }, + success: function (res) { + if (res.data.code == 1) { + //console.log(res.header["Set-Cookie"]) + //console.log(res) + wx.setStorageSync('userid', res.data.userid) + wx.setStorageSync('username', res.data.username) + wx.setStorageSync('sessionid', res.header["Set-Cookie"]) + wx.setStorageSync('mpopenid', res.data.mpopenid) + if (that.callback) { //这个函数名字和你定义的一样即可 + that.callback() //执行定义的回调函数 + } + //获取是否是安全员 + wx.request({ + url: that.globalData.serverUrl + 'api/user?a=checkaqy', + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + data: {}, + success: res => { + if (res.data.code == 1) { + //console.log(res.data) + that.globalData.isaqy = 1 + } + console.log(that.globalData.isaqy) + } + }); + // //获取隐患待办数目 + // wx.request({ + // url: that.globalData.serverUrl + 'troublehandle?a=todonum', + // header: { + // 'content-type': 'application/json', // 默认值 + // 'Cookie': wx.getStorageSync("sessionid"), + // }, + // data: {}, + // success: res => { + // if (res.statusCode === 200) { + // //console.log(res.data) + // that.globalData.yhtodonum = res.data.todonum + // if (that.globalData.yhtodonum > 0) { + // wx.setTabBarBadge({ + // index: 1, + // text: '新' + // }) + // } + // } + // } + // }); + } else { + wx.setStorageSync('mpopenid', res.data.mpopenid) + wx.reLaunch({ + url: '/pages/bind/binduser?mpopenid=' + res.data.mpopenid, + }) + } + }, + }) + } + }) + }, + globalData: { + userInfo: null, + //serverUrl: 'https://safeyun.ctcshe.com/', + serverUrl:'http://127.0.0.1:8000/', + //serverUrl: 'http://192.168.0.102:8000/', + //serverUrl:'http://10.7.100.250:8000/', + isaqy: 0 + }, + +}) \ No newline at end of file diff --git a/app.json b/app.json new file mode 100644 index 0000000..1d6df9f --- /dev/null +++ b/app.json @@ -0,0 +1,69 @@ +{ + "pages": [ + "pages/main/main", + "pages/index/index", + "pages/logs/logs", + "pages/trouble/trouble", + "pages/train/train", + "pages/drill/drill", + "pages/trouble/addtrouble", + "pages/trouble/troubledetail", + "pages/trouble/addtroublezg", + "pages/trouble/addtroublezp", + "pages/parttree/index", + "pages/todo/todo", + "pages/trouble/troubletodo", + "pages/trouble/accesstrouble", + "pages/bind/binduser", + "pages/observe/addobserve", + "pages/observe/observe", + "pages/observe/observedetail", + "pages/miss/miss", + "pages/miss/missdetail", + "pages/miss/addmiss", + "pages/user/userdetail", + "pages/socert/socert", + "pages/socert/socertdetail", + "pages/suggest/suggest", + "pages/suggest/add", + "pages/suggest/detail", + "pages/notice/notice", + "pages/notice/detail", + "pages/public/public", + "pages/public/detail", + "pages/operation/operation", + "pages/operation/operationcheck", + "pages/operation/operationdetail", + "pages/footer/footer", + "pages/userSelect/userSelect", + "components/footer/footer", + "pages/operation/operationadd", + "pages/train/add" + ], + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "安全预警lite", + "navigationBarTextStyle": "black" + }, + "tabBar": { + "color": "#7A7E83", + "selectedColor": "#3cc51f", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/main/main", + "text": "主页", + "iconPath": "image/home.png", + "selectedIconPath": "image/homec.png" + }, + { + "pagePath": "pages/index/index", + "text": "个人中心", + "iconPath": "image/me.png", + "selectedIconPath": "image/mec.png" + } + ] + } +} \ No newline at end of file diff --git a/app.wxss b/app.wxss new file mode 100644 index 0000000..58026a6 --- /dev/null +++ b/app.wxss @@ -0,0 +1,36 @@ +/**app.wxss**/ +@import 'weui.wxss'; +@import "/wxParse/wxParse.wxss"; +page{ + background-color: #F8F8F8; + font-size: 16px; + font-family: -apple-system-font,Helvetica Neue,Helvetica,sans-serif; +} +.page__hd { + padding: 40px; +} +.page__bd { + padding-bottom: 40px; +} +.page__bd_spacing { + padding-left: 15px; + padding-right: 15px; +} + +.page__ft{ + padding-bottom: 10px; + text-align: center; +} + +.page__title { + text-align: left; + font-size: 20px; + font-weight: 400; +} + +.page__desc { + margin-top: 5px; + color: #888888; + text-align: left; + font-size: 14px; +} \ No newline at end of file diff --git a/components/footer/footer.js b/components/footer/footer.js new file mode 100644 index 0000000..2052a81 --- /dev/null +++ b/components/footer/footer.js @@ -0,0 +1,33 @@ +Component({ + /** + * 组件的属性列表 + */ + properties: { + list: { type: Array } + }, + /** + * 组件的初始数据 + */ + data: {}, + /** + * 组件的方法列表 + */ + methods: { + delete(res) { + console.log(res) + let index = res.currentTarget.id + let list = this.data.list + list.splice(index, 1) + this.setData({ list: list }) + this.triggerEvent( + "delete", + { + selectList: list }) + }, /** + * 点击确定按钮 + */ + confirm() { + this.triggerEvent("submit", "") + } + } +}) \ No newline at end of file diff --git a/components/footer/footer.json b/components/footer/footer.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/components/footer/footer.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/components/footer/footer.wxml b/components/footer/footer.wxml new file mode 100644 index 0000000..2d21345 --- /dev/null +++ b/components/footer/footer.wxml @@ -0,0 +1,6 @@ + + + + {{item.name}} + + 确定 \ No newline at end of file diff --git a/components/footer/footer.wxss b/components/footer/footer.wxss new file mode 100644 index 0000000..95a6ba4 --- /dev/null +++ b/components/footer/footer.wxss @@ -0,0 +1,39 @@ +.container { + width: 100%; + height: 100rpx; + display: flex; + flex-direction: row; + padding: 20rpx; + box-sizing: border-box; + background-color: #fff; + align-items: center; + overflow-x: hidden; + white-space: nowrap; + border-top: 2rpx solid rgba(7, 17, 27, 0.1); +} + +.scroll-wrapper { + flex: 1; + overflow-x: hidden; + white-space: nowrap; +} + +.scroll { + width: 100%; +} + +.text { + font-size: 32rpx; + color: #333; + padding: 40rpx 20rpx; + margin-right: 10rpx; + background-color: #f5f5f5; +} + +.btn { + padding: 10rpx 20rpx; + background-color: rgb(26, 173, 25); + border-radius: 10rpx; + font-size: 32rpx; + color: #fff; +} diff --git a/components/path-view/index.js b/components/path-view/index.js new file mode 100644 index 0000000..39c9126 --- /dev/null +++ b/components/path-view/index.js @@ -0,0 +1,242 @@ +// components/path-view/index.js +import toTree from './toTree'; +Component({ + properties: { + value: { + type: Array, + value: [], + observer() { + this.initView(); + } + }, + // 非树形数据,仅在value无传参时生效 + unnormalizedValue: { + type: Array, + value: [], + observer() { + this.initView(); + } + }, + fatherKey: { + type: String, + value: 'pid' + }, + selfKey: { + type: String, + value: 'id' + }, + rootValue: { + type: null, + value: null + }, + pathMode: { + type: String, + value: 'mode1' + }, + firstFloorTxt: { + type: String, + value: '顶级' + }, + btnTxt: { + type: String, + value: '选择' + }, + contentKey: { + type: String, + value: 'name' + }, + // 保持位置 + // 如果开启,数据动态更新后,会保持和更新前父元素对应的界面一致 + // 这里是通过记录下更新前的父元素的唯一标识符:id(或是selfKey中设定的键对应的值),在更新后找回显示出来 + // 所以就算更新后路径变了(父元素本来在第四层,变成了第二层之类),仍然能显示父元素的相应界面 + keepLoc: { + type: Boolean, + value: false + } + }, + data: { + outValue: [], + currentPath: [], + // 判断当前是否已正在执行修改路径的方法 + isChange: false, + // 映射value值,存放树形数据 + normalValue: [], + currentFatherId: null + }, + methods: { + initView() { + if (this.properties.keepLoc) { + if (this.data.outValue.length > 0) { + // 记录下当前界面元素的父节点id + let fatherId = this.properties.fatherKey; + this.setData({ + currentFatherId: this.data.outValue[0][fatherId] || null + }); + } + } + // 优先使用value + if (this.properties.value.length > 0) { + this.setData({ + normalValue: this.properties.value + }); + } else { + // 将unnormalizedValue标准化 + this.setData({ + normalValue: this.normalizeValue() + }); + } + + if (this.properties.keepLoc && this.data.currentFatherId !== null) { + // 得到父元素的位置 + let fatherNodeLocation = this.searchLocById(this.data.currentFatherId); + // 父元素的位置即是我们希望得到的当前路径 + let currentPath = fatherNodeLocation; + this.switchPath(currentPath); + } else { + // 设置初始的输出值 + this.setData({ + outValue: this.data.normalValue, + currentPath: [] + }); + } + }, + tapItem(e) { + // 如果正在执行修改路径的方法 + if (this.data.isChange) { + return; + } + this.setData({ + isChange: true + }); + // 获取当前点击的索引 + const currentIndex = e.currentTarget.dataset.index; + const currentText = e.currentTarget.dataset.text; + // 如果当前点击的标签还有下一级,就将路径改变 + if (this.data.outValue[currentIndex].children) { + // 添加索引如路径 + this.setData({ + currentPath: [ + ...this.data.currentPath, + { text: currentText, index: currentIndex } + ] + }); + this.selPath(); + } + this.setData({ + isChange: false + }); + }, + // 选择路径 + // pathsIndex 是 paths 的索引 + selPath(pathsIndex = this.data.currentPath.length - 1) { + // 判断是否在第一级 + if (this.data.currentPath.length === 0) { + return; + } + // 根据路径修改 outValue + let tmpValue = this.data.normalValue; + // 如果 pathsIndex 是 -1 就应该要回到第一级 + if (pathsIndex === -1) { + this.setData({ + currentPath: [], + outValue: tmpValue + }); + return; + } + for (let i = 0; i <= pathsIndex; i++) { + let item = this.data.currentPath[i].index; + tmpValue = tmpValue[item]['children']; + } + // 更新 outValue , currentPath + let endIndex = pathsIndex + 1; + this.setData({ + outValue: tmpValue, + currentPath: this.data.currentPath.slice(0, endIndex) + }); + }, + toPath(e) { + // 如果正在执行修改路径的方法 + if (this.data.isChange) { + return; + } + this.setData({ + isChange: true + }); + // 获取当前点击的索引 + const index = + e.currentTarget.dataset.index != undefined + ? e.currentTarget.dataset.index + : this.data.currentPath.length - 1; + this.selPath(index - 1); + this.setData({ + isChange: false + }); + }, + tapBtn(e) { + this.triggerEvent('tapBtn', e.currentTarget.dataset.item); + }, + // 将非标准值标准化 + normalizeValue() { + return toTree({ + value: this.properties.unnormalizedValue, + fatherKey: this.properties.fatherKey, + selfKey: this.properties.selfKey, + rootValue: + this.properties.rootValue === null + ? undefined + : this.properties.rootValue + }); + }, + // 通过唯一标识符找到元素的所在位置 + // 这里特意用了loc(location)表示位置而不是path,二者的区别是loc还包括了元素自身,而path不包括元素自身 + // 如树形数据[{id:1,name:'1'}],id:1的位置是[1],而它的路径是[] + searchLocById(id) { + if (id == null) { + return null; + } + let tree = JSON.parse(JSON.stringify(this.data.normalValue)); + for (let i = 0; i < tree.length; i++) { + tree[i].__location = [i]; + if (id === tree[i][this.properties.selfKey]) { + return tree[i].__location; + } + } + var stark = []; + stark = stark.concat(tree); + while (stark.length) { + var temp = stark.shift(); + if (temp.children) { + for (let j = 0; j < temp.children.length; j++) { + temp.children[j].__location = [...temp.__location, j]; + if (id === temp.children[j][this.properties.selfKey]) { + return temp.children[j].__location; + } + } + // 当前节点有子节点时,将子节点放到当前的栈的前面 + stark = temp.children.concat(stark); + } + } + // 如果找不到对应id的位置 + return null; + }, + // 直接跳转到指定路径 + switchPath(pathArr = []) { + let tmpValue = JSON.parse(JSON.stringify(this.data.normalValue)); + let currentPath = []; + for (let i = 0; i < pathArr.length; i++) { + let index = pathArr[i]; + let text = tmpValue[index][this.properties.contentKey]; + tmpValue = tmpValue[index]['children']; + currentPath.push({ + text, + index + }); + } + // 更新 outValue , currentPath + this.setData({ + outValue: tmpValue, + currentPath + }); + } + } +}); diff --git a/components/path-view/index.json b/components/path-view/index.json new file mode 100644 index 0000000..a834f67 --- /dev/null +++ b/components/path-view/index.json @@ -0,0 +1,4 @@ +{ + "component": true, +"usingComponents": {} +} \ No newline at end of file diff --git a/components/path-view/index.wxml b/components/path-view/index.wxml new file mode 100644 index 0000000..784ed26 --- /dev/null +++ b/components/path-view/index.wxml @@ -0,0 +1,45 @@ + + + + + 返回上级 + {{firstFloorTxt}} + {{item.text}} + + + + + 返回上级 + {{item.text}} + + + + + {{item[contentKey]}} + (进入下一级) + {{btnTxt}} + + + \ No newline at end of file diff --git a/components/path-view/index.wxss b/components/path-view/index.wxss new file mode 100644 index 0000000..9649566 --- /dev/null +++ b/components/path-view/index.wxss @@ -0,0 +1,56 @@ +/* components/path-view/path-view.wxss */ +.path { + display: flex; + padding: 0 0 0 10px; +} +.path { + min-height: 30px; + + flex-wrap: wrap; +} +.path .btn { + margin-right: 20px; + margin-bottom: 10px; + padding: 0 5px; + height: 20px; + border-radius: 2px; + background: #4b0; + color: #fff; + font-size: 10px; + line-height: 20px; +} +.list-view { + width: 100%; +} +.list-view-item { + position: relative; + display: flex; + flex-direction: row; + box-sizing: border-box; + margin-top: -1px; + width: 100%; + height: 40px; + border: 1px solid #e5e5e5; + border-radius: 3px; +} +.list-view-item .title { + padding-left: 20rpx; + font-size: 14px; + line-height: 40px; +} +.list-view-item .tip { + font-size: 10px; + line-height: 40px; +} +.list-view-item .btn { + position: absolute; + top: 7px; + right: 20rpx; + padding: 0 5px; + height: 25px; + border-radius: 3px; + background: #4b0; + color: #fff; + font-size: 14px; + line-height: 25px; +} \ No newline at end of file diff --git a/components/path-view/toTree.js b/components/path-view/toTree.js new file mode 100644 index 0000000..2ed2680 --- /dev/null +++ b/components/path-view/toTree.js @@ -0,0 +1,34 @@ +export default function toTree({ + value = [], + fatherKey = 'pid', + selfKey = 'id', + childrenKey = 'children', + rootValue = undefined +} = {}) { + // 复制对象 + value = JSON.parse(JSON.stringify(value)); + for (let i = 0; i < value.length; i++) { + let itemI = value[i]; + if (itemI[fatherKey] === rootValue) { + continue; + } + for (let j = 0; j < value.length; j++) { + if (i === j) { + continue; + } + let itemJ = value[j]; + if (itemI[fatherKey] === itemJ[selfKey]) { + if ( + !itemJ[childrenKey] || + Object.prototype.toString.call(itemJ[childrenKey]) !== + '[object Array]' + ) { + itemJ[childrenKey] = []; + } + itemJ[childrenKey].push(itemI); + break; + } + } + } + return value.filter(item => item[fatherKey] === rootValue); +} diff --git a/image/home.png b/image/home.png new file mode 100644 index 0000000000000000000000000000000000000000..3315b13a0b2c1ebf6ad0423f1cd9d6fb6b0db2b2 GIT binary patch literal 1155 zcmV-}1bq96P)&J!Vh{`d3AJEpMM8~`gF^Ao!L4k!Z?c)4ne1BU3%}dU@B3%p zdo%CN20?`i6)IHd4#F_(3&XIl+d7sNNs{yf6Tm$1SEJ^Ei7P$~z<}?YjJMXbneFPf z&cacv)m8y@U||vS7wep)y+IIM)otB{K+^5NTT3wBTCY0iZt1rET!`a%4KR~p@St;U zz&SSne3)|0RFWk9-S*KDoO8P*o$#1i0P167V>ev9c4%nm8Z&zm_}Lc%@L)H+WQLhN z0i5-i`OeH(@RAvE9N%ST@2AY=4}iOu+RMz=0dJ)AdKb8}OfQ)MY&WxG9dC6 z1D*!Xdq&eyGuu{%m&^bh@Qug(8DLKV{T~Is^7KC`saAxCPKB)mo&kRK{6fbi?I?;% z(iSuO%oDrI1Q` z9Qe^={_8l7!%|2W*RvHk;?Z+X(%yQ#esv*4!^6WjOL`f&;2}E#JWvQx2Z*9*J@8J- zS~QV+Gv%DyAnCo7`F z3;0>*+=jdjFL{&{q_Z?gnrznVoEym1unM3GpbDT0psWCrBGXl<*wl$w#WrBj}s3;?(v_+km>|2=zf&OOozSI-3itj7Q8>_X#p zbv`A81?SwoS^0V~fR|d00ehOiAvA4SFFT0I%GZkl%r@V@*!%`wYvs%Ol<36(n$H(! z+g!WaGYT?&XY9oQE?MET@?|wp1yBW01yBXhvjIq&%*xjb0nD|S$aFBeoB2Y z9dR75$)fi%q`aYZRGkEnvrgwS9|S=lX(#YYL4q=`0Xb`5?f@F1_Tm3xoT<$0z!JF9 z{#~Ax>rlO3Ur|T^K@bFHwn@^*t#d3xO-b6=jz`j9ju7U6!$lmdRH#s)LWTbW{ssz^ V@pG%$&9?vm002ovPDHLkV1geCGyDJm literal 0 HcmV?d00001 diff --git a/image/homec.png b/image/homec.png new file mode 100644 index 0000000000000000000000000000000000000000..46444aab2d7885a7108ddb5a695243c9bddca853 GIT binary patch literal 723 zcmV;^0xbQBP)X@7+7+z32Suw?6;xt9v{5o_nJxBqSsxBxFe= zX$W`-yaA?x2}$QlrP2!DvlW^oN&0{Z;Kw4Jan9}XJ!c^S`s=_~`_9Zx`JOk|04IRA z8Q`n^YGxNkMn=~7p1q}%N~P73&I6wsfUoUMV4H7_rsAC2BI$aQ;I(}K9PrK4P@Hr7 zB;CsazS=2CCEr|`BIzjbB1iaY=Omp?({#CS#=j;_(`9CM#>_qx0AJgyaU5^(&HG#8 zI9>}}Dj2-Bcg$?JZ|*3HqR7m40=JhCzS^gf27JRG1|EBWuXY+Z=?fmNE7lH4-L0YMqjWxV!isN{Pq+7m+ z&#_O;>_{efU^A6>b-stryPwVMU={(LbhB%;vvmcS*|Rnnw5ZP46(DIpQ1m0MkItCc zu}t@YKQ0O1gSS-Y+}?(vgMc6)2nYg#fFK|U2m*qDARq_`0(=8>tANRcH_g33ucSkg z9{n!@#?v(IS!AutT`#~nw{Eeu(lqU%a^Ts$0_v@o_oWa71OY)n5D)~kDBxu$3ox_o ztqK_LU;*_{f-(#=0L*ow05iMLvVbUxB48Bwmcvk!8P>{cJ3N&n$;w;=L{a5~NJ(Qf ze{?#2Ehmp z9cp>l3>5?wBGej6kswt%I7H0wgbsmr$j~7}kRYMN;hpz*oSgge{+xU69o`4-^5Ffx zzu)hkfA{x0mCA?_BSwrEkvm%JaS>S{SqHE|@-fLh^EAwFbrD&JqUdDN{(6JtWs(m_ z?vp(1@i{R6xm>jW0|VfFl0Wtlbk?&*a=z$zdPZw~T0~YzKKBrO>v=9BD_ZN*MaS0_ zk`rbwX9dy_k!1jLB&W63<67%+lG6a@L}Z!dX4e0W?TMn}bV721WFu=B1DNT<)-=gG zSxGEi64Eps%XstKB65CEy8vcfNd>Txrs9e@o0Z~NAYSx`L$C^M1Jy_=)Pg|kaK7` zHSnB24iP!;&|An$?^sBFZ#i^3facd$0`BFl>BQ{c`_}O9d8-?gIF6?rYfkuW5x}D5 z#BTw$?^%gQDD5^R>()?Q4ygT+mHc`r?Kbwo2f$n?ZIT!4ohOubrxSl!d-7YMv_<5s zH3Bw6X}2M{V>$71DD7IUcFNM;38mdeM4ogyQLEKXh0-oX0!aSR>4et$Oek%w^_enE zfi=sC3jwu@Uj$9nr_+h0P}%^N3f~4vUbVjf18P6Ck{^ZAZj&U*B%9USwj*&IPvxy! znxk-~QmKf@s^!S7yfsPQwlweOt(l1_ZU*}tb`@U=8U8Ki=jUG}dEb5`B68NZmQrdK z!0%SF?-t%g0`Q(=POkYZTAH@nBU`8Nl2{7>pE{E84awc(ykC~Ig)TdvaXbRrB_=3W<=z!!`30mozk|*OcJs>I)~-} zb4@8#O_F3XP1CU`icZ9FJf)PXniF1TYmDTdr47Cla}QvzOCWteBC;Aq(TSpC>lxG5 z>gP^C*3%G?OGU@iGp37kjYkV6{XUxjlF}`9-2m_bn^#}@3G{&Ewy80G2O#NZ!7K%A zwzIn}UWX)~iO4E|sI>_8GpE_C0c?|eDk96J85zd0tl_@TX8C;RVu@p0TradQSgEvw zcdhn&BtQ4LWo6tyXwbuHb0CybS7_A(T6=wxB$K}NO#Q(%(sq?nv%dAZk`ep?fTcX= zrb&Wpt=Y*V=}tuCBFTRo3*3hx^Z~p|@|GhBzmR-AcLzwW+izYebtQM;ZG!w(kyYDW%@^(pX`{q_qlMs{HC67J?Q3e4Bt zu9bk#ycqWgn_r-vK0fwhSVS&ahX2ds9^kM5c+D{iE)H#&*lL*GmhhPMf)>i c#E5e9Kdm&}k(r?>O8@`>07*qoM6N<$f{LMPivR!s literal 0 HcmV?d00001 diff --git a/image/mec.png b/image/mec.png new file mode 100644 index 0000000000000000000000000000000000000000..f9df4d06fdfcc49598a6c7702660bc47bf2b6f03 GIT binary patch literal 892 zcmV-?1B3jDP)CJkM_{;U7&1zqXfwcO-4|Hmy4$gol84r-WbIpMd>?!Qduu-3MH>*+rMf=nD%Aw*wz{V1O5*&73Un$Rn)?bVO$GolA zjihZ{eXHBXf%h|Ta5x;^;q6>AS(e=;=@sDj2LI(hF|%FXwuvGsYiNM;A%xA|o^@w5 z8a)CWE>G&FE`c+W^7;AsJH36^4REiS9RR*;@c=vx>~?t!zE*&pT>W6u_8p))5SM^C zZ+DU;Nn&PufL~+bYX{?}lAd1AZ&;vLn3SZ;Aa|0pLgn;Pw6$ zLU<+?K6C)QTE7Y*Y;6^9W)DmHtOM9pE9rQern9XL0KDmqTu1k|h2Jgdj}8EDcqugg zy1e`~NSEFQ->A*LE0mOX05wUkWLfq^V*>ymbO1GJk2Hm!>i}jWz0k-D6a0P%Id#qK zsU`+E=?$5pFEuehj0c@C@+boxcGLu$&SE SHQQ_e0000LKG~vOe3b!ELfyS5iy8_6c+gb7Kv;Taj_E%13?r7QPbH7evl>* zQ<(h$A*K)%O<|ET#YO}RMK;Bqfyv!FcV~9yI%na$aA3*o%=_MFW^xb90hLOnQmIs` zd};tKU=`?8TyKFkFcEUWv1-5q@C)b(tfxRd*y@2L0gD_|tDzR(K<=HlYc2$UmSxff zR)8sBvchTsdseo!VHfGsbIW8ogvpSa<#@K85GEbVWGaNokgC!D8k8;@z+?!M0#X1d z00p1`5CC8r*meXeTD!oEC!ZJq8;&q#)kjZ0F#t9lValqGC!ZJqGnmIU#4B*alTQqQ zs-yr=017|^0PO=DVah7)13dY}0MI_5A}IhAfC3N!K>Gkkn6gUy08c(K0JIONND2T2 zpa2vA3Se{qoX5-@Ek&P;YGeSM0qz3d64&|;+yl-P$Tt!IW`TA3!^ZUixH)7#(Eu(0 zkAXwd7a!Me;2Cf!XFjn2=79s;i`|dPb*zh-0IOy65eHz*aZX%+F;7H2s)y0vT;JU$ z+Ze1E01e34Pwxb8UbD)1)doI~IVFz(4G0>C`59}4Gc*pTyhnm*$ueny1QEkg) zAGm^<9`B|E{ek~ytU;OpKBrte{y#E?8JSNW+bH1a4Krv9ONLvaoYD0fW;e()sNF8X z*QrMt%-;jo0(dupm!$6&ajjFVqx9+&{f}E*UEo$I5a1ZL&8_DwRqFz!8LP!qcBn^aua|002ovPDHLkV1i?DFns_3 literal 0 HcmV?d00001 diff --git a/image/todoc.png b/image/todoc.png new file mode 100644 index 0000000000000000000000000000000000000000..62d13aced861e0b24c72556c79309c345b58cf1f GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU_9>W;uumf=k08LZ|6XX_W2tU zA_OLHbDhoIwzktzt?6hj!(zw8g9dBZnmd|YV}xA-QVy|oALdsu>orE z<}yX5UuNFT$YZ%CYhBxU!FQAYN2iK2X)*GoMNijbnZs%@BiD9^zy-d94Hl}5LJA;c z$FiltmHlVsg2bE6;f$){4+T$8v#k)_@JPuf>EtH%^-NMT9?vqXT#$FOxsFBEfl1}S zY=*ncF)i*dv|rKp>9D1KuIR>I=AK zlDAoHKH&J}rVGak=GV6S>P2_>X)1d#`p*cxJ(E!~GJ$>bbMZM1-7UQ}N#Dx54L6B3 z2tTk*d{+EOlYPVV1rw_iid)X`E|{tCJ+I}=K9MAo3#@#e>7};KH-q~&uZZh3eJ7l?kYT^cmn?clV|c$dz xPAHQ(C>VUe?t@e)ckvtJ { + if (res.statusCode === 200) { + if (res.data.code == 1) { + wx.showToast({}) + getApp().onLaunch() + wx.switchTab({ + url: '/pages/main/main', + }) + }else{ + wx.showModal({ + content: '账户或密码不正确!', + showCancel: false, + confirmText: "确定" + }) + } + } + } + }); + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + this.setData({ + mpopenid:wx.getStorageSync('mpopenid') + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/bind/binduser.json b/pages/bind/binduser.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/pages/bind/binduser.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/pages/bind/binduser.wxml b/pages/bind/binduser.wxml new file mode 100644 index 0000000..9b66b3f --- /dev/null +++ b/pages/bind/binduser.wxml @@ -0,0 +1,23 @@ + + + 登陆安全预警lite小程序 + 首次使用需要绑定账号 + 请输入预警系统账号密码 + + + 登陆 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/bind/binduser.wxss b/pages/bind/binduser.wxss new file mode 100644 index 0000000..9424940 --- /dev/null +++ b/pages/bind/binduser.wxss @@ -0,0 +1,5 @@ +/* pages/bind/binduser.wxss */ +.weui-btn{ + width:auto; + margin: 5px; +} \ No newline at end of file diff --git a/pages/drill/drill.js b/pages/drill/drill.js new file mode 100644 index 0000000..e4b238b --- /dev/null +++ b/pages/drill/drill.js @@ -0,0 +1,66 @@ +// pages/drill/drill.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/drill/drill.json b/pages/drill/drill.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/pages/drill/drill.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/pages/drill/drill.wxml b/pages/drill/drill.wxml new file mode 100644 index 0000000..07b5388 --- /dev/null +++ b/pages/drill/drill.wxml @@ -0,0 +1,2 @@ + +pages/drill/drill.wxml diff --git a/pages/drill/drill.wxss b/pages/drill/drill.wxss new file mode 100644 index 0000000..fab7d81 --- /dev/null +++ b/pages/drill/drill.wxss @@ -0,0 +1 @@ +/* pages/drill/drill.wxss */ \ No newline at end of file diff --git a/pages/footer/footer.js b/pages/footer/footer.js new file mode 100644 index 0000000..6419193 --- /dev/null +++ b/pages/footer/footer.js @@ -0,0 +1,66 @@ +// pages/footer/footer.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/pages/footer/footer.json b/pages/footer/footer.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/footer/footer.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/footer/footer.wxml b/pages/footer/footer.wxml new file mode 100644 index 0000000..fd00b98 --- /dev/null +++ b/pages/footer/footer.wxml @@ -0,0 +1,2 @@ + +pages/footer/footer.wxml diff --git a/pages/footer/footer.wxss b/pages/footer/footer.wxss new file mode 100644 index 0000000..557c47a --- /dev/null +++ b/pages/footer/footer.wxss @@ -0,0 +1 @@ +/* pages/footer/footer.wxss */ \ No newline at end of file diff --git a/pages/images/accident.png b/pages/images/accident.png new file mode 100644 index 0000000000000000000000000000000000000000..63bc751480e21b825891871586c70f2e49ccc096 GIT binary patch literal 1588 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 S+xk5CSP^v30FMUuD8Zj`qw8=0 literal 0 HcmV?d00001 diff --git a/pages/images/icon_footer_link.png b/pages/images/icon_footer_link.png new file mode 100644 index 0000000000000000000000000000000000000000..8e65c75147cd033ca2f5f0c46ca330b33805867e GIT binary patch literal 1697 zcmX|BdpO(Y7f%o&>egS;`X!VpY1~FaG#blST^83=MX`raG^RvVtfmbSU4K)pE{GPT zUzfIICN=8zn`|0N-5T1u6m6A?mbR*_8yS0_ZO_j0yytvA=X}n2FMqtbi~w(Kj4=j* zKxorH_Xq;97A#8*Rp8n7d+k6_V?+KB0?~L`OBsyZ!otwdP1ogc#GneOSS)sSc4o0y00RI@bUGajq0wl64IqLe{apfcKoV>X49EZm`oA^60}7OU zK7V_A8&GfypaB^4f;SlXI&umGCO0VH$iFSR|Du0@)&9K(yA3so1mjQknb`h!rzw$$ zC0c8tjEMgs+L?Wd*4EpltEyvZvBSZ}T+MzD2Ct#6f^^i!5s3)$nxp_c{W9GH3J#S$ zz8V%&^|>B@CiN?YTfyKxi_+TM-o&w(-5#hS{?48S!q#^3q!cNvznn-VX=@L8Gt-zO zcjmLq?=0Wo#d&{9)6pGr+1eFP(mKVHH~$?pWYq z#8&JiG6Qx~iEo;@61JA9q{@IA^6_pa>+u3L%sWlLSEwW0LN z-lxSDI*AFn7yV94SlclC^A>lDn*ZR!(kuOn$s*+PgvemG+S+Tn#z?&0cNHUxg8wVv zREPXO`jWd6I2xv`1h{5ulwIsCi6uDVHzjSpotNZ?4aJfnuPKd(kTyT_O>L<>%dWBRc#Wx;6TX#d1<;aL%4$H|YXRW-?HI=}> z`!yX(I8-%IgC#j6?KXmLMa^^Au+%zo?i0>Nh~D%~cqB!hoT6;Sw(F<1OvKu1nEAv< zWkm4l9lo>(Eq1?V4=V-Peq#bHRbLea_g5PSw1u?1- z(>l*Jm&AdCPO%joQ^ZLu|FzArwohZ`9>w^hA3Z&L7SX|9GRJ2!z4-}N{IQo05BBN5 z-LZ46hD&>D4$JZAPWIg0j;VVY-^yN43H+PuC{#}e!(aUg1<55qo4*ZFBFqc}LTwFs z{k-5(6N5r>IAt&gh35@udesnZWtlYFYC;GZ(yy>>B9$GYKGMmG!ewOSipJ6YJAk|bo z_oykCf*6l(z`aT`t)rwtk#)6`u}fL~-L`*8G-3Yu*cTV)bMm;?)FZRLCtLDn z#UB_onX!JB=WjoA!QQ`OTp76K-rA-0S!KBAuW1SOc!DS@vd$LQS@f`W!m^|i_cHi8 zp|yQTW_wD3-5W54}Mm6RjIY(NUv!w S+xk5CSP^v30FMUuD8Zj`qw8=0 literal 0 HcmV?d00001 diff --git a/pages/images/icon_intro.png b/pages/images/icon_intro.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bf4a5f36be547f43c41d22f697f0fe173bce1e GIT binary patch literal 748 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6<90(?ST zIrp#&?C0P)#1r~Ilxq(M=N?YZ-5fv$*Iq78Ai0|hh`50aFaj#(0;7ii4O~EFyV-$= zdk;77eqJC~{GvGj9uA=sLR@<}1oi^80A)G&4)XErRVZQ=5NDC*>DDK^y zAVIJRKnBndks~5NuJIXT?%mv?`$a)&_5p1Kx{4j>7@j>G+E=xC_wa&EX6M}pWB|2u z07W?WbE@1{0qO-xf!q)B0w)*PeD3|+K)(W|lFw^K09n2zL4LuX6hxU9=0AF4w8Y;# z{@wFmo3Apx-EvJ_;{>-7UyA&d)2d-!vyXE07u|@O`%|w~g!d1tF3)H8x|{nQ+0@Q` zRDXO=*n<7b>I288PHU22*m#&-je&tN#M8ww#Nu>o@Y7k%1_Ebx?#@2{H*1Gz)EtBN z|E<`!G&)qve^$TwMkR8lY9?oFSBR^KsOh9HucmC^?bV&KA?cRFj!yO&o6ZV(KGv!`W?tSySPy0~QUw%UR4_3_PA2a0u*TRcs8t zYya$C!GtF)uNwc}@9pO^YkF(MS7D-jk^uDv!MGuj0`?3d%}aTiogt%Wj4>dx=Pxe)nqG zTbw2l(81C8J$`OdeMA(~k)8{W|Lo;Ex6V>{$;YG0@A55-|1XkzQXF@et8zlQnw;58|eWfj=|H_&t;ucLK6V5_aSBg literal 0 HcmV?d00001 diff --git a/pages/images/icon_nav_feedback.png b/pages/images/icon_nav_feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..8c037434226b1495e59f4a0a71b3240ebae37f3b GIT binary patch literal 924 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2H;>5jgR3=A9lx&I`x0{J%rd_r7- z^sofsA9h6nJ?35#oQw|?3LY}Df9GkyKvm8X&9(bCimR{eQ;v2B>`#o+APStzg|NmdS;jvVzqs)x&(lYakH4e|MmSkPF zL~LzStnt}du^YOwG=FG`6}($8)wd#P+SX|iSL5MlJ}1u z^GRI$Ec*VY*FHOzvYi2YA{cM?3Vx~4pRKzg>dvvtl5@V!%S+i`W-$BSp}&UDytz&m z^%dF+lKj8*QBQGUUjc`16m}TcmZa^x(L4|6Xw9iZvXn(^Oeq(-ehI2eFB1FOWJNB+8oR z+@I>%em2V>Dbgq)Smgm{M+9T)&1S`Lf~}#jQ_#0 zB{QDR*GiZ;r*y^ACA&SErakv;kKSh!nxYwy{czfUiG%x>tQO4sssB=}*@pF1K(!Xz z_EQti9rAv)lE+ijVdW+7mldw|y8G{*$SnzqUUTP}-qo-ZrY1#er^E=WU$r}Bx~@of zbIN8tbG02OKQcZwJlF7PnuvU_kk>OCsnjVf^1VS$&NqYqEYvw<@q=G2X-UJJ9`322 OJmu-?=d#Wzp$PzpXh4Jj literal 0 HcmV?d00001 diff --git a/pages/images/icon_nav_form.png b/pages/images/icon_nav_form.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2addb22fd2df24399756ccff14f2210b132101 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKx3?xrnI^qbVSkfJRf%L|H?mvmFK)ytPPlzj! z#tOpBWwd}2>?J{d!S@9}Y_X|exNuD`04U_)>Eak-aXQ)KFt>!;nk|)!CJ<93iRCwq#a^-Jq>UP*@F7+&efx+?2 VspVgaH@1Q7_jL7hS?83{1OU&?H821G literal 0 HcmV?d00001 diff --git a/pages/images/icon_nav_nav.png b/pages/images/icon_nav_nav.png new file mode 100644 index 0000000000000000000000000000000000000000..b4fe0f6cba28cc47f3304f7a47ad00d69c22fa8e GIT binary patch literal 579 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2H;>5jgR3=A9lx&I`x0{N>0d_r7- z^iTmNrdwQqZnY>0@(VtF^Tw+)2NgUr9xTjbN&fF6xQIb@6x5W zC%-9tF6k-wsZHYI=hqvYcB~Hiz)(~f_!?-&e@_?35Rc<;r(73mG7xax7%o!HD7vwH z$&ugx%6hc+|^FM^4N0wV8Vc zYoFQK{q&paaqSPGruTQTDKok^n`eZv#vJwPYt+ctp2gEzb?I8Vgx~YeF9p`jKTyTE z=2{lJpa6H}{)4locZp7!yia@G-shXYb8zY`4tkQ5jgR3=A9lx&I`xGB7aq1o(uw z0>wwcAPE8M1yXT9r!MP9XX zJ_+IL&dExi8h_vQm~VK7A@AIucPC01O*p3zJj3UZ>g>OHTl0m^PnmbBB%*9X-{EHG z`7E~{7(6_kt7y*^_H~Wbcm9iClr6VZet4nQTPya9k)7xBpAPZWOx$m`JzFMs&*O&- z!{2tDyTD|!$J50z#N+te>*>Kvh5~E}Z}xt_SN$GHNZ$};oVuz+;Lz{mwk0A@n>Lr% zOsP4Q`fcV;Z@rsqlmuLZS(wf&Zg}$S+XjU+zY|%0Y6<)?KEI@m#ci0%nos_WW82=q zSh-nsheTiE&Wif-?BdeQx}-ablGii#mES7u4wVYK#V4e{_71(Bf0zxA1sRc zf3w`=WrL%&G z4=t#J1EDveNk_F zZiL!{vLC%NcMe8s8>Tfx4XGnLxY>+ZvjgHJ<Fi&u#^chobP0l+XkKA^|A% literal 0 HcmV?d00001 diff --git a/pages/images/icon_nav_special.png b/pages/images/icon_nav_special.png new file mode 100644 index 0000000000000000000000000000000000000000..7c46cf9a8ef600b355d5d08e5652874b7ee54e8f GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2H;>5jgR3=A9lx&I`x0{IC6J|V6^ znx^2F|BGIr1@a|9e!-L8ZmXWW?AhF)FKqfZt_P-HdEVq~abEP*FGkjXGAs-XYfo@6 zFfj6ax;Tb-9DjTLB;O$g0k(uKzxQ2ceewTa{>rP(Zk+*YZv1ndCr_&3)I99dzSfB2 zp+KTSxSD@K&*T)wb48^bm2L-|EN-rLJJE2}uz^|r$MlNGI~!izFyJ!eTN7-(an-E1 zr~EE|%hB4(p3WMu-FANZz3rv}Dc>yoCQR?YZsaa>`%#2~*L?9y97@{`M>4%HJ?lK_ zWAtT}P}L+owzpoBx)|5;T;x(%`{h#CzqNON zd@p5jgR3=A9lx&I`x0{I~UJ|V6^ zn(9F0LG2Epq0%Kme!;TW4UMkJz1?Q_QjAG(((fJbpDueQqoi~ByaB_zqn;8#Wm7#} z978;gzrB8vi^)*H^d$oVek9^0?U^iz`#EN%?JIid-smrLwJRx$6JCZwK>_ WT4uK~OY)e40>{(U&t;ucLK6U-L2GaT literal 0 HcmV?d00001 diff --git a/pages/images/icon_nav_z-index.png b/pages/images/icon_nav_z-index.png new file mode 100644 index 0000000000000000000000000000000000000000..f32f62081188bab5a20face7acb3b82e2e7d957f GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2H;>5jgR3=A9lx&I`x0{PwnJ|V6^ znwy(DI5_y)wQCO_KKu^`KtUi4A>krGE(AP!^hiiZ$kWp^GBQ$9Qu6WR$3StQvV-?t zJO{D_OM?7@W%qsC@c!M~ZC~HYE`PS{nG6Gu?H@j%Z?B&gYBJzqz3|KB zg>q=)?En9Ryt!VOUF|jA$-PX6&scS~^mI)%jY&#Rb^EF`KF?^D*XpyF6FKo`=fs~{ zw^Zl+SaxX!*N3LY1G^ZW3WlB0o$+5p|8w3k2miA(td4xM7QQ5I&ts5tV?*NMHeTs} zqJA?+8Mti|u1ruI1QyGxUuYC`3G6{an^L HB{Ts5Bc-L{ literal 0 HcmV?d00001 diff --git a/pages/images/icon_tabbar.png b/pages/images/icon_tabbar.png new file mode 100644 index 0000000000000000000000000000000000000000..20b30ab5ed685386e1b8ea3c2ca4eb2e544b4fa7 GIT binary patch literal 1176 zcmV;J1ZVq+P)jF2udlDf#KgI|xv{aatgNi8tgNlAt*NQ0yu7@tE;7@rIM18ySuyC*x1q0(Wj@Uo}QkXnwqk*vd_=YpP!$iqN10y=JNmm01$Li zPE!Eu1o-{$-_Wd?OE2^CZ1}jQ$Jzh@1EEPoK~zY`rIv?s+b|4<<-{3IlT;WaY-)Mi z+3EYgTqzM0rMmHT{AZuIK5>8okf|>2Zf~w950{JiVy;@PV#zmNK1{A}ZtpI1xI(il zhk1^W4@5MqLEG=HW&`lsB#bzZg~rLZNIhO^*Lh3}(?^|a%BL7&0Z>>x#rS(S-^C;+ z9${!|5nz!TM3``dG3AqXe>2Jhrt(0FI zpmdf2v~rVOM~v%+&e_d0Y-9g*Ho+hQ0TCRCXjl^gA<)VsyN4jRDWTjz)TY|KzP-FJ z1XOMJQ=^spEM6?x`mL6X-SVpS>v8q5nJ@S2X;>JS*o_Ig%od^GiPmn^a?5ok81{y| zJXGi(1iqzc^w<~KJQNr@EGIVmy$p{8cAv!5ncF(Og>#+FiV0ZGhsusm(jE_x2MoZD zW&;zk{kz~8L#ckCVupvaq2!7!_tpRoF$A(NOT}`*gn33WT8keKm@sVbzpQJ;*bFc> zid9wj7Ql!hbZ}KEW_W-}u9%-pxoCin^3y4nOTsW>n^(+xj;LE1OD+M zLyV_y06Lq4hO|#E!&fUuD!0-pV7VUAe^Uo43c|&fFSo= z`o9C!vpREa=(=3*%pX$d5a)kihYly?Qs@{2D$~^G0#)5m3REd90?@gz=o|s1uo#0d zZOPJ;6t)+0Di`qNyGw~dIEH+50szgnaS&CO5aoP_f5_Hq$kzk|!Nvpw&LkKXtR@)Q zjFgJ$41bxNS2>v!r1rqv4>HSLQ+ODBVq_yleNe`LbfcU zDQlEvLX$LE+As-)cdplUz1MsG_@2-Co^#*l{_`f_8wkD2qM8 z94u|ADwSrXIvYy|6IK@dzYzFu92$qrQdY@Q5fPC?M_gPyG&J;(4=3SpI1-6uF%$|t z9AJtLf)^vVBDJ4-5h&LGn7&=7L-W9Iol&T3Ol_`_)GHtioN){*TYP&)f4k&@yFe5um zV64>l`e)VxeP(t~+%d?tT}PE(QBO%}UKRN+CdZCD?Rtw_*QB~ty26F{u52z;X2C*; z!4y+5nZD{J`5RpKk~vY(W4iP)7E_?GlD+SgCh{bIA%v?NkL9htx<-q(x>Pi2(Gh@% zFh7WweawB~6ZgXQ1D$=D0EE%kwGVf!)zX5iIgXo7JRAFr$efFN;lP2=B(H1XB(v{Q zPwlB82)klJ7;t4S8Tac5flSCeE=m|!;kjZ|W0Ns&D&d_PI?0QILm!-Tn=uwxNnSpxrKe_BgbYluGPWTXyC zl2pa`HJJx)DG{%|ot8+R_gf(dS!=vs2qX?Cr3I;p4Vn2PgSL$F9nB^f$6lNHXUBWc zUC&TAD#D7bx^J6rDiOCYD2BiiiZ5XOPzAa7Gr%k6U0ax9s!g?V(Q9*m70sJc_F*>q z8I3W9;>6T|VJ}sy*Y$aKpyy{g13OXy74Bk!(asypPv1v3BPkj%*~)>!Df6rxaj)d3 zxAsu-B-xOylHInXbLWsLxWow9tTCR*D7pLoJD#Rj2z7&S-YBi2C#DCl_ zJDtAqYjvLos9q#@WXY+C#O}e#3mTzzq_4euL<6<2V&bQjPM=roo8pF5?x~pgoBWn< z5_V*JxnoXi^*Ltavza1?|6^n;J~~fi0@;hQn(t%jOPo5Yr#LlUo&8%r`D@s;J2#aA zq^inqoOHV%_pj4VE?y#wN2lH3qs}Hh-S6P{L6I9bW-U4hF~BIu9`|Y5GWZEmw%sfD ztSVukhAj>36Y=P8{|Lt{6?8#5Tp!Ob()L{1{x)~sU?>VVgz>G;=TTEHZdG!nKe*I2 zmq^twQG=2u|32PM0>mc*Pr0P8mYXm74Di zj`W?xLt-pa!l&I0Pc`oSfnlP@j*6CsT+)bgZjk*EoNzs+uXS7G*&i5hbl?wuE|c&vHs$StTQ>?&{W3*M-|7I`NZ%+Qv`mhm zB9rAkaHn$y=6J`0fGq2PC3rNu#|cM{@{4FxW@KT*NDZ%bak~-D2sP*o1uprsS!6ur z!zbtE;}KU)(Gf&)PuQ4duuWXQPLR?<(8nXv>t~tREgK^cpx+J@@3WEO|4mLmQz4|F zjODYYcWyY{TX&R_CZx6jZ^e!XDIkzS{bzG9Xn^Zwk?9ayR2VerCR3VgGL=ypB@Jb^>jiFP|oqljYxfY6oD-4SK^n7GD(&pRed%AuOTUmhixBl%kgNf*4XHcIu`A^6 zTwVfe_R2ggP1V)+vU(Z?);is$En`#-bzL%ULV3i-P}#n^|NV3J0^R4+8%g<|m;Svq zb_jMa$|$4^w;p>nJmV>+U_2|OF<-OD};ZW_Y!dNxEL?w<3kRXnG?U$JL>BYv7uRp_149oi28+lwMN zz~`!g%GvgSyIgH`7TUb#FKdT-4Ll#l|>8IJpjoh086 zE~+_htS6yK%O^FY*2Ck~>0KR*kQm5d z_X_p2)+qF5AG!=pQbf86!Le;mw2ZbF;QKE7o5rWz(~5PH@}Hxj(b*g>pVLo>(RGBz z;WPQhMa!X8m)S3||FVQ2LZe9#VrwHl^%bXXCm7U!-u>+Uc~m#;BQy#@U&!RJHxvCP zcmOJZZwQwE-62h@L6FL`eTx#MjRK_miDwhnsBhO~+WXUO-otMowFg^d(UtrV=VWmC zqPs0)==opeoJ^<3ScIwqx$p+1%}pK+l<*^SRbOhUCO?#~2zgEeJd8&KQZH2J2|%fQ z0X@?yDi>s&bx25$@Nd3y&}%Y+Azc>GUhn6Lb0t@DHzY;wlcR`I{LzD;k>%B4M3V&6 zg~E|!H!0hsPnmLq-z>`_bDQrkJTiwH5)9^(*8{fS{mffIHFI=Iu3pP@m`YTmS}81; zTtZmnzp+8f4FpxT4!7rq5sYHxTBiZAf0<;7?BJ*tL8SQGK8J=Td@_ffhJKBt`zK4W%zf zNjt*pO%jS2?rUkh@dX%6G4Vaht?b&WvFvNTcxL-n*D&>$W)l5DPHerQiE)%XTCZA#Nkrm39hi((Trogy8xDP z5r-T)nBGd**d3CQ_y((=d=m3&^Cy}3Yc=iN*yLiPyJk<#_b&bPLOSLNUqGecPskay Wi+;|iqwTDJ9SCEB1?r4^@c#i@eA_Yr literal 0 HcmV?d00001 diff --git a/pages/images/man.png b/pages/images/man.png new file mode 100644 index 0000000000000000000000000000000000000000..d29f4d9f881c9aec811f09940c00857512d4ee1f GIT binary patch literal 559 zcmV+~0?_@5P)G5tx1V zZ4rotMGF6bMN(R9ks^qQpv4wjd?|KD#vNB?-~cnw>!S3G z(v?2R)qT$SJZqt9r?kZJL6os5%xG+sH*w1PQs74Eit_s(;8{(K(ybLPmTghKRezdiI7E5j0iVk8DhQq&vNGp|tEzF(c5Eu`063yxEVsN3bSzt; z21Mz38!&zD1b0Ar;B6pIxm1Gz@iq`eQ6$RO0Qk@3kd-h4eI5pM;8_s7(1p()@RQ2} z&emcePFWY_Xc2g9xmXK4uOwwPOTz!p-7%~kUaZ)0QylL_InJOHQAVPC>{zyz1};`R zr6mK_j3P2%EmxAVT01PugPtgR6<2a(lz}MEJC=1jQ3xAKG&;14sj7zzZ{qgQKbo$5h xS8@8={Zt(LGL6|$An@2YhN65jmM62VKLzdNnv$%IYsdfq002ovPDHLkV1k{R|G@wN literal 0 HcmV?d00001 diff --git a/pages/images/miss.png b/pages/images/miss.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9b0cc3b63e28609af49fcda03be91ed45cc15d GIT binary patch literal 979 zcmV;^11$WBP)D3RK07&q}Iy(S@mB8U8Se4sNZa#k6I{ajW@DjWcEVenmAsDp?KI(t(L;_Hg zTN|`HchdsEoZQfq^^n)e-}g9P7mURWKkGdmG5p^gZ|UrtVxrbw+0q-a!Z$j-#6Jes z!P8D+0BCf26>sa%X@`HgA~zgKZg0PwgV1TOhYmlYowA zC3kLlc~AhAkN_UF+;DBJd)I1v14t5gZgaD@YmSdc1<=~u`%$MB(5qS>rSa6OH;9*bz9>VUI9mS&SjEY6qD_5)1(vow00O95UDFD}V3gE3`e0{3sJ;3|` zxE(xv3c}Nz0r)C79uvTf;CGGyJdPGV1z{y80Ja5X3jjw2uW|t3TJ-QK2xn9%Y^zd{ z3WXg2)6>r3!`r_a6I>E}5xAx7;$p0SepztHIzIq{^Ma2N0lXHRvd+Crf@vK*_(fx5 zp~G(oCav?fmE3nhi*h}4i14e5`3kIG38s9pS%Ii2#ymf3$$cz!MewfA;4kIA42l2x zJ8St?aZYY4eZ~K)>9AWK)FU7Ih;_|F4K>vNuRkUzY(y+=1Iqva002ovPDHLkV1h?= By+Qy0 literal 0 HcmV?d00001 diff --git a/pages/images/operation.png b/pages/images/operation.png new file mode 100644 index 0000000000000000000000000000000000000000..6525376dcca85f572b533106cc390446a5d527c0 GIT binary patch literal 1419 zcmV;61$6p}P)-v9(w4(!=fV!E=%SmEbhsR$RdJ02=2kdVj`lonK#X0 zT@@?jkmOD2A|4crtTuFL_I?g2yK8x>q?dHAeeAxP24M6f!KmaVD(pSRP=W3nx8wday){_$#l+&#_ z?IB<4dQP|IM*Tkw0J?6)yu|2g`BGET40ab`wudm|2s7)<^~cXmBLIY1(-!9`!u%1! zJdX@hJZrXfYrZ4g8sa6lYXk`(uGFMq_eBQZ85XyO*?qT(>r&hwA>Pt3&j|qdF}MsM zSBKqK!#p=Cc7)kcPNx@#242MGr!E(;5N6-I0Z2gdVL$*XQre201AwI&>w^~%9N5W%!!6vr5`s=gE9|mGx2Kn{06N}8nCCUjQ(-#7eA7$zjsif(fH1Q@ za2|*NL;xZH5rD9RiU33aA^@QR5F1=($H-v%#5^DX=Q#YFnKK*K!eRd~N`>#YTQ&2v@&&;n*}xQUa}mAT{^ zT^dz3>sqnYdJSQAGy?$mL1C9II*CYT=rT}gs?&$m>?@(wWJq*5)3^;bs+XL`J64H> z1M~A`sK4*PCf+IKL8fsHC?pRcc_LU(e4J3p*YXB^*)21K0f-bwMGawAak$5kqxg2? z)#;dp)l&e;yKccu{3M75t2s|JgTHP6&&_+)dC=}PJa>gT0qN$@ePTKQnBUlce|_WV zS)ew)^|Q>LP|4@Rf(d&G@cz_Ks6+{((L&DD-*O5j)C?$=&9CggB{Ot+qzFj#&XXY3 z*&p^jK%mL&6ub(yXUUP|0WGWqiVg6;$>_hso0D$vlK-=G(3IJQi$veHXNghog1FQt3n^OUxh?_6< z%%(!BlgI!WHh!5309x5x>BiAH_y}xbeHqYxWL8GF!zq#;P6dF%Z_O9ZHo!HyG!6ha z1J3Qc6+3`X#3Rfsd&5;SOD_UQ{`I;9#su)^QvkMS^29TsWXAh~J(>i7gwpugo&j1| z0E%U{+8Zo=Fp(u-hv=bIHURH!T?I;gRbU^ecxt(Yg!f;gr}wysTg%8pr=`!{^NH%l zdSlUf*Y?$q2VRYl!9NOb8JO4YvB;2a1Ph??!N5Avbt@KRP2S5gxSpvlIHj#WP7jBE z82RoG>-lyID*Jn)0Lo@nGx)3aSQ09E4?uF_t9XU{1t7iQDBf;cxOqi;$Ui{_e}E=* zNYXI7-yetHA4O!?xaBH-nhdPho&jnj1t9t7yfZJW^!>2)jBPTkCjlhKoQj~tl>>~gG002ovPDHLkV1o9VmskJ* literal 0 HcmV?d00001 diff --git a/pages/images/part.png b/pages/images/part.png new file mode 100644 index 0000000000000000000000000000000000000000..9471d2ab54b6fa5b2847e60d6894b38c69076abf GIT binary patch literal 247 zcmVrU$p!Ee2m~Y#0j>+7OEbjY zm;CL^Pd*`dywA?t-T)z8B1rQsS4fSJEDQ)474SYRDWJ;ZV4-3!B9>?#D4c3J=c002ovPDHLkV1o7jUE2Tv literal 0 HcmV?d00001 diff --git a/pages/images/pic_160.png b/pages/images/pic_160.png new file mode 100644 index 0000000000000000000000000000000000000000..ba941704c707a34437396d22c4ab7ae7c9761655 GIT binary patch literal 2243 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 X$`DgtZ-H%p00000NkvXXu0mjfS;R5_ literal 0 HcmV?d00001 diff --git a/pages/images/send.png b/pages/images/send.png new file mode 100644 index 0000000000000000000000000000000000000000..084410da31c2bd447487bff157851feffc1d5e29 GIT binary patch literal 2065 zcmV+s2=4cZP)ZWeNrVxiZrJ})2;y;oU0&)W( zkd`WP(iWN4ritqiVi_uG8B4eG<`!F)^?5sQ z)9rmI?GNq`-R}J6?N77sy?JlW;YfX;=)jh={+{slEzbWUK+yp}3PI9GplAw^hCtCP zuGB*K{>ob0R~7J7=KCD!0w9HeG-ZVd?Pr!F^?}sSiIiDeYg;P@;pj}A4xJ$}Od>&U&1<2de# ziCdYZtqf@&L+S;jng15WTmz)zpr{=bJ+kbaEO^1A@xwgy_SnxKd?)bj-OXKrk8eqv`>OS9B>|M_w#L5YIF7?mZwDk@ zXhr11cTc|mb&iGs(zBrGC@8v|N0fg7k_Xbf3~BSI@F(lT$$~P^Mfrlh|hjU&ATNd2Jb<2q^BQ*8$BCp!p(?lQmqKgIrCtx#@S;m;ZD{Lim?g#_uyj+LwDRX(8s#>z!-j zX!Zb_Hy6oIsvC+U$3`JT>RouPl0wATeCEQ<%rmVF%?li<2avAj5oLxU^)jS=Ow!iG zLot)O&F&*+@+n>oA#x#nf2E6=@7O#>=Mf|XqR9ZaS_+X1ks5Dc zUhpJG>ftgN%DYk&y$8zdXQ;Oee{xk(#5M~IL77v9?yDCeVhG<~A!KGFNNQ(DJ|JDs zBg(%S(f~+m7hce`C>d81J8YP`?)C=-!;_HYmXcXk6T+Wd75NjhpDB8Gff!d@q-~21 zZc*p&0;FqEzM$K_bh0`Y!f_nOMcM{P(|~#glpf^DbP0d_wl5tBNXG#wig5&q=e4Cz%+^qIA5k|}y>M|bzviXs3-?U4vX#g^FWNeHg!hk)c|m%pT=uGFF= z5>WI=mLL^CvEynj1Untv&XIlvXr`?VS3y#HD~^1lWU{E_Mi(v7vn3f)BOySU7LMjv zj`Qnha^eSNk#eLXHqIU`b!;_-Xq=q95zy>qbH(CM0jZ-|jeo0bawh3%E5haGL32mR za=6M7f}M;*AH|{X8Yul@bEl&Na zhYBi3CaP4a&Q>8T{=D+_au$-J2~_x&Ab8`i!yGQ}iK0qPl$bOull)>~b|VNySDML56t%!Qj1=U1l7 zzWcLVaD0#O{S`^iQ8t(t@YqAMv}sL}+xmbIq<-J^^e>X+P86HE&)x)RYt?i5mb zsT_7U7y_E>AnB(`+E*3W!&)IAeX==Cjirva^?+$x&hM;*jTMLJ(`&#U-{Xp&C~2&p zxf@V>Hq1)!bXoO@n!=uA3_;R?634xoEr`e}*8`FUL)vE_CR1#36BR}EXVw|MSZNz8 z4k0revsLIK5*%9=ABk&%RVj&88uPnTdT*h7qsBS%xqkEJ?akI=BT3KN_2*54&nPN z04cDcvVGz8Y*r}g(?olN^#(xtqg@ThbH9(W!tD8gMNhzeCBQuWvpD%_R>5746Q5ho zw#oVvX^+=47@k`fZ>_n~JEHHhS>e^P4@fK*0GiV_3;eAs>51$isXTt-D+^F&zugv( z#k)g>G*I`o!X#lEtnp8KW&mk++5al8R0w}^6)2OA@&P@_JiWWtHq`_SX&`crrmNPr v)C?f09gwcnylGlX2rp==Y1{n&NCy7_EI4@a&it()00000NkvXXu0mjfkPGvB literal 0 HcmV?d00001 diff --git a/pages/images/socert.png b/pages/images/socert.png new file mode 100644 index 0000000000000000000000000000000000000000..ad0b7b5e1339aa61003167600c84ed605a8c0c72 GIT binary patch literal 1293 zcmV+o1@iidP)6awIrUl5!35uqNqM=X59Tba9%ruF+j@i97|5GFcR0l*gj9l^7KXMvb) z2qTT4CzbR9@b46{c>4PH%T8Rz0MHVhY$b+olX=&IOJWL+=}N40bq!_ zCMGZUK$zS=2>_Z3fZ>PkI07^YlRFN8AF2UEJ|1ZV*Cb8us8CpSCpkHZ=aIq9608MG zx*H@%-x~b@AOS^!;AROPB0l~8ul23b4}cz1%cLSQxLJa=fC-a3832MpgPSE-TT3bc z%;yj03KL|5k9r?)PwDV2h+mB*NQV(GaPMSXiEtucT&|z>=lI&a7%Fa&)PBod7CVia|0n?A$EZyNwkax2!LIpFE`kKu04*Ct)8SNcfch@Yeeo_a35IOg`gj4y4RE^RD3Vq#MTV-6 zhs%18(oh6VW(1M6aw)R9JBp@v6i z+{v=R6++?Ry;gG;#uN&2G$Te#?uP*&%cPojp2c@)``sed;T3EEMp{qcgi8^ZXW-B0 zxk087jY%VpLh451yjjBHW6NcKX3IPY_75`R&<7Y?1OBr7ain+%lZH% z*?AWu+T_I?*;TI3W4lg{VBRGd1~L$U$rhQpE72p&V)Wi}S?E08ZqMe~t`0MVEKzc` z)mz#c1VA7Vw`WH`LlgjfOa;mpSp4s9f6XFI_QCBY;!_ zq&NjG1Imj=007nFeGoi3bE+BwpjXaACu|SE1MmPm01vz$VgPy&QVyUqgaH81 z9)b~onfz)zH(%%pao#z!G^QqcN|_{u>wI0 zKrU4Ak4D2;@zpoAgnNRl08-tk2joH(-?_Wq^B$0&T}!z5zab3BEAZdz&=_z412YFC z1Ry`V*7F`PlV5cYAQ!5*QTycV71*r2cMD){zLcUlpvx1Gt~sEK9+18{zz{%M?E$zB z;M80$rEU%gP;CLH#f}zgdOTY^(HGwXjOKtY{`%0``M#M0Yyjx1Ilu;h9SD6f2iOA8 zH}(KL01v!J)P20<~PbPoVk!3aQxtFwR<0jH|211`U42KohDwLqw!0m^TH z^f^HKV6v8xQ56`c5hDPmVj&#?E?2tPoeIO{T!ue6W;LK~F;rl9JwAd^({PQ>xX!+3 zO$v1iP`=hIejB*DAE3P8I(K3MK{quU(IbX()OFrO#iokq0ad+S;Q`W9#^seDkcV97 zOU(XiZ@l9R|MpXG+xqLHDw# z&biKKU5wM!UHAMULv_h@uAV5HEgWY^&;Jx3fuPId8yH7#(n( rr>7bVqha6@$HHjXbrvr#FKhY@SthibElnWw00000NkvXXu0mjfYgtP% literal 0 HcmV?d00001 diff --git a/pages/images/suggest1.png b/pages/images/suggest1.png new file mode 100644 index 0000000000000000000000000000000000000000..7149e8fe3dd19fcf02de5d113d2dbfeca649dc6c GIT binary patch literal 718 zcmV;<0x|uGP)B~ZdG!4mj%WHZD25RnH60RkjFD7=Xvih zI3x4*K$Mmad_i|+2?w1v43Y{8_(`69brM>`+M#t$g2v3TOO%Rg}o6{gc5CmaT zT&wpkNS$(co{h%oI>^>RAg$O0q}nv)K7yEDos5FXk_m-z8^bRUEIDA#lj5@Ig9Ttz zwF!Gye9u5$V+Q=0+*)L^WG2lZA3-LMy{a2Jr^jytdC!)w-83dk*6xUP&cPXrDw8Fv zs@3Inh~XO00U0>$IbhlO+;I$@zFsqX z?-$Mid4~)AkiL$5@9Z;Km4(8%-PiEuDx&Z+2>0M)d0hzi!5r`#__8PNyjIR+J zfP7M?tKMn<5=@p%07iEDwpKyv%ogt|4Iy|^Tz${FPYx8lff2|r8Z*>_htpET307*qoM6N<$f?4W6 AVgLXD literal 0 HcmV?d00001 diff --git a/pages/images/test.png b/pages/images/test.png new file mode 100644 index 0000000000000000000000000000000000000000..e4003c8d36b9f50071228ba4e94f3e48b0b80c03 GIT binary patch literal 2927 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 literal 0 HcmV?d00001 diff --git a/pages/images/troubleb.png b/pages/images/troubleb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5dae5344ea1f2df697850193e4235b55f070c4f GIT binary patch literal 2053 zcmZWqX>2>*=7v!G zqGCGF9g9y!?m!malFrXwk!?3+->Wc2yXb`Lq>VK;M3B1pS{>8H;aYmJRQo^ttPgct z9R4{dqfDRV5c4X2@Er%eg};kr5}2<}s$Z*VwpqwIOf9Y*Q@0SLd-)BQyfAZ*p3W$i z_AM$1(s}RO_H#fL?7$2fonFal&@|{35Q9O>4{^igxAq}lPE1$Gr;J>EhT8JYtSWXe zi}4zm)daS5cRpM(sQu`w^Lv-0*^7xreBJ!hqoSj3(e#mFNerO^Au(KY-=W!{g4idq zRg4&YVoO7FZVJoVh~6=}Ua?~21zLT14c4gK4agj&XW zy^=pv0qGv65$Jl7IHY?2#0{s6PA|pe?&)V13-vEjPacq1yD!I2r|je#>7}vU`^j@g zkL=8w0%ok5y(x00vRcI8wQlhUtTL&gQ8(zO1-Eo6j$ia{2RbS0A5Z2AK5Vv0MrgbE z#>V)W>laggQx^?o~a{nw?cTb=Y`gnyw;hV83-dW;z%4_PRXEtbL10i8hL~LxfVx57~zgji&dh z^;57n6MdsgDBFrTF@44i{|!XK670_k-o^uQWfrUt@XC0TCn_%Qd@GC65yfv*qUh={AOC;2Hl4n&>Yyv&7Aiw^LX~ECPI{_5$&nj=@#vt#swNp^XX z5pEn+KD5XG=t+mjw{aXSP0h?)smTu8wg&!jRGabuIRZP^a^-1(@yG@F!L+#Hctbh% z6RKKKmB_Gu_BEzOE$%?)CYL3K4rQ3E)1$lbQbE(#hpyRo(^|B~DW;-am3(*M7<|4^ z^8o2M7+0Z=p1SsQS@anBOKF6#r>lDYy2H%U?W``#@i=o0#Db{+npPH_oTXJt7Js0m~&ZK%`A^HIP>fB zPyOl=t(_hFKa?mIQvEN8<=ZPCQV8KjFPl(esUr|9Q}rUTmA^Yw>KW&a_L&JbZt&ed zXvpZ+GoG}!Z%9A<70TM*PF|Qz#j?l{Q9c>(D&ySgCkss6y7Tybrj?^~%UXYyM zs9bL`Vl}56o;!@s`qSx~;Fl&CzpCU3p;LjbAyd^FqV3GMi-TMx?$bxRL5MB(vdES8MLJ7Ybd$L2wj z?7sv;F-MS?u__>9up|u5Eeb~0zGr2^UK+?C6cW(e3~ yk*kO+1KAuAMj+(<2V{#tse}#UaBf7mzdg~-720;)yG%W38W0i~N@?~_$o&gnAzF+8 literal 0 HcmV?d00001 diff --git a/pages/images/troublec.png b/pages/images/troublec.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdf2167588db61b972a58ed071d4032c257b863 GIT binary patch literal 2194 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 N3C5c6>p7?6e*tC{8ma&Q literal 0 HcmV?d00001 diff --git a/pages/images/watch.png b/pages/images/watch.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf0c163575852060b4c88b56d84284c8567ee28 GIT binary patch literal 1847 zcmV-72gvw|P)fM%iVYP^#=AO z+5L8YGrKdhGjopffDj08Ga#J+q-*{-%7ogPG+#|2CiNH~Etv*K5=rydP~u3!2LArg z2b1PAcIqDceGQ#=NyP2gnhIGm>{}(o?UPuZ@O$1W!1EhbA zniupvoBVT2)f!P8Y8{b>N&O8Mh36~Ry>XbH0aTY-+U>E)na4n= z&uyVCAbr_AR(RI97S#tW?e;>Svx1I5uC&&)mQ574SX^XlxV^CFEJqse7hZ>LJxH2p zS+@sAiqC;iUk4of18&A^x2@+$J%IYJmUMe*)Gq?+?<~LZZGO{ zHt-u+oenrTp@SpMaHLadskS!*^F3md#dRUzBc-na^_6-AP#JP=NDFYtGrHQkiA{Lh7}A1e^SN5? zVfi%aD}Zz-HbG=*D0cAu!s`Ge%ZrZY`o_J^*f$L!H{-Q~)W;3{oQQohF7;_Mcs-p2 z_+nounFkKM@HSYC@nY=t0zmRAH%bf7jdhb% z^Q5PYr&8+C25eSs{1UzQmgtco<=sraE&dIS(OO}D>>EYp#~=WXG}AXe`*dSAM19a0 za0nXg8}~ZX!rQQ#;pR%IdiZfOUVFtA&<#D2Y2mqXMr(ky2vQ%f=eWALQVOy(1X&tt znC4d!ARUca2#tx@8byX(6C3r5`3?~D zLp8JNLQhsd8MeOb*zLzT>fL~JewEkjHzw(0E@rEWFHI#7WGQn|f7n_->tyL8h&<*K z>n!a)dUK7r^GluW9=rLdZ5^AOc?6K&4>;d?kn}CaAyC>btp8%FhiLp6v+;feAHiV!-x< zb~E`ld&a5Ecoe(gIAz-r{H+GR8+`3oB`R#%4+l?YD%~2J@V1q6fqJUkL0Z^fHAfUi zz#g#8rG>YlAp)>zAB4BrG#`TA7+JNidVXQQ1(?^9)f-pN^&fG@6h5Gyjy+!RGsp8L zEgHdRX~+iNl-CO{qvm# z!IiAS-dMl~Xy2Hkwq2E=(w61>kpTHZxMf&#H5LIdNuL@%ezR9-*9=CzYXOnl@!7Po zA1KOmoS}Nh$RFyxfONZRjihhu2460d(_&QZJI=imW75bHNPXP2Cd6AT0h*JweqF=t z5wbd6w*V~B+hSPI!G-FwF=k4Z^kntMfZC){;6dOy>ce$|w`o6WwufP1uMH4KI#uba zd{0mn{&J~LSI?y(tLBl;$C5%1(tcUPdJ0fa2j%~Qej*1**DC#czwkOZssWB9m?(@? zR;ArsDFx-<8`=bWIkp%8Oc@`kM@>hM3)L0y9aE9hH*B;3QjdmZe#-9&H2?uU2eE>; zb$Iw~@zqB!q-=Ez_V=eFUB7Ig)m$peKipF zJzog%HA}3t5sfLEMN3z$rf$b3ylnvuSgRTgX(6^~&nSQhZEm&PJ2zKK`Nq){Uql6; zZ%QU8`0nZ}_1rr+{v>y4dvcJqT~JpV65Eq + + + + + + + + + + 平台账号: {{username}} + + 昵称: (点击进入个人信息管理) + + + + + + 资料管理 + + + + + + + 我的特种作业证书 + + + + + + + + \ No newline at end of file diff --git a/pages/index/index.wxss b/pages/index/index.wxss new file mode 100644 index 0000000..ef6e13f --- /dev/null +++ b/pages/index/index.wxss @@ -0,0 +1,5 @@ + +.weui-btn{ + width:auto; + margin: 5px; +} \ No newline at end of file diff --git a/pages/logs/logs.js b/pages/logs/logs.js new file mode 100644 index 0000000..b2b967d --- /dev/null +++ b/pages/logs/logs.js @@ -0,0 +1,15 @@ +//logs.js +const util = require('../../utils/util.js') + +Page({ + data: { + logs: [] + }, + onLoad: function () { + this.setData({ + logs: (wx.getStorageSync('logs') || []).map(log => { + return util.formatTime(new Date(log)) + }) + }) + } +}) diff --git a/pages/logs/logs.json b/pages/logs/logs.json new file mode 100644 index 0000000..28379bc --- /dev/null +++ b/pages/logs/logs.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "查看启动日志" +} \ No newline at end of file diff --git a/pages/logs/logs.wxml b/pages/logs/logs.wxml new file mode 100644 index 0000000..b5a85ac --- /dev/null +++ b/pages/logs/logs.wxml @@ -0,0 +1,6 @@ + + + + {{index + 1}}. {{log}} + + diff --git a/pages/logs/logs.wxss b/pages/logs/logs.wxss new file mode 100644 index 0000000..94d4b88 --- /dev/null +++ b/pages/logs/logs.wxss @@ -0,0 +1,8 @@ +.log-list { + display: flex; + flex-direction: column; + padding: 40rpx; +} +.log-item { + margin: 10rpx; +} diff --git a/pages/main/main.js b/pages/main/main.js new file mode 100644 index 0000000..704b2b0 --- /dev/null +++ b/pages/main/main.js @@ -0,0 +1,159 @@ +// pages/main/main.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + var that = this + //获取待阅读通知数目 + if(wx.getStorageSync("sessionid")){ + this.getnoread() + this.getyhtodonum() + this.getzytodonum() + this.getpxqdnum() + }else{ + getApp().callback = () => { + this.getnoread() + this.getyhtodonum() + this.getzytodonum() + this.getpxqdnum() + }; + } + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + getnoread: function(){ + wx.request({ + url: getApp().globalData.serverUrl + 'api/notice?a=noreadnum', + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + data: {}, + success: res => { + if (res.statusCode === 200) { + //console.log(res.data) + this.setData({ + noread: res.data.noread, + }) + } + } + }); + }, + getyhtodonum:function(){ + var that = this + //获取隐患待办数目 + wx.request({ + url: getApp().globalData.serverUrl + 'troublehandle?a=todonum', + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + data: {}, + success: res => { + if (res.statusCode === 200) { + //console.log(res.data) + this.setData({ + yhtodonum: res.data.todonum, + }) + } + } + }); + }, + getzytodonum: function () { + var that = this + //获取作业待办数目 + wx.request({ + url: getApp().globalData.serverUrl + 'api/operation?a=todonum', + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + data: {}, + success: res => { + if (res.statusCode === 200) { + //console.log(res.data) + this.setData({ + zytodonum: res.data.todonum, + }) + } + } + }); + }, + getpxqdnum:function(){ + var that = this + //获取待签到培训 + wx.request({ + url: getApp().globalData.serverUrl + 'pxhandle?a=dqdnum', + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + data: {}, + success: res => { + if (res.statusCode === 200) { + //console.log(res.data) + this.setData({ + dqdnum: res.data.dqdnum, + }) + } + } + }); + } +}) \ No newline at end of file diff --git a/pages/main/main.json b/pages/main/main.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/pages/main/main.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/pages/main/main.wxml b/pages/main/main.wxml new file mode 100644 index 0000000..6a03d8f --- /dev/null +++ b/pages/main/main.wxml @@ -0,0 +1,51 @@ + + + 数据采集 + + + + 事故隐患 + {{yhtodonum}} + + + + 行为观察 + + + + 未遂事件 + + + + 合理化建议 + + + + 作业许可 + {{zytodonum}} + + + 学习园地 + + + + 公告 + + + + 通知 + + {{noread}} + + + + 线下培训 + {{dqdnum}} + + + + 即将上线.. + + + + \ No newline at end of file diff --git a/pages/main/main.wxss b/pages/main/main.wxss new file mode 100644 index 0000000..ecc2274 --- /dev/null +++ b/pages/main/main.wxss @@ -0,0 +1 @@ +/* pages/main/main.wxss */ \ No newline at end of file diff --git a/pages/miss/addmiss.js b/pages/miss/addmiss.js new file mode 100644 index 0000000..67c6078 --- /dev/null +++ b/pages/miss/addmiss.js @@ -0,0 +1,227 @@ +// pages/miss/addmiss.js +var dateTimePicker = require('../../utils/dateTimePicker.js'); +Page({ + + /** + * 页面的初始数据 + */ + data: { + misstime: '', + missplace: '', + missimg: [], + }, + bindmissplaceInput: function (e) { + this.data.missplace = e.detail.value + }, + binddescriptionInput: function (e) { + this.data.description = e.detail.value + }, + bindpreventInput: function (e) { + this.data.prevent = e.detail.value + }, + bindlessonInput: function (e) { + this.data.lesson = e.detail.value + }, + submit: function () { + var that = this + if (that.data.missplace == '') { + that.Tap1('请输入发生地点!') + } else if (that.data.description == '') { + that.Tap1('请输入简要描述!') + } else { + that.upimg(0, that.data.missimg.length) + } + }, + Tap1: function (x) { + wx.showModal({ + title: "系统提示", + content: x, + showCancel: false, + confirmText: "确定" + }) + }, + //上传图片 + upimg: function (x, y) { + var that = this + if (x < y) { + wx.showLoading({ + title: '上传现场图片' + (x + 1) + '....', + }) + wx.uploadFile({ + header: { + 'content-type': 'application/json', // 默认值 + 'Cookie': wx.getStorageSync("sessionid"), + }, + url: getApp().globalData.serverUrl + 'upfile', + filePath: that.data.missimg[x], + name: 'upfile', + success(res) { + var obj = JSON.parse(res.data); + that.data.missimg[x] = obj['filepath'] + x = x + 1 + if (x < y) { + that.upimg(x, y) + } + else { + that.addobserve() + } + } + }) + } else { + that.addobserve() + } + }, + addobserve: function () { + var wsdata = { + misstime: this.data.misstime, + missplace: this.data.missplace, + description: this.data.description, + missimg: this.data.missimg, + prevent: this.data.prevent, + lesson: this.data.lesson, + } + //console.log(wsdata.unsafe) + wx.request({ + url: getApp().globalData.serverUrl + 'api/miss?a=add', + header: { + 'content-type': 'application/json', // + 'Cookie': wx.getStorageSync("sessionid"), + }, + method: 'POST', + data: wsdata, + success: res => { + if (res.statusCode === 200) { + wx.hideLoading(); + wx.navigateBack() + } + } + }); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + // 获取完整的年月日 时分秒,以及默认显示的数组 + var obj1 = dateTimePicker.dateTimePicker(this.data.startYear, this.data.endYear); + var dateTimeArray1 = obj1.dateTimeArray + var dateTime1 = obj1.dateTime + var time = dateTimeArray1[0][dateTime1[0]] + '-' + dateTimeArray1[1][dateTime1[1]] + '-' + dateTimeArray1[2][dateTime1[2]] + ' ' + dateTimeArray1[3][dateTime1[3]] + ':' + dateTimeArray1[4][dateTime1[4]] + this.setData({ + dateTimeArray1: obj1.dateTimeArray, + dateTime1: obj1.dateTime, + }); + this.data.misstime = time + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + }, + changeDateTime1(e) { + var dateTimeArray1 = this.data.dateTimeArray1 + var dateTime1 = this.data.dateTime1 + var time = dateTimeArray1[0][dateTime1[0]] + '-' + dateTimeArray1[1][dateTime1[1]] + '-' + dateTimeArray1[2][dateTime1[2]] + ' ' + dateTimeArray1[3][dateTime1[3]] + ':' + dateTimeArray1[4][dateTime1[4]] + //console.log(time) + this.data.misstime = time + this.setData({ + dateTime1: e.detail.value, + }); + + }, + changeDateTimeColumn1(e) { + var arr = this.data.dateTime1, + dateArr = this.data.dateTimeArray1; + + arr[e.detail.column] = e.detail.value; + dateArr[2] = dateTimePicker.getMonthDay(dateArr[0][arr[0]], dateArr[1][arr[1]]); + + this.setData({ + dateTimeArray1: dateArr, + dateTime1: arr + }); + }, + chooseImage: function () { + var that = this + wx.chooseImage({ + count: 9, + sizeType: ['original', 'compressed'], + sourceType: ['album', 'camera'], + success: function (res) { + that.setData({ + missimg: that.data.missimg.concat(res.tempFilePaths) + }) + } + }) + }, + previewImage: function (e) { + var current = e.target.dataset.src + wx.previewImage({ + current: current, + urls: this.data.missimg + }) + }, + deleteImage: function (e) { + var that = this; + var missimg = that.data.missimg; + var index = e.currentTarget.dataset.index; //获取当前长按图片下标 + wx.showModal({ + title: '系统提醒', + content: '确定要删除此图片吗?', + success: function (res) { + if (res.confirm) { + missimg.splice(index, 1); + } else if (res.cancel) { + return false; + } + that.setData({ + missimg: missimg + }); + } + }) + }, + +}) \ No newline at end of file diff --git a/pages/miss/addmiss.json b/pages/miss/addmiss.json new file mode 100644 index 0000000..ed605dd --- /dev/null +++ b/pages/miss/addmiss.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "新增事件" +} \ No newline at end of file diff --git a/pages/miss/addmiss.wxml b/pages/miss/addmiss.wxml new file mode 100644 index 0000000..f892a20 --- /dev/null +++ b/pages/miss/addmiss.wxml @@ -0,0 +1,81 @@ + + + 错误提示 + + + 事件信息 + + + + 发生时间 + + + + + {{dateTimeArray1[0][dateTime1[0]]}}-{{dateTimeArray1[1][dateTime1[1]]}}-{{dateTimeArray1[2][dateTime1[2]]}} {{dateTimeArray1[3][dateTime1[3]]}}:{{dateTimeArray1[4][dateTime1[4]]}} + + + + + + + 发生地点 + + + + + + + 现场图片(如有) + + + + + + + + + + + + + + + + + + + + +简要描述 + + + +