├── pages
├── index
│ ├── ad.json
│ ├── index.json
│ ├── ad.wxss
│ ├── ad.wxml
│ ├── ad.js
│ ├── index.wxss
│ └── index.js
├── msg
│ ├── index.json
│ ├── list.json
│ ├── index.wxss
│ ├── index.js
│ ├── list.wxml
│ ├── list.js
│ ├── index.wxml
│ └── list.wxss
├── notice
│ ├── index.json
│ ├── index.wxml
│ ├── index.wxss
│ └── index.js
├── toLogin
│ ├── toLogin.json
│ ├── toLogin.wxss
│ ├── toLogin.wxml
│ └── toLogin.js
├── my
│ ├── fav.json
│ ├── index.json
│ ├── list.json
│ ├── mydyn.json
│ ├── appointment.json
│ ├── info.json
│ ├── index.wxss
│ ├── info.wxss
│ ├── appointment.wxss
│ ├── index.js
│ ├── fav.wxss
│ ├── list.wxss
│ ├── fav.wxml
│ ├── list.wxml
│ ├── mydyn.wxml
│ ├── appointment.wxml
│ ├── appointment.js
│ ├── fav.js
│ ├── mydyn.js
│ ├── list.js
│ ├── index.wxml
│ ├── mydyn.wxss
│ ├── info.wxml
│ └── info.js
├── comment
│ ├── index.json
│ ├── index.wxss
│ ├── index.wxml
│ └── index.js
├── dynamic
│ ├── add.json
│ ├── index.json
│ ├── add.wxss
│ ├── add.wxml
│ ├── add.js
│ ├── index.wxml
│ ├── index.js
│ └── index.wxss
├── info
│ ├── add.json
│ ├── edit.json
│ ├── index.json
│ ├── add.wxss
│ ├── edit.wxss
│ ├── index.wxss
│ ├── edit.js
│ ├── add.js
│ ├── index.wxml
│ ├── edit.wxml
│ └── index.js
├── appointment
│ ├── index.json
│ ├── index.wxss
│ ├── index.js
│ └── index.wxml
└── driver
│ ├── authentication.json
│ └── authentication.wxss
├── .gitignore
├── img
├── 1.png
├── 2.png
├── c.png
├── dy.png
├── me.png
├── to.png
├── Taxi.png
├── add.png
├── adddy.png
├── app0.png
├── app1.png
├── app2.png
├── app3.png
├── auto.png
├── auto1.png
├── back.png
├── cle.png
├── cle1.png
├── date.png
├── date1.png
├── day.png
├── edit.png
├── email.png
├── fav.png
├── fav1.png
├── goods.png
├── msg.png
├── msg1.png
├── msg_1.png
├── msg_2.png
├── msg_3.png
├── see.png
├── tel.png
├── tel1.png
├── zan.png
├── zan1.png
├── Tourist.png
├── account.png
├── driver.png
├── people.png
├── surplus.png
├── vehicle.png
├── wechat.png
├── account1.png
├── comments.png
├── comments1.png
├── favorite.png
├── favorite1.png
├── shoucang.png
├── shoucang1.png
├── appointment.png
├── Human Footprints.png
└── business-color_signature.png
├── wxParse
├── emojis
│ ├── 00.gif
│ ├── 01.gif
│ ├── 02.gif
│ ├── 03.gif
│ ├── 04.gif
│ ├── 05.gif
│ ├── 06.gif
│ ├── 07.gif
│ ├── 08.gif
│ ├── 09.gif
│ ├── 10.gif
│ ├── 100.gif
│ ├── 101.gif
│ ├── 102.gif
│ ├── 103.gif
│ ├── 104.gif
│ ├── 105.gif
│ ├── 106.gif
│ ├── 107.gif
│ ├── 108.gif
│ ├── 109.gif
│ ├── 11.gif
│ ├── 110.gif
│ ├── 111.gif
│ ├── 112.gif
│ ├── 113.gif
│ ├── 114.gif
│ ├── 115.gif
│ ├── 116.gif
│ ├── 117.gif
│ ├── 118.gif
│ ├── 119.gif
│ ├── 12.gif
│ ├── 120.gif
│ ├── 121.gif
│ ├── 122.gif
│ ├── 123.gif
│ ├── 124.gif
│ ├── 125.gif
│ ├── 126.gif
│ ├── 127.gif
│ ├── 128.gif
│ ├── 129.gif
│ ├── 13.gif
│ ├── 130.gif
│ ├── 131.gif
│ ├── 132.gif
│ ├── 133.gif
│ ├── 134.gif
│ ├── 14.gif
│ ├── 15.gif
│ ├── 16.gif
│ ├── 17.gif
│ ├── 18.gif
│ ├── 19.gif
│ ├── 20.gif
│ ├── 21.gif
│ ├── 22.gif
│ ├── 23.gif
│ ├── 24.gif
│ ├── 25.gif
│ ├── 26.gif
│ ├── 27.gif
│ ├── 28.gif
│ ├── 29.gif
│ ├── 30.gif
│ ├── 31.gif
│ ├── 32.gif
│ ├── 33.gif
│ ├── 34.gif
│ ├── 35.gif
│ ├── 36.gif
│ ├── 37.gif
│ ├── 38.gif
│ ├── 39.gif
│ ├── 40.gif
│ ├── 41.gif
│ ├── 42.gif
│ ├── 43.gif
│ ├── 44.gif
│ ├── 45.gif
│ ├── 46.gif
│ ├── 47.gif
│ ├── 48.gif
│ ├── 49.gif
│ ├── 50.gif
│ ├── 51.gif
│ ├── 52.gif
│ ├── 53.gif
│ ├── 54.gif
│ ├── 55.gif
│ ├── 56.gif
│ ├── 57.gif
│ ├── 58.gif
│ ├── 59.gif
│ ├── 60.gif
│ ├── 61.gif
│ ├── 62.gif
│ ├── 63.gif
│ ├── 64.gif
│ ├── 65.gif
│ ├── 66.gif
│ ├── 67.gif
│ ├── 68.gif
│ ├── 69.gif
│ ├── 70.gif
│ ├── 71.gif
│ ├── 72.gif
│ ├── 73.gif
│ ├── 74.gif
│ ├── 75.gif
│ ├── 76.gif
│ ├── 77.gif
│ ├── 78.gif
│ ├── 79.gif
│ ├── 80.gif
│ ├── 81.gif
│ ├── 82.gif
│ ├── 83.gif
│ ├── 84.gif
│ ├── 85.gif
│ ├── 86.gif
│ ├── 87.gif
│ ├── 88.gif
│ ├── 89.gif
│ ├── 90.gif
│ ├── 91.gif
│ ├── 92.gif
│ ├── 93.gif
│ ├── 94.gif
│ ├── 95.gif
│ ├── 96.gif
│ ├── 97.gif
│ ├── 98.gif
│ └── 99.gif
├── wxParse.wxss
├── wxParse.js
├── htmlparser.js
└── wxDiscode.js
├── .Archive
└── donate.md
│ ├── 2017-09-28 13-29-42.md
│ ├── 2017-09-28 13-31-02.md
│ ├── 2017-09-28 13-32-42.md
│ ├── 2017-09-28 13-33-42.md
│ ├── 2017-09-28 13-34-42.md
│ ├── 2017-09-28 13-35-52.md
│ ├── 2017-09-28 13-37-02.md
│ ├── 2017-09-28 13-38-52.md
│ ├── 2017-09-28 13-39-52.md
│ ├── 2017-09-28 13-40-52.md
│ └── 2017-09-28 13-43-12.md
├── README.md
├── app.wxss
├── app.json
├── app.js
└── libs
└── bmap-wx.min.js
/pages/index/ad.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/pages/msg/index.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/pages/msg/list.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/pages/index/index.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/pages/notice/index.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/pages/toLogin/toLogin.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | project.config.json
--------------------------------------------------------------------------------
/pages/index/ad.wxss:
--------------------------------------------------------------------------------
1 | /* pages/index/ad.wxss */
--------------------------------------------------------------------------------
/pages/my/fav.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "我的收藏"
3 | }
--------------------------------------------------------------------------------
/pages/my/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "我的"
3 | }
--------------------------------------------------------------------------------
/pages/comment/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "回复"
3 | }
--------------------------------------------------------------------------------
/pages/dynamic/add.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "发表动态"
3 | }
--------------------------------------------------------------------------------
/pages/dynamic/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "动态"
3 | }
--------------------------------------------------------------------------------
/pages/my/list.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "我发布的"
3 | }
--------------------------------------------------------------------------------
/pages/my/mydyn.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "我的动态"
3 | }
--------------------------------------------------------------------------------
/pages/notice/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/pages/info/add.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "发布拼车"
3 | }
4 |
--------------------------------------------------------------------------------
/pages/info/edit.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "修改"
3 | }
4 |
--------------------------------------------------------------------------------
/pages/info/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "拼车详情"
3 | }
4 |
--------------------------------------------------------------------------------
/pages/my/appointment.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "预约列表"
3 | }
--------------------------------------------------------------------------------
/pages/appointment/index.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "预约详情"
3 | }
--------------------------------------------------------------------------------
/pages/driver/authentication.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "车主认证"
3 | }
--------------------------------------------------------------------------------
/img/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/1.png
--------------------------------------------------------------------------------
/img/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/2.png
--------------------------------------------------------------------------------
/img/c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/c.png
--------------------------------------------------------------------------------
/img/dy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/dy.png
--------------------------------------------------------------------------------
/img/me.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/me.png
--------------------------------------------------------------------------------
/img/to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/to.png
--------------------------------------------------------------------------------
/img/Taxi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/Taxi.png
--------------------------------------------------------------------------------
/img/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/add.png
--------------------------------------------------------------------------------
/img/adddy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/adddy.png
--------------------------------------------------------------------------------
/img/app0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/app0.png
--------------------------------------------------------------------------------
/img/app1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/app1.png
--------------------------------------------------------------------------------
/img/app2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/app2.png
--------------------------------------------------------------------------------
/img/app3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/app3.png
--------------------------------------------------------------------------------
/img/auto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/auto.png
--------------------------------------------------------------------------------
/img/auto1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/auto1.png
--------------------------------------------------------------------------------
/img/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/back.png
--------------------------------------------------------------------------------
/img/cle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/cle.png
--------------------------------------------------------------------------------
/img/cle1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/cle1.png
--------------------------------------------------------------------------------
/img/date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/date.png
--------------------------------------------------------------------------------
/img/date1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/date1.png
--------------------------------------------------------------------------------
/img/day.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/day.png
--------------------------------------------------------------------------------
/img/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/edit.png
--------------------------------------------------------------------------------
/img/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/email.png
--------------------------------------------------------------------------------
/img/fav.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/fav.png
--------------------------------------------------------------------------------
/img/fav1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/fav1.png
--------------------------------------------------------------------------------
/img/goods.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/goods.png
--------------------------------------------------------------------------------
/img/msg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/msg.png
--------------------------------------------------------------------------------
/img/msg1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/msg1.png
--------------------------------------------------------------------------------
/img/msg_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/msg_1.png
--------------------------------------------------------------------------------
/img/msg_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/msg_2.png
--------------------------------------------------------------------------------
/img/msg_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/msg_3.png
--------------------------------------------------------------------------------
/img/see.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/see.png
--------------------------------------------------------------------------------
/img/tel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/tel.png
--------------------------------------------------------------------------------
/img/tel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/tel1.png
--------------------------------------------------------------------------------
/img/zan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/zan.png
--------------------------------------------------------------------------------
/img/zan1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/zan1.png
--------------------------------------------------------------------------------
/img/Tourist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/Tourist.png
--------------------------------------------------------------------------------
/img/account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/account.png
--------------------------------------------------------------------------------
/img/driver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/driver.png
--------------------------------------------------------------------------------
/img/people.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/people.png
--------------------------------------------------------------------------------
/img/surplus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/surplus.png
--------------------------------------------------------------------------------
/img/vehicle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/vehicle.png
--------------------------------------------------------------------------------
/img/wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/wechat.png
--------------------------------------------------------------------------------
/img/account1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/account1.png
--------------------------------------------------------------------------------
/img/comments.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/comments.png
--------------------------------------------------------------------------------
/img/comments1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/comments1.png
--------------------------------------------------------------------------------
/img/favorite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/favorite.png
--------------------------------------------------------------------------------
/img/favorite1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/favorite1.png
--------------------------------------------------------------------------------
/img/shoucang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/shoucang.png
--------------------------------------------------------------------------------
/img/shoucang1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/shoucang1.png
--------------------------------------------------------------------------------
/pages/msg/index.wxss:
--------------------------------------------------------------------------------
1 | .list view{font-size:12pt;}
2 | .list .weui-cell{padding: 15px !important}
--------------------------------------------------------------------------------
/pages/my/info.json:
--------------------------------------------------------------------------------
1 | {
2 | "disableScroll":true,
3 | "navigationBarTitleText": "个人信息"
4 | }
--------------------------------------------------------------------------------
/img/appointment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/appointment.png
--------------------------------------------------------------------------------
/wxParse/emojis/00.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/00.gif
--------------------------------------------------------------------------------
/wxParse/emojis/01.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/01.gif
--------------------------------------------------------------------------------
/wxParse/emojis/02.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/02.gif
--------------------------------------------------------------------------------
/wxParse/emojis/03.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/03.gif
--------------------------------------------------------------------------------
/wxParse/emojis/04.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/04.gif
--------------------------------------------------------------------------------
/wxParse/emojis/05.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/05.gif
--------------------------------------------------------------------------------
/wxParse/emojis/06.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/06.gif
--------------------------------------------------------------------------------
/wxParse/emojis/07.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/07.gif
--------------------------------------------------------------------------------
/wxParse/emojis/08.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/08.gif
--------------------------------------------------------------------------------
/wxParse/emojis/09.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/09.gif
--------------------------------------------------------------------------------
/wxParse/emojis/10.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/10.gif
--------------------------------------------------------------------------------
/wxParse/emojis/100.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/100.gif
--------------------------------------------------------------------------------
/wxParse/emojis/101.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/101.gif
--------------------------------------------------------------------------------
/wxParse/emojis/102.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/102.gif
--------------------------------------------------------------------------------
/wxParse/emojis/103.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/103.gif
--------------------------------------------------------------------------------
/wxParse/emojis/104.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/104.gif
--------------------------------------------------------------------------------
/wxParse/emojis/105.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/105.gif
--------------------------------------------------------------------------------
/wxParse/emojis/106.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/106.gif
--------------------------------------------------------------------------------
/wxParse/emojis/107.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/107.gif
--------------------------------------------------------------------------------
/wxParse/emojis/108.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/108.gif
--------------------------------------------------------------------------------
/wxParse/emojis/109.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/109.gif
--------------------------------------------------------------------------------
/wxParse/emojis/11.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/11.gif
--------------------------------------------------------------------------------
/wxParse/emojis/110.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/110.gif
--------------------------------------------------------------------------------
/wxParse/emojis/111.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/111.gif
--------------------------------------------------------------------------------
/wxParse/emojis/112.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/112.gif
--------------------------------------------------------------------------------
/wxParse/emojis/113.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/113.gif
--------------------------------------------------------------------------------
/wxParse/emojis/114.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/114.gif
--------------------------------------------------------------------------------
/wxParse/emojis/115.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/115.gif
--------------------------------------------------------------------------------
/wxParse/emojis/116.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/116.gif
--------------------------------------------------------------------------------
/wxParse/emojis/117.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/117.gif
--------------------------------------------------------------------------------
/wxParse/emojis/118.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/118.gif
--------------------------------------------------------------------------------
/wxParse/emojis/119.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/119.gif
--------------------------------------------------------------------------------
/wxParse/emojis/12.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/12.gif
--------------------------------------------------------------------------------
/wxParse/emojis/120.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/120.gif
--------------------------------------------------------------------------------
/wxParse/emojis/121.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/121.gif
--------------------------------------------------------------------------------
/wxParse/emojis/122.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/122.gif
--------------------------------------------------------------------------------
/wxParse/emojis/123.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/123.gif
--------------------------------------------------------------------------------
/wxParse/emojis/124.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/124.gif
--------------------------------------------------------------------------------
/wxParse/emojis/125.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/125.gif
--------------------------------------------------------------------------------
/wxParse/emojis/126.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/126.gif
--------------------------------------------------------------------------------
/wxParse/emojis/127.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/127.gif
--------------------------------------------------------------------------------
/wxParse/emojis/128.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/128.gif
--------------------------------------------------------------------------------
/wxParse/emojis/129.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/129.gif
--------------------------------------------------------------------------------
/wxParse/emojis/13.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/13.gif
--------------------------------------------------------------------------------
/wxParse/emojis/130.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/130.gif
--------------------------------------------------------------------------------
/wxParse/emojis/131.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/131.gif
--------------------------------------------------------------------------------
/wxParse/emojis/132.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/132.gif
--------------------------------------------------------------------------------
/wxParse/emojis/133.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/133.gif
--------------------------------------------------------------------------------
/wxParse/emojis/134.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/134.gif
--------------------------------------------------------------------------------
/wxParse/emojis/14.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/14.gif
--------------------------------------------------------------------------------
/wxParse/emojis/15.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/15.gif
--------------------------------------------------------------------------------
/wxParse/emojis/16.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/16.gif
--------------------------------------------------------------------------------
/wxParse/emojis/17.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/17.gif
--------------------------------------------------------------------------------
/wxParse/emojis/18.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/18.gif
--------------------------------------------------------------------------------
/wxParse/emojis/19.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/19.gif
--------------------------------------------------------------------------------
/wxParse/emojis/20.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/20.gif
--------------------------------------------------------------------------------
/wxParse/emojis/21.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/21.gif
--------------------------------------------------------------------------------
/wxParse/emojis/22.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/22.gif
--------------------------------------------------------------------------------
/wxParse/emojis/23.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/23.gif
--------------------------------------------------------------------------------
/wxParse/emojis/24.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/24.gif
--------------------------------------------------------------------------------
/wxParse/emojis/25.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/25.gif
--------------------------------------------------------------------------------
/wxParse/emojis/26.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/26.gif
--------------------------------------------------------------------------------
/wxParse/emojis/27.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/27.gif
--------------------------------------------------------------------------------
/wxParse/emojis/28.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/28.gif
--------------------------------------------------------------------------------
/wxParse/emojis/29.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/29.gif
--------------------------------------------------------------------------------
/wxParse/emojis/30.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/30.gif
--------------------------------------------------------------------------------
/wxParse/emojis/31.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/31.gif
--------------------------------------------------------------------------------
/wxParse/emojis/32.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/32.gif
--------------------------------------------------------------------------------
/wxParse/emojis/33.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/33.gif
--------------------------------------------------------------------------------
/wxParse/emojis/34.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/34.gif
--------------------------------------------------------------------------------
/wxParse/emojis/35.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/35.gif
--------------------------------------------------------------------------------
/wxParse/emojis/36.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/36.gif
--------------------------------------------------------------------------------
/wxParse/emojis/37.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/37.gif
--------------------------------------------------------------------------------
/wxParse/emojis/38.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/38.gif
--------------------------------------------------------------------------------
/wxParse/emojis/39.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/39.gif
--------------------------------------------------------------------------------
/wxParse/emojis/40.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/40.gif
--------------------------------------------------------------------------------
/wxParse/emojis/41.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/41.gif
--------------------------------------------------------------------------------
/wxParse/emojis/42.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/42.gif
--------------------------------------------------------------------------------
/wxParse/emojis/43.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/43.gif
--------------------------------------------------------------------------------
/wxParse/emojis/44.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/44.gif
--------------------------------------------------------------------------------
/wxParse/emojis/45.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/45.gif
--------------------------------------------------------------------------------
/wxParse/emojis/46.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/46.gif
--------------------------------------------------------------------------------
/wxParse/emojis/47.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/47.gif
--------------------------------------------------------------------------------
/wxParse/emojis/48.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/48.gif
--------------------------------------------------------------------------------
/wxParse/emojis/49.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/49.gif
--------------------------------------------------------------------------------
/wxParse/emojis/50.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/50.gif
--------------------------------------------------------------------------------
/wxParse/emojis/51.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/51.gif
--------------------------------------------------------------------------------
/wxParse/emojis/52.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/52.gif
--------------------------------------------------------------------------------
/wxParse/emojis/53.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/53.gif
--------------------------------------------------------------------------------
/wxParse/emojis/54.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/54.gif
--------------------------------------------------------------------------------
/wxParse/emojis/55.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/55.gif
--------------------------------------------------------------------------------
/wxParse/emojis/56.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/56.gif
--------------------------------------------------------------------------------
/wxParse/emojis/57.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/57.gif
--------------------------------------------------------------------------------
/wxParse/emojis/58.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/58.gif
--------------------------------------------------------------------------------
/wxParse/emojis/59.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/59.gif
--------------------------------------------------------------------------------
/wxParse/emojis/60.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/60.gif
--------------------------------------------------------------------------------
/wxParse/emojis/61.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/61.gif
--------------------------------------------------------------------------------
/wxParse/emojis/62.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/62.gif
--------------------------------------------------------------------------------
/wxParse/emojis/63.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/63.gif
--------------------------------------------------------------------------------
/wxParse/emojis/64.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/64.gif
--------------------------------------------------------------------------------
/wxParse/emojis/65.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/65.gif
--------------------------------------------------------------------------------
/wxParse/emojis/66.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/66.gif
--------------------------------------------------------------------------------
/wxParse/emojis/67.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/67.gif
--------------------------------------------------------------------------------
/wxParse/emojis/68.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/68.gif
--------------------------------------------------------------------------------
/wxParse/emojis/69.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/69.gif
--------------------------------------------------------------------------------
/wxParse/emojis/70.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/70.gif
--------------------------------------------------------------------------------
/wxParse/emojis/71.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/71.gif
--------------------------------------------------------------------------------
/wxParse/emojis/72.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/72.gif
--------------------------------------------------------------------------------
/wxParse/emojis/73.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/73.gif
--------------------------------------------------------------------------------
/wxParse/emojis/74.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/74.gif
--------------------------------------------------------------------------------
/wxParse/emojis/75.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/75.gif
--------------------------------------------------------------------------------
/wxParse/emojis/76.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/76.gif
--------------------------------------------------------------------------------
/wxParse/emojis/77.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/77.gif
--------------------------------------------------------------------------------
/wxParse/emojis/78.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/78.gif
--------------------------------------------------------------------------------
/wxParse/emojis/79.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/79.gif
--------------------------------------------------------------------------------
/wxParse/emojis/80.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/80.gif
--------------------------------------------------------------------------------
/wxParse/emojis/81.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/81.gif
--------------------------------------------------------------------------------
/wxParse/emojis/82.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/82.gif
--------------------------------------------------------------------------------
/wxParse/emojis/83.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/83.gif
--------------------------------------------------------------------------------
/wxParse/emojis/84.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/84.gif
--------------------------------------------------------------------------------
/wxParse/emojis/85.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/85.gif
--------------------------------------------------------------------------------
/wxParse/emojis/86.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/86.gif
--------------------------------------------------------------------------------
/wxParse/emojis/87.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/87.gif
--------------------------------------------------------------------------------
/wxParse/emojis/88.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/88.gif
--------------------------------------------------------------------------------
/wxParse/emojis/89.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/89.gif
--------------------------------------------------------------------------------
/wxParse/emojis/90.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/90.gif
--------------------------------------------------------------------------------
/wxParse/emojis/91.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/91.gif
--------------------------------------------------------------------------------
/wxParse/emojis/92.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/92.gif
--------------------------------------------------------------------------------
/wxParse/emojis/93.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/93.gif
--------------------------------------------------------------------------------
/wxParse/emojis/94.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/94.gif
--------------------------------------------------------------------------------
/wxParse/emojis/95.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/95.gif
--------------------------------------------------------------------------------
/wxParse/emojis/96.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/96.gif
--------------------------------------------------------------------------------
/wxParse/emojis/97.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/97.gif
--------------------------------------------------------------------------------
/wxParse/emojis/98.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/98.gif
--------------------------------------------------------------------------------
/wxParse/emojis/99.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/wxParse/emojis/99.gif
--------------------------------------------------------------------------------
/img/Human Footprints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/Human Footprints.png
--------------------------------------------------------------------------------
/img/business-color_signature.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vincenth520/pinche_xcx_vip/HEAD/img/business-color_signature.png
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-29-42.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 为了程序的后期开发
--------------------------------------------------------------------------------
/pages/notice/index.wxss:
--------------------------------------------------------------------------------
1 | .page{margin:8px;}
2 | .title{text-align:center;font-weight: bold;font-size: 1rem;color:#000;margin-top:10px;}
3 | .content{font-size: .85rem;}
--------------------------------------------------------------------------------
/pages/index/ad.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/pages/dynamic/add.wxss:
--------------------------------------------------------------------------------
1 | .page{margin:10rpx;}
2 | .weui-btn{background: #f4de3b!important;color:#000!important;}
3 | .weui-cells::before{border-top: 0!important;}
4 | .weui-cells{margin-top:15px;}
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-31-02.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 |
--------------------------------------------------------------------------------
/pages/comment/index.wxss:
--------------------------------------------------------------------------------
1 | .page{margin:10rpx;}
2 | .weui-btn{background: #f4de3b!important;color:#000!important;}
3 | .weui-cells::before{border-top: 0!important;}
4 | .weui-cells{margin-top:15px;}
--------------------------------------------------------------------------------
/pages/notice/index.js:
--------------------------------------------------------------------------------
1 | // pages/notice/index.js
2 | var util = require('../../utils/util.js');
3 | Page({
4 | data:{},
5 | onLoad:function(options){
6 | this.setData({path:options.id});
7 | }
8 | })
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-32-42.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版:
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-33-42.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(399):指导小程序全部配置至上线,
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-34-42.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(399):指导小程序全部配置至上线,获得后续代码的升级版本
11 | - 专业版(699
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-35-52.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本
11 | - 专业版(¥699):帮配置小程序
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-37-02.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本,上线之后的bug修复
11 | - 专业版(¥699):帮配置小程序直至上线,获得后续代码的升级版本,
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-38-52.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
11 | - 专业版(¥699):帮配置小程序直至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-39-52.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
11 | - 专业版(¥699):帮助配置小程序直至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
12 |
13 | ##同城拼车后续计划
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 同城拼车微信小程序付费版前端
2 |
3 | ## 下载
4 | `git clone https://github.com/vincenth520/pinche_xcx_vip.git`
5 |
6 | ## 配置
7 | - 添加一個新的小程序項目
8 | - 填寫你在後台配置的appid
9 | - 打開utils/utils.js修改rootDocment為你`php artisan start:codems`裡面配置的域名
10 |
11 |
12 | ## 预览
13 | [效果演示](http://tbm.alicdn.com/rs2fBssndJYwZvZwiwO/lLbudWjf33BJuCsNAVx%40%40sd.mp4)
--------------------------------------------------------------------------------
/pages/my/index.wxss:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 | .head{display:flex;flex-direction: column;background: #efefef;width:100%;padding: 100rpx 0rpx; align-items: center; justify-content: space-between;background: #f4de3b}
3 | .head image{width:150rpx;height:150rpx;margin:0 auto;border-radius: 50%;}
4 | .list view{font-size:12pt;}
5 | .list .weui-cell{padding: 15px !important}
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-40-52.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
11 | - 专业版(¥699):帮助配置小程序直至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
12 |
13 | ## 同城拼车后续计划
14 | 免费版本除重大bug不再更新,付费版本将后续完善前端
--------------------------------------------------------------------------------
/.Archive/donate.md/2017-09-28 13-43-12.md:
--------------------------------------------------------------------------------
1 | # 同城拼车小程序捐赠计划
2 |
3 | ## 起因
4 | 由于太多用户都是完全没有一点编程基础的,经常进群问的都是非常基础的问题,完全没有搭建上线的能力,我也没有太多时间回答这么多基础的问题
5 |
6 | ## 目的
7 | 支持程序的后期开发,以及服务器的调试,及人工开发成本
8 |
9 | ##级别
10 | - 标准版(¥399):指导小程序全部配置至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
11 | - 专业版(¥699):帮助配置小程序直至上线,获得后续代码的升级版本,加入会员群获得专业指导支持
12 |
13 | ## 同城拼车后续计划
14 | 免费版本除重大bug不再更新,付费版本将持续完善前端版本,并后续开发后台管理平台
--------------------------------------------------------------------------------
/pages/my/info.wxss:
--------------------------------------------------------------------------------
1 | /* pages/my/info.wxss */
2 | .head{display:flex;flex-direction: column;background: #efefef;width:100%;padding: 100rpx 0rpx; align-items: center; justify-content: space-between;}
3 | .head image{width:150rpx;height:150rpx;margin:0 auto;border-radius: 50%;}
4 | .form .weui-cells{z-index: 0;}
5 | .form .weui-input{overflow: hidden;}
6 | .weui-btn{background: #f4de3b!important;color:#000!important;}
7 | .disabled{background: #efefef;}
--------------------------------------------------------------------------------
/pages/my/appointment.wxss:
--------------------------------------------------------------------------------
1 | /* appointment.wxss */
2 | .page{background: #f5f5f5;}
3 | .weui-cell{position:relative}
4 | .status_icon{
5 | width:40px;
6 | height:40px;
7 | position:absolute;
8 | top:0px;
9 | right:0px;
10 | }
11 | .weui-tab__content{
12 | margin-top: 10px;
13 | background: #fff;
14 | }
15 | .weui-navbar{background: #fff;}
16 | .tel{width:30px;
17 | height:30px;
18 | position:absolute;
19 | top:20px;
20 | right:30px;
21 | }
--------------------------------------------------------------------------------
/pages/toLogin/toLogin.wxss:
--------------------------------------------------------------------------------
1 | /* pages/toLogin/toLogin.wxss */
2 | #head{padding:100rpx 40rpx 40rpx 40rpx;}
3 | #head image{width:140rpx;height:140rpx;margin: 0 auto;display:block}
4 | .text-align{text-align: center}
5 | .gray{color: #888}
6 | #title{margin: 5px 0px 30px 0px;}
7 | .font3{font-size: 14px;margin:5px 0px;}
8 | .font4{font-size: 15px;}
9 |
10 | .loginbutton{width: 260px;border-radius: 5px;background: #0d76dc;color: #fff;margin: 20px auto;}
11 | .icon{width: 20px;height:20px;vertical-align:middle;}
--------------------------------------------------------------------------------
/pages/info/add.wxss:
--------------------------------------------------------------------------------
1 | /* pages/info/add.wxss */
2 | .page__bd{background: #efefef;}
3 | .weui-cells__title{padding-top:.3rem;margin-top:0;}
4 | .radio-group{padding: 10px 0px !important;}
5 | /* .StartAndStop input{width:70px;float:left}
6 | .to1{width: 30px;height:30px;position:absolute;top:6px;}
7 | .stop{margin-left:40px;}*/
8 | .weui-label{color:black}
9 | .radio text{margin:0rpx 8rpx;}
10 | .radio{margin-right: 12rpx;}
11 | .weui-btn{background: #f4de3b!important;color:#000!important;}
12 | .weui-input{overflow:hidden;}
13 |
--------------------------------------------------------------------------------
/pages/info/edit.wxss:
--------------------------------------------------------------------------------
1 | /* pages/info/add.wxss */
2 | .page__bd{background: #efefef;}
3 | .weui-cells__title{padding-top:.3rem;margin-top:0;}
4 | .radio-group{padding: 10px 0px !important;}
5 | /* .StartAndStop input{width:70px;float:left}
6 | .to1{width: 30px;height:30px;position:absolute;top:6px;}
7 | .stop{margin-left:40px;}*/
8 | .weui-label{color:black}
9 | .radio text{margin:0rpx 8rpx;}
10 | .radio{margin-right: 12rpx;}
11 | .weui-btn{background: #f4de3b!important;color:#000!important;}
12 | .weui-input{overflow:hidden;}
13 |
--------------------------------------------------------------------------------
/pages/appointment/index.wxss:
--------------------------------------------------------------------------------
1 | /* pages/info/add.wxss */
2 | .page{background: #efefef;height: 560px;}
3 | .weui-cells__title{padding-top:.3rem;margin-top:0;}
4 | .radio-group{padding: 10px 0px !important;}
5 | /* .StartAndStop input{width:70px;float:left}
6 | .to1{width: 30px;height:30px;position:absolute;top:6px;}
7 | .stop{margin-left:40px;}*/
8 | .weui-label{color:black}
9 | .radio text{margin:0rpx 8rpx;}
10 | .radio{margin-right: 12rpx;}
11 | .submit{background: #f4de3b!important;color:#000!important;}
12 | .weui-input{overflow:hidden;}
13 |
--------------------------------------------------------------------------------
/pages/index/ad.js:
--------------------------------------------------------------------------------
1 | // pages/index/ad.js
2 | var WxParse = require('../../wxParse/wxParse.js');
3 | var util = require('../../utils/util.js');
4 | Page({
5 | data: {
6 |
7 | },
8 | onLoad: function (options) {
9 | var that = this;
10 | util.getReq('article/' + options.id,[],function(data){
11 | if(data.status){
12 | var article = `
${data.data.title}
`;
13 | article += data.data.content;
14 | WxParse.wxParse('article', 'html', article, that, 5);
15 | }
16 | })
17 |
18 |
19 | }
20 | })
--------------------------------------------------------------------------------
/pages/toLogin/toLogin.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{appInfo.name}}
7 | 欢迎您
8 |
9 | 请微信授权登录后放心使用{{appInfo.name}}
10 | 您的信息和数据将得到保护
11 |
12 |
13 |
--------------------------------------------------------------------------------
/pages/msg/index.js:
--------------------------------------------------------------------------------
1 | // pages/msg/index.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | Page({
5 | data:{},
6 | msg:function(){
7 | var that = this;
8 | util.req('msg/getall', { sk: app.globalData.sk }, function (data) {
9 | var zan = 0;
10 | var comment = 0;
11 | var notice = 0;
12 |
13 | var data = { zan: (data.data.zan ? data.data.zan : 0), comment: (data.data.comment ? data.data.comment : 0), notice: (data.data.notice ? data.data.notice : 0) };
14 | that.setData({ data: data });
15 | })
16 | },
17 | onShow: function () {
18 | this.msg();
19 | },
20 | onPullDownRefresh: function () {
21 | this.msg();
22 | wx.stopPullDownRefresh();
23 | },
24 |
25 | })
--------------------------------------------------------------------------------
/pages/msg/list.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {{item.nickName}}{{item.time}}
15 |
16 | {{item.content}}
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/pages/my/index.js:
--------------------------------------------------------------------------------
1 | //index.js
2 | //获取应用实例
3 | var app = getApp();
4 | var util = require('../../utils/util.js');
5 |
6 | Page({
7 | onShow: function () {
8 | var that = this;
9 | that.setData({
10 | userInfo:app.globalData.userInfo
11 | });
12 |
13 | util.req('info/mycount',{sk:app.globalData.sk},function(data){
14 | that.setData({infoCount:data.data});
15 | })
16 |
17 | util.req('appointment/mycount', { sk: app.globalData.sk }, function (data) {
18 | that.setData({ appointmentCount: data.data });
19 | })
20 |
21 | if (app.globalData.userInfo.driver == 1){
22 | var driverMessage = '已认证';
23 | } else if (app.globalData.userInfo.driver == -1) {
24 | var driverMessage = '认证失败';
25 | } else if (app.globalData.userInfo.driver == 2) {
26 | var driverMessage = '等待认证';
27 | }else{
28 | var driverMessage = '';
29 | }
30 | this.setData({ driverMessage: driverMessage});
31 | },
32 | data:{
33 | driverMessage:''
34 | }
35 |
36 | })
37 |
--------------------------------------------------------------------------------
/app.wxss:
--------------------------------------------------------------------------------
1 | /**app.wxss**/
2 | @import 'weui.wxss';
3 | @import "/wxParse/wxParse.wxss";
4 | view{overflow: visible}
5 | .container {
6 | height: 100%;
7 | display: flex;
8 | flex-direction: column;
9 | align-items: center;
10 | justify-content: space-between;
11 | }
12 | view{ color:Grey}
13 |
14 | /**选择城市**/
15 |
16 | .citypickers{
17 | position: fixed;
18 | height: 100%;
19 | width: 100%;
20 | min-height: 100%;
21 | background-color: red;
22 | z-index:1000000;
23 | }
24 | .citybody {
25 | position: fixed;
26 | bottom: 0px;
27 | z-index:1000000;
28 | }
29 |
30 | .cityheader {
31 | position: absolute;
32 | top:0px;
33 | width: 100%;
34 | z-index: 4;
35 | }
36 |
37 | .city-cancel {
38 | float: right;
39 | margin: 20rpx;
40 | color: #818181;
41 | }
42 |
43 | .city-true {
44 | float: left;
45 | margin: 20rpx;
46 | color: #2FB42E
47 | }
48 |
49 | .section .picker {
50 | background-color: #fff;
51 | border-bottom: 1px #d9d9d9 solid;
52 | border-top: 1px #d9d9d9 solid;
53 | padding: 20rpx;
54 | }
--------------------------------------------------------------------------------
/pages/my/fav.wxss:
--------------------------------------------------------------------------------
1 | .page__bd{
2 | height: 100%;
3 | }
4 | .page__bd{
5 | padding-bottom: 0;
6 | }
7 | .weui-tab__content{
8 | padding-top: 60px;
9 | text-align: center;
10 | }
11 | .list_title,.list_desc{text-align: left!important;}
12 | .list_title{color:black;font-size: .85rem;}
13 | .list_desc{margin: 5rpx 0rpx;color: #444}
14 | .list_type_1{background: rgb(254,230,50);padding: 0rpx 5rpx;margin-right:1rem;color:lightseagreen;}
15 | .list_type_2{background: lightseagreen;padding: 0rpx 5rpx;margin-right:1rem;color:rgb(254,230,50);}
16 | .to1{width: 60rpx;height:60rpx;position:absolute;top:12px;}
17 | .list_over{margin-left:60rpx;}
18 | .list_icon{width:30rpx;height:30rpx;position:absolute}
19 | .weui-media-box__info__meta text{margin:0rpx 33rpx;}
20 | .list_tm{float: right;color: indianred;font-size: .8rem;}
21 | .weui-media-box__info__meta{padding-right: .2rem!important;}
22 | .icon-gender{width:30rpx;height: 30rpx;bottom: 16rpx;position:absolute;left:120rpx;}
23 |
24 | .editdiv{float:right}
25 | .editbtn{height:50rpx;line-height:50rpx;float:left;font-size: .7rem;margin:5rpx;}
26 | .null{line-height: 200px;text-align: center;}
--------------------------------------------------------------------------------
/pages/my/list.wxss:
--------------------------------------------------------------------------------
1 | .page__bd{
2 | height: 100%;
3 | }
4 | .page__bd{
5 | padding-bottom: 0;
6 | }
7 | .weui-tab__content{
8 | padding-top: 60px;
9 | text-align: center;
10 | }
11 | .list_title,.list_desc{text-align: left!important;}
12 | .list_title{color:black;font-size: .85rem;}
13 | .list_desc{margin: 5rpx 0rpx;color: #444}
14 | .list_type_1{background: rgb(254,230,50);padding: 0rpx 5rpx;margin-right:1rem;color:lightseagreen;}
15 | .list_type_2{background: lightseagreen;padding: 0rpx 5rpx;margin-right:1rem;color:rgb(254,230,50);}
16 | .to1{width: 60rpx;height:60rpx;position:absolute;top:12px;}
17 | .list_over{margin-left:60rpx;}
18 | .list_icon{width:30rpx;height:30rpx;position:absolute}
19 | .weui-media-box__info__meta text{margin:0rpx 33rpx;}
20 | .list_tm{float: right;color: indianred;font-size: .8rem;}
21 | .weui-media-box__info__meta{padding-right: .2rem!important;}
22 | .icon-gender{width:30rpx;height: 30rpx;bottom: 16rpx;position:absolute;left:120rpx;}
23 |
24 | .editdiv{float:right}
25 | .editbtn{height:50rpx;line-height:50rpx;float:left;font-size: .7rem;margin:5rpx;}
26 | .null{line-height: 200px;text-align: center;}
--------------------------------------------------------------------------------
/pages/msg/list.js:
--------------------------------------------------------------------------------
1 | // pages/msg/list.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | var id = 0;
5 | var page = 1;
6 | var arr = new Array();
7 | Page({
8 | data:{},
9 | getList:function(id){
10 | var that = this;
11 | util.req('msg/get',{type:id,page:page},function(data){
12 | if(data.data.length == 0){
13 | that.setData({ 'isnull': true,'nomore':true});
14 | return false;
15 | }
16 | if(page == 1){
17 | arr = new Array();
18 | }
19 |
20 | data.data.forEach(function(item){
21 | arr.push({
22 | time: util.getDateBiff(Date.parse(new Date(item.updated_at))),
23 | content: item.content,
24 | nickName: item.nickName,
25 | avatarUrl: item.avatarUrl,
26 | url:item.url
27 | })
28 | })
29 |
30 | that.setData({'msg':arr});
31 | })
32 | },
33 | onLoad:function(options){
34 | // 页面初始化 options为页面跳转所带来的参数
35 | id = options.id;
36 | this.getList(options.id);
37 | },
38 | onPullDownRefresh: function () {
39 | page = 1;
40 | this.getList(id);
41 | wx.stopPullDownRefresh();
42 | },
43 | onReachBottom: function () {
44 | if (!this.data.nomore) {
45 | page++;
46 | this.getList(id);
47 | }
48 | }
49 |
50 |
51 |
52 | })
--------------------------------------------------------------------------------
/pages/dynamic/add.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{errorMsg}}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/pages/comment/index.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{errorMsg}}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/pages/toLogin/toLogin.js:
--------------------------------------------------------------------------------
1 | var app = getApp();
2 | var util = require('../../utils/util.js');
3 | Page({
4 | data: {
5 | canIUse: wx.canIUse('button.open-type.getUserInfo'),
6 | appInfo: {},
7 | login: false
8 | },
9 | onLoad: function (options) {
10 | var that = this;
11 | var vdata = {};
12 | wx.getSetting({
13 | success: function (res) {
14 | if (res.authSetting['scope.userInfo']) {
15 | wx.redirectTo({
16 | url: '/pages/index/index',
17 | })
18 | }
19 | return false;
20 | }
21 | })
22 |
23 | that.setData({
24 | appInfo: util.wxAppinfo
25 | });
26 |
27 | },
28 | bindGetUserInfo: function (e) {
29 | var that = this;
30 | var userinfo = e.detail;
31 | wx.login({
32 | success: function (res) {
33 | util.req('customer/login', {
34 | "code": res.code,
35 | "encryptedData": userinfo.encryptedData,
36 | "iv": userinfo.iv
37 | }, function (data) {
38 | if (data.msg == '账户被禁用') {
39 | wx.showModal({
40 | title: '错误',
41 | content: '账户被禁用,请联系客户处理',
42 | })
43 | return false;
44 | }
45 | app.setUserInfo(data.data.user);
46 | app.setSk(data.data.sk);
47 | wx.reLaunch({
48 | url: '/pages/index/index',
49 | })
50 | })
51 | }
52 | })
53 | }
54 | })
--------------------------------------------------------------------------------
/pages/appointment/index.js:
--------------------------------------------------------------------------------
1 | // pages/info/add.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | var type = 1;
5 | var id = 0;
6 | Page({
7 | data: {
8 | },
9 | onLoad: function (options) {
10 | var that = this;
11 | id = options.id;
12 | util.req('appointment/detail', { id: options.id, sk: app.globalData.sk }, function (data) {
13 |
14 | data.data.time = data.data.leave_time;
15 | that.setData({ data: data.data });
16 | })
17 | },
18 | formSubmit: function (e) {
19 | var that = this;
20 | wx.showLoading({
21 | title: '',
22 | mask: true
23 | })
24 | setTimeout(function(){
25 | util.req('appointment/submit', { id: id, sk: app.globalData.sk, type: type, form_id: e.detail.formId}, function (data) {
26 | wx.hideLoading();
27 | if(data.status){
28 | if(type == 1){
29 | wx.showToast({
30 | title: '拼车成功',
31 | icon: 'success',
32 | duration: 2000
33 | })
34 | }else{
35 | wx.showToast({
36 | title: '拒绝成功',
37 | icon: 'success',
38 | duration: 2000
39 | })
40 | }
41 | that.setData({'data.status':type});
42 | } else {
43 | util.isError(data.msg, that);
44 | }
45 | })
46 | },1000)
47 |
48 | },
49 | no: function () {
50 | type = 2;
51 | }
52 | })
--------------------------------------------------------------------------------
/pages/driver/authentication.wxss:
--------------------------------------------------------------------------------
1 | /* pages/driver/authentication.wxss */
2 | page{background: #eee;}
3 | .weui-toptips_info {
4 | background-color: orange;
5 | position: relative!important;
6 | }
7 | .weui-uploader__bd{background: #fff;margin-top:10px;}
8 | .head{height: 100px;width: 100%;background: #fff;border-bottom:1px solid #eee;}
9 | .step{
10 | padding:40px 0px;
11 | height:2px;
12 | }
13 | .flowList{
14 | width:250rpx;
15 | height:2px;
16 | background-color: #eee;
17 | float:left;
18 | position: relative;
19 | }
20 | .success{
21 | background-color: #67c23a;
22 | }
23 | .success .flowListText{
24 | border:2px solid #67c23a;
25 | color:#67c23a;
26 | }
27 | .flowListText{
28 | position: absolute;
29 | left: 100rpx;
30 | border:2px solid #ccc;
31 | background: #fff;
32 | margin-top: -30rpx;
33 | width: 50rpx;
34 | height: 50rpx;
35 | font-size: 30rpx;
36 | line-height: 50rpx;
37 | border-radius: 50%;
38 | text-align: center;
39 | color:#ccc;
40 | }
41 | .success .flowListTextInfo{
42 | color:#67c23a;
43 | }
44 | .flowListTextInfo{font-size: 22rpx;text-align: center;display:block;
45 | margin-top:20px;
46 | }
47 | .uploader__input-box__title{display: inline-block;width:300rpx;margin-left:25rpx}
48 | .weui-uploader__input-box {width:285rpx;height:200rpx;margin-left:25rpx}
49 | .weui-uploader__input-box-img:before, .weui-uploader__input-box-img:after {
50 | content:'';
51 | background: none;
52 | }
53 | .weui-uploader__input-box-img{border:none;}
54 | .weui-input{overflow:hidden}
--------------------------------------------------------------------------------
/pages/my/fav.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{errorMsg}}
3 |
4 |
5 | 没有记录
6 |
7 |
8 |
9 |
10 | {{item.start}} {{item.over}}
11 |
12 | {{item.tm}}
13 | 出发:{{item.leave_time}}
14 |
15 | {{item.type}}
16 | {{item.surplus}}
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 正在加载
27 |
28 |
29 | 没有更多了~
30 |
31 |
32 |
--------------------------------------------------------------------------------
/pages/my/list.wxml:
--------------------------------------------------------------------------------
1 |
2 | {{errorMsg}}
3 |
4 |
5 | 没有记录
6 |
7 |
8 |
9 |
10 | {{item.start}} {{item.over}}
11 |
12 | {{item.tm}}
13 | 出发:{{item.leave_time}}
14 |
15 | {{item.type}}
16 | {{item.surplus}}
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 正在加载
27 |
28 |
29 | 没有更多了~
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages": [
3 | "pages/index/index",
4 | "pages/toLogin/toLogin",
5 | "pages/index/ad",
6 | "pages/my/index",
7 | "pages/my/info",
8 | "pages/my/list",
9 | "pages/my/fav",
10 | "pages/my/mydyn",
11 | "pages/info/index",
12 | "pages/info/add",
13 | "pages/info/edit",
14 | "pages/dynamic/index",
15 | "pages/dynamic/add",
16 | "pages/comment/index",
17 | "pages/notice/index",
18 | "pages/msg/index",
19 | "pages/msg/list",
20 | "pages/my/appointment",
21 | "pages/appointment/index",
22 | "pages/driver/authentication"
23 | ],
24 | "window": {
25 | "backgroundTextStyle": "dark",
26 | "navigationBarBackgroundColor": "#f4de3b",
27 | "navigationBarTitleText": "同城拼车",
28 | "navigationBarTextStyle": "black",
29 | "enablePullDownRefresh": true
30 | },
31 | "tabBar": {
32 | "color": "#aaa",
33 | "selectedColor": "#ddc40b",
34 | "backgroundColor": "#fff",
35 | "borderStyle": "black",
36 | "list": [
37 | {
38 | "pagePath": "pages/index/index",
39 | "text": "拼车",
40 | "iconPath": "img/auto.png",
41 | "selectedIconPath": "img/auto1.png"
42 | },
43 | {
44 | "pagePath": "pages/dynamic/index",
45 | "text": "动态",
46 | "iconPath": "img/favorite.png",
47 | "selectedIconPath": "img/favorite1.png"
48 | },
49 | {
50 | "pagePath": "pages/msg/index",
51 | "text": "消息",
52 | "iconPath": "img/comments.png",
53 | "selectedIconPath": "img/comments1.png"
54 | },
55 | {
56 | "pagePath": "pages/my/index",
57 | "text": "我的",
58 | "iconPath": "img/account.png",
59 | "selectedIconPath": "img/account1.png"
60 | }
61 | ]
62 | },
63 | "networkTimeout": {
64 | "request": 10000,
65 | "downloadFile": 10000
66 | },
67 | "debug": true,
68 | "permission": {
69 | "scope.userLocation": {
70 | "desc": "你的位置信息将用于小程序位置接口的效果展示"
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/pages/index/index.wxss:
--------------------------------------------------------------------------------
1 | /**index.wxss**/
2 | .head{display:flex;flex-direction: row;background: #f5f5f5;width:100%;padding: 10rpx 0rpx 3rpx 0rpx; align-items: center; justify-content: space-between;}
3 | .head input,.head picker{background: #fff;width: 180rpx;margin:5rpx;height: 70rpx;border-radius: 10rpx;font-size: .8rem;text-align: center;line-height:70rpx;color:#444;}
4 | .dateImg{width: 40rpx;height:40rpx;margin:25rpx 10rpx;}
5 | .to{width: 60rpx;height:60rpx;margin:20rpx 0rpx;}
6 |
7 | .date{font-size: .8rem!important;width: 200rpx!important;}
8 |
9 | .page__bd{
10 | height: 100%;
11 | }
12 | .page__bd{
13 | padding-bottom: 0;
14 | }
15 | .weui-tab__content{
16 | padding-top: 60px;
17 | text-align: center;
18 | }
19 | .weui-navbar{background: #fff;}
20 | .weui-media-box{position: relative}
21 | .weui-navbar__slider{background: rgb(254,230,50)}
22 | .weui-tab__content{padding-top: 0!important;}
23 | .list_title,.list_desc{text-align: left!important;}
24 | .list_title{color:black;font-size: .85rem;}
25 | .list_desc{margin: 5rpx 0rpx;color: #444}
26 | .list_type_1{background: rgb(254,230,50);padding: 0rpx 5rpx;margin-right:1rem;color:lightseagreen;}
27 | .list_type_2{background: lightseagreen;padding: 0rpx 5rpx;margin-right:1rem;color:rgb(254,230,50);}
28 | .to1{width: 60rpx;height:60rpx;position:absolute;top:12px;}
29 | .list_over{margin-left:60rpx;}
30 | .list_icon{width:30rpx;height:30rpx;position:absolute}
31 | .weui-media-box__info__meta text{margin:0rpx 33rpx;}
32 | .list_tm{float: right;color: indianred;font-size: .8rem;}
33 | .weui-media-box__info__meta{padding-right: .2rem!important;}
34 | .icon-gender{width:30rpx;height: 30rpx;bottom: 16rpx;position:absolute;left:120rpx;}
35 |
36 | .add{position: fixed;bottom: 30px;right:30px;}
37 | .add image{width: 120rpx;height: 120rpx;}
38 |
39 | .slide-image{width: 750rpx;min-height: 150px;}
40 |
41 | .locationInput{
42 | background:#fff;
43 | width:180rpx;
44 | margin:5rpx;
45 | height:70rpx;
46 | border-radius:10rpx;
47 | font-size:.8rem;
48 | text-align:center;
49 | line-height:70rpx;
50 | color:#444;
51 | overflow: hidden;
52 | }
--------------------------------------------------------------------------------
/pages/dynamic/add.js:
--------------------------------------------------------------------------------
1 | // pages/comment/index.js
2 | var app = getApp();
3 | var util = require('../../utils/util.js');
4 | Page({
5 | data: {
6 | files: [],
7 | content:'',
8 | gender:1
9 | },
10 | chooseImage: function (e) {
11 | var that = this;
12 | wx.chooseImage({
13 | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
14 | sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
15 | success: function (res) {
16 | // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
17 | res.tempFilePaths.forEach(function(item){
18 | util.uploadFile(item, function (data) {
19 | data = JSON.parse(data);
20 | if (data.status) {
21 | that.setData({
22 | files: that.data.files.concat(data.data.path)
23 | });
24 | util.clearError(that);
25 | } else {
26 | util.isError(data.errmsg, that);
27 | }
28 | });
29 | })
30 | }
31 | })
32 | },
33 | bindinput: function(e) {
34 | this.setData({content:e.detail.value});
35 | },
36 | previewImage: function(e){
37 | wx.previewImage({
38 | current: e.currentTarget.id, // 当前显示图片的http链接
39 | urls: this.data.files // 需要预览的图片http链接列表
40 | })
41 | },
42 | bindfocus:function(){
43 | util.clearError(this);
44 | },
45 | submit:function(){
46 | var that = this;
47 | var content = that.data.content;
48 | //console.log(content);return false;
49 | if(content == '' && ((that.data.files).length == 0)){
50 | util.isError('请输入内容或者至少选择一张图片', that);
51 | return false;
52 | }
53 | util.req('dynamic/add',{
54 | 'content':content,
55 | 'img':JSON.stringify(that.data.files),
56 | 'sk':app.globalData.sk
57 | },function(data){
58 | if(data.status == 1){
59 | wx.navigateBack({
60 | delta: 1
61 | })
62 | }
63 | })
64 |
65 |
66 |
67 | }
68 | })
--------------------------------------------------------------------------------
/pages/msg/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 评论
13 | {{data.comment}}
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | 赞
22 | {{data.zan}}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | 系统消息
31 | {{data.notice}}
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/pages/dynamic/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{item.nickName}}
12 |
13 | {{item.content}}
14 |
15 |
16 |
17 |
18 | {{item.time}}
19 |
20 |
21 |
22 |
23 |
24 | {{comment.nickName}}回复{{comment.reply}}:{{comment.content}}
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
41 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | //app.js
2 | var util = require('utils/util.js');
3 | App({
4 |
5 | onLaunch: function () {
6 | // wx.setEnableDebug({
7 | // enableDebug: true
8 | // })
9 | var that = this;
10 | //小程序初始化先判断用户是否登录
11 | wx.checkSession({
12 | success: function(){
13 | wx.getStorage({
14 | key: 'sk',
15 | success: function(res) {
16 | var sk = res.data;
17 | util.req('customer/vaild_sk', { "sk": sk }, function (data) {
18 | if (data.status) {
19 | that.globalData.sk = sk;
20 | } else {
21 | that.login();
22 | return;
23 | }
24 | })
25 | },
26 | fail:function() {
27 | that.login();
28 | return;
29 | }
30 | })
31 |
32 | wx.getStorage({
33 | key: 'userInfo',
34 | success: function(res) {
35 | that.globalData.userInfo = res.data;
36 | },
37 | fail:function() {
38 | that.login();
39 | }
40 | });
41 | },
42 | fail: function(){
43 | //登录态过期
44 | that.login() //重新登录
45 | }
46 | })
47 |
48 | },
49 |
50 | login:function(){
51 | wx.reLaunch({
52 | url: '/pages/toLogin/toLogin'
53 | })
54 | } ,
55 |
56 | loginFail: function () {
57 | var that = this;
58 | wx.showModal({
59 | content: '登录失败,请允许获取用户信息,如不显示请删除小程序重新进入',
60 | showCancel: false
61 | });
62 | that.login();
63 | },
64 | setUserInfo:function(data){ //将用户信息缓存保存
65 | this.globalData.userInfo = data;
66 | wx.setStorage({
67 | key:"userInfo",
68 | data:data
69 | })
70 | },
71 | setSk:function(data){ //将用户信息缓存保存
72 | this.globalData.sk = data;
73 | wx.setStorage({
74 | key:"sk",
75 | data:data
76 | })
77 | },
78 |
79 | reflashUser:function(){
80 | var that = this;
81 | util.req('customer', [], function (data) {
82 | if (data.data == null){
83 | that.login();
84 | }
85 | that.setUserInfo(data.data);
86 | })
87 | },
88 | globalData:{
89 | userInfo:null,
90 | sk:null
91 | }
92 |
93 | })
--------------------------------------------------------------------------------
/pages/comment/index.js:
--------------------------------------------------------------------------------
1 | // pages/comment/index.js
2 | var app = getApp();
3 | var util = require('../../utils/util.js');
4 | Page({
5 | data: {
6 | files: [],
7 | content:'',
8 | gender:1
9 | },
10 | chooseImage: function (e) {
11 | var that = this;
12 | wx.chooseImage({
13 | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
14 | sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
15 | success: function (res) {
16 | // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
17 | res.tempFilePaths.forEach(function(item){
18 | util.uploadFile(item, function (data) {
19 | data = JSON.parse(data);
20 | if (data.status) {
21 | that.setData({
22 | files: that.data.files.concat(data.data.path)
23 | });
24 | util.clearError(that);
25 | } else {
26 | util.isError(data.errmsg, that);
27 | }
28 | });
29 | })
30 | }
31 | })
32 | },
33 | bindinput: function(e) {
34 | this.setData({content:e.detail.value});
35 | },
36 | previewImage: function(e){
37 | wx.previewImage({
38 | current: e.currentTarget.id, // 当前显示图片的http链接
39 | urls: this.data.files // 需要预览的图片http链接列表
40 | })
41 | },
42 | bindfocus:function(){
43 | util.clearError(this);
44 | },
45 | submit:function(){
46 | var that = this;
47 | var content = that.data.content;
48 | if(content == '' && ((that.data.files).length == 0)){
49 | util.isError('请输入内容或者至少选择一张图片', that);
50 | return false;
51 | }
52 | util.req('comment/add',{
53 | 'info_id':that.data.data.id,
54 | 'reply':(that.data.data.reply == '楼主')?'':that.data.data.reply,
55 | 'type':'info',
56 | 'content':content,
57 | 'img':JSON.stringify(that.data.files)
58 | },function(data){
59 | if(data.status){
60 | wx.navigateBack({
61 | delta: 1
62 | })
63 | }
64 | })
65 |
66 |
67 |
68 | },
69 | onLoad:function(options){
70 | this.setData({
71 | 'data.id':options.id,
72 | 'data.reply':(options.reply)?options.reply:'楼主',
73 | });
74 | }
75 | })
--------------------------------------------------------------------------------
/pages/my/mydyn.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{item.nickName}}
12 |
13 | {{item.content}}
14 |
15 |
16 |
17 |
18 | {{item.time}}删除
19 |
20 |
21 |
22 |
23 |
24 | {{comment.nickName}}回复{{comment.reply}}:{{comment.content}}
25 |
26 |
27 |
28 |
29 |
30 |
31 | 没有记录
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
42 |
--------------------------------------------------------------------------------
/pages/my/appointment.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{item}}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {{item.name}}({{item.phone}})
18 | 人数:{{item.surplus}}
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | {{item.departure}} -> {{item.destination}}
30 | 出发时间:{{item.time}}
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/pages/my/appointment.js:
--------------------------------------------------------------------------------
1 | var app = getApp();
2 | var util = require('../../utils/util.js');
3 |
4 | var sliderWidth = 96; // 需要设置slider的宽度,用于计算中间位置
5 | Page({
6 | data: {
7 | tabs: ["我是车主", "我是乘客"],
8 | activeIndex: 0,
9 | sliderOffset: 0,
10 | sliderLeft: 0
11 | },
12 | onLoad: function () {
13 | var that = this;
14 | wx.getSystemInfo({
15 | success: function (res) {
16 | that.setData({
17 | sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
18 | sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex
19 | });
20 | }
21 | });
22 | },
23 | tabClick: function (e) {
24 | this.setData({
25 | sliderOffset: e.currentTarget.offsetLeft,
26 | activeIndex: e.currentTarget.id
27 | });
28 | },
29 | onShow:function(){
30 | this.getPassenger();
31 | this.getMy();
32 | },
33 | tel:function(e){
34 | wx.makePhoneCall({
35 | phoneNumber: e.target.dataset.phone
36 | })
37 | },
38 | getPassenger: function () {
39 | var that = this;
40 | util.req('appointment/getPassenger',{sk:app.globalData.sk},function(data){
41 | if(data.status){
42 | var list = data.data;
43 | var arr = new Array();
44 | list.forEach(function (item) {
45 | var status = item.status;
46 | var phone = item.phone;
47 | if (item.status == 0 && (new Date().getTime()) > (item.time * 1000)) {
48 | var status = 3;
49 | var phone = false;
50 | }
51 | try {
52 | var start = ((item.departure).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
53 | } catch (e) {
54 | var start = (item.departure).split(/[县区]/)[0];
55 | }
56 |
57 | try {
58 | var over = ((item.destination).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
59 | } catch (e) {
60 | var over = (item.destination).split(/[县区]/)[0];
61 | }
62 | arr.push({
63 | departure: start,
64 | destination: over,
65 | time: item.leave_time,
66 | status: status,
67 | id:item.id,
68 | phone: phone
69 | })
70 | })
71 | that.setData({ 'Passenger': arr});
72 | }
73 | })
74 | },
75 | getMy: function () {
76 | var that = this;
77 | util.req('appointment/my', { sk: app.globalData.sk }, function (data) {
78 | if (data.status == 1) {
79 | var list = data.data;
80 | that.setData({my:list});
81 | }
82 | })
83 | }
84 | });
--------------------------------------------------------------------------------
/pages/dynamic/index.js:
--------------------------------------------------------------------------------
1 | var app = getApp();
2 | var util = require('../../utils/util.js');
3 | var page = 1;
4 | Page({
5 | data:{
6 | seecomment:false,
7 | reply:''
8 | },
9 | add:function(){
10 | wx.navigateTo({
11 | url: '/pages/dynamic/add'
12 | })
13 | },
14 | previeimg:function(e){
15 | var that = this;
16 | console.log(e);
17 | wx.previewImage({
18 | current: e.currentTarget.id,
19 | urls: that.data.list[e.currentTarget.dataset.name].img
20 | })
21 | },
22 | getList:function(){
23 | var that = this;
24 | util.req('dynamic/getlist',{page:page},function(data){
25 | var list = data.data;
26 | if (page == 1) {
27 | var arr = new Array();
28 | }else{
29 | var arr = that.data.list;
30 | }
31 |
32 | list.forEach(function(item){
33 | util.req('comment/get', { id: item.id, type: 'dynamic'}, function (data) {
34 | var comment = data.data;
35 | var li = {
36 | avatarUrl: item.avatarUrl,
37 | content: item.content,
38 | id: item.id,
39 | img: JSON.parse(item.img),
40 | nickName: item.nickName,
41 | time: util.getDateBiff(Date.parse(new Date((item.updated_at).replace(/-/g, "/")))), //小程序真机中无法识别时间符号【-】,故此将其转为【/】
42 | zan: item.zan,
43 | comments: comment
44 | }
45 | arr.unshift(li); //将之前的从数组最后添加一个元素改为数组的开头添加元素
46 | that.setData({ list: arr });
47 | });
48 | })
49 | })
50 | },
51 | onShow:function(options){
52 | this.getList();
53 | },
54 | onReachBottom:function(){
55 | if(!this.data.nomore){
56 | page++;
57 | this.getList();
58 | }
59 | },
60 | seecomment:function(e){
61 | console.log(e);
62 | var reply = (!e.target.dataset.name)?'':'回复'+e.target.dataset.name;
63 | this.setData({
64 | 'reply':reply,
65 | 'seecomment':true,
66 | 'nowid':e.currentTarget.id
67 | });
68 | },
69 | comment:function(e){
70 | var that = this;
71 | var content = e.detail.value;
72 | if(content == ''){
73 | return false;
74 | }
75 | util.req('comment/add',{
76 | 'info_id':that.data.list[that.data.nowid].id,
77 | 'reply':(that.data.reply).replace('回复',''),
78 | 'type':'dynamic',
79 | 'content':e.detail.value,
80 | 'img':''
81 | },function(data){
82 | if(data.status == 1){
83 | var list = that.data.list;
84 | list[that.data.nowid].comments = (list[that.data.nowid].comments) ? list[that.data.nowid].comments:(new Array());
85 | list[that.data.nowid].comments.unshift({id: data.id, iid: that.data.list[that.data.nowid].id, content: e.detail.value, nickName: app.globalData.userInfo.nickName,reply:(that.data.reply).replace('回复','')})
86 | }
87 | that.setData({list:list});
88 | })
89 | },
90 | hidecomment:function(){
91 | this.setData({'seecomment':false});
92 | },
93 | onPullDownRefresh: function(){
94 | page = 1;
95 | this.getList();
96 | wx.stopPullDownRefresh();
97 | }
98 | })
--------------------------------------------------------------------------------
/pages/appointment/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{errorMsg}}
4 |
5 |
60 |
61 |
--------------------------------------------------------------------------------
/pages/my/fav.js:
--------------------------------------------------------------------------------
1 | // pages/my/list.js
2 | var app = getApp();
3 | var util = require('../../utils/util.js');
4 | var page = 1;
5 | var list = new Array();
6 | Page({
7 | data:{
8 | tabs: ["全部", "车找人", "人找车"]
9 | },
10 | del:function(e){
11 | var that = this;
12 | var currentTarget = e.currentTarget.id;
13 | wx.showModal({
14 | title: '提示',
15 | content: '取消收藏?',
16 | success: function(res) {
17 | if (res.confirm) {
18 | util.req('fav/delfav',{id:list[currentTarget].id},function(data){
19 | if(data.status == 1){
20 | list.splice(currentTarget,1);
21 | that.setData({list:list});
22 | wx.showToast({
23 | title: '取消收藏成功',
24 | icon: 'success',
25 | duration: 2000
26 | })
27 | }else{
28 | util.isError('取消收藏失败,请重试', that);
29 | return false;
30 | }
31 | })
32 | }
33 | }
34 | })
35 | return false;
36 | },
37 | onReachBottom:function(){
38 | if(!this.data.nomore){
39 | page++;
40 | this.getList();
41 | }
42 | },
43 | getList(){
44 | var that = this;
45 | if (that.data.nomore){
46 | return false;
47 | }
48 | util.req('fav/myFav',{page:page},function(data){
49 | if(data.data.length == 0){
50 | if (page == 1) {
51 | that.setData({ 'isnull': true });
52 | }
53 | return false;
54 | }
55 |
56 | if(page == 1){
57 | list = new Array();
58 | }
59 | if(page == data.last_page){
60 | that.setData({ nomore: true });
61 | }
62 | var surp = new Array('','空位','人');
63 | data.data.forEach(function(item){
64 | try {
65 | var start = ((item.departure).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
66 | } catch (e) {
67 | var start = (item.departure).split(/[县区]/)[0];
68 | }
69 | try {
70 | var over = ((item.destination).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
71 | } catch (e) {
72 | var over = (item.destination).split(/[县区]/)[0];
73 | }
74 | var obj = {
75 | start: start,
76 | over: start,
77 | type:that.data.tabs[item.type],
78 | tp:item.type,
79 | time:util.formatTime(new Date(item.leave_time)),
80 | surplus:item.surplus+surp[item.type],
81 | see:item.see,
82 | gender:item.gender,
83 | url: '/pages/info/index?id=' + item.id,
84 | tm: util.getDateDiff(Date.parse(new Date(item.leave_time.replace(/-/g, '/')))),
85 | id:item.id,
86 | fad:item.fad,
87 | leave_time: item.leave_time
88 | };
89 | list.push(obj);
90 | })
91 | that.setData({list:list});
92 | })
93 | },
94 | onPullDownRefresh: function(){
95 | page = 1;
96 | this.getList();
97 | wx.stopPullDownRefresh();
98 | },
99 | onShow:function(){
100 | page = 1;
101 | this.getList();
102 | }
103 | })
--------------------------------------------------------------------------------
/pages/info/index.wxss:
--------------------------------------------------------------------------------
1 | .page{background: #f5f5f5;}
2 | .header{border-bottom:1px solid #eee;height:130rpx;background: #fff;padding:5px 10px 0px 10px;}
3 | .head{width: 100rpx;height: 100rpx;border-radius: 50%;overflow: hidden;border: 1px solid #f4de3b;float: left;margin:5rpx 10rpx;}
4 | .head image{width:100%;height:100%;}
5 | .username{float:left;line-height: 110rpx;font-size:.75rem;}
6 | .icon-add{width:20rpx;height: 20rpx;}
7 | .add{float:right;}
8 | .add button{background: #000;color:#fff;width: 120rpx;font-size:.82rem;height:50rpx;padding:10rpx;line-height: 30rpx;border-radius: 10rpx;margin-top: 40rpx;}
9 |
10 | .content{clear:both;margin-top: 20rpx;background: #fff;padding:5px 10px 40px 10px;}
11 | .p{position: relative;}
12 | .icon{width:50rpx;height: 50rpx;margin:10rpx;position:absolute}
13 | .p text{margin-left:60rpx;font-size:.9rem;}
14 | .icon-tel{width:60rpx;height: 60rpx;margin-left:50rpx;}
15 | .contact text{font-size:.94rem;line-height: 80rpx;margin: 20rpx;}
16 | .tit{color:#000;}
17 | .icon-gender{width:30rpx;height: 30rpx;top: 16rpx;}
18 | .tocomment{width:100rpx;float:left}
19 |
20 | .footer{position: fixed;
21 | bottom: 0;
22 | left: 0;
23 | z-index: 1001;
24 | display: table;
25 | width: 100%;
26 | height: 60rpx;
27 | padding: 0.1375rem 0;
28 | background-color: #f5f5f5;
29 | border-top: solid #d7d7d7 0.0625rem;}
30 | .comment{display: block;
31 | margin: 0 0.25rem 0 0.5rem;
32 | padding: 0.2375rem;
33 | color: #888;
34 | font-size:.70rem;
35 | background-color: #fff;
36 | border: solid #e9e9e9 1px;
37 | border-radius: 0.125rem;width:550rpx;float: left}
38 |
39 | .footer image{width:40rpx;height: 40rpx;margin:10rpx;}
40 | .ft-icon{position: relative;}
41 | .msg{position: absolute;right:100rpx}
42 | .shoucang{position: absolute;right:10rpx;}
43 | .comnum{position: absolute;right:80rpx;margin-left:80rpx;color:darkred}
44 | .remark{margin: 20rpx; font-size: .78rem;}
45 |
46 | #comment_list{margin-top:10px;background: #fff;padding-bottom: 60px;}
47 | #comment_list .comment_list_header{font-size:.78rem;padding:5px 10px;border:1px solid #eee;}
48 | #comment_list .list .item .left{width:140rpx;height:140rpx;float:left;}
49 | #comment_list .list .item .left image{width:80rpx;height:80rpx;border-radius: 50%;margin:10px;border:1px solid #f4de3b}
50 | #comment_list .list .item{border-bottom:1px solid #eee;overflow:hidden;}
51 | #comment_list .list .item .com_main{width:600rpx;float:left;margin-top:40rpx;font-size:.8rem;padding-bottom: 10rpx;}
52 | #comment_list .list .item .com_main .text{color:#222;margin-top:10rpx;}
53 | #comment_list .list .item .com_main .info{padding: 5rpx;}
54 | #comment_list .list .item .com_main .info text{font-size: .7rem!important;float:left;}
55 | #comment_list .list .item .com_main .info image{width:16px;height:16px;position:absolute;left:-40rpx;top:6rpx;}
56 | #comment_list .list .item .com_main .info .zview{position: relative; min-width:15px;}
57 | #comment_list .list .item .com_main .info view{float: right;margin:0px 30rpx;}
58 | #comment_list .list .item .com_main image{max-width: 98%;margin-right:2%;}
59 | #comment_list .list{min-height: 300px;}
60 | #comment_list .list .nocomment{text-align: center;line-height: 200px;}
61 | #comment_list .list .reply{background: #f5f5f5;width:90%;padding:5px 2%;margin-left:3px;color:#000;}
62 |
63 | .back{position: fixed;top:70px;left:0px;background: rgba(0, 0, 0, 0.5);padding:9px 20px 5px 10px;border-bottom-right-radius:2em;border-top-right-radius:2em;}
64 | .back image{width:20px;height: 20px;}
65 | .weui-input{overflow: hidden}
66 | .mini-btn{
67 | margin-right: 5px;
68 | }
--------------------------------------------------------------------------------
/pages/my/mydyn.js:
--------------------------------------------------------------------------------
1 | var app = getApp();
2 | var util = require('../../utils/util.js');
3 | var page = 1;
4 | Page({
5 | data: {
6 | seecomment: false,
7 | reply: ''
8 | },
9 | add: function () {
10 | wx.navigateTo({
11 | url: '/pages/dynamic/add'
12 | })
13 | },
14 | previeimg: function (e) {
15 | var that = this;
16 | console.log(e);
17 | wx.previewImage({
18 | current: e.currentTarget.id,
19 | urls: that.data.list[e.currentTarget.dataset.name].img
20 | })
21 | },
22 | getList: function () {
23 | var that = this;
24 | util.req('dynamic/getlist', { page: page, user:'my' }, function (data) {
25 | var list = data.data;
26 | if (page == 1) {
27 | var arr = new Array();
28 | } else {
29 | var arr = that.data.list;
30 | }
31 |
32 | list.forEach(function (item) {
33 | var li = {
34 | avatarUrl: item.avatarUrl,
35 | content: item.content,
36 | id: item.id,
37 | img: JSON.parse(item.img),
38 | nickName: item.nickName,
39 | time: util.getDateBiff(item.time * 1000),
40 | zan: item.zan,
41 | comment: item.comment
42 | }
43 | arr.push(li);
44 | })
45 | that.setData({ list: arr });
46 | })
47 | },
48 | del: function (e) {
49 | var that = this;
50 | wx.showModal({
51 | title: '删除提示',
52 | content: '确定删除?',
53 | success: function (res) {
54 | if (res.confirm) {
55 | var list = that.data.list;
56 | var id = list[e.target.dataset.id].id;
57 | util.req('dynamic/del',{id:id},function(data){
58 | if(data.status){
59 | list.splice(e.target.dataset.id,1);
60 | console.log(list);
61 | that.setData({list:list});
62 | wx.showToast({
63 | title: '删除成功',
64 | })
65 | }else{
66 | util.isError(data.msg,that);
67 | }
68 | })
69 | }
70 | }
71 | })
72 | },
73 | onLoad: function (options) {
74 | this.getList();
75 | },
76 | onReachBottom: function () {
77 | if (!this.data.nomore) {
78 | page++;
79 | this.getList();
80 | }
81 | },
82 | seecomment: function (e) {
83 | console.log(e);
84 | var reply = (!e.target.dataset.name) ? '' : '回复' + e.target.dataset.name;
85 | this.setData({
86 | 'reply': reply,
87 | 'seecomment': true,
88 | 'nowid': e.currentTarget.id
89 | });
90 | },
91 | comment: function (e) {
92 | var that = this;
93 | var content = e.detail.value;
94 | if (content == '') {
95 | return false;
96 | }
97 | util.req('comment/add', {
98 | 'iid': that.data.list[that.data.nowid].id,
99 | 'reply': (that.data.reply).replace('回复', ''),
100 | 'type': 'dynamic',
101 | 'content': e.detail.value,
102 | 'sk': app.globalData.sk
103 | }, function (data) {
104 | if (data.status == 1) {
105 | var list = that.data.list;
106 | list[that.data.nowid].comments.unshift({ id: data.id, iid: that.data.list[that.data.nowid].id, content: e.detail.value, nickName: app.globalData.userInfo.nickName, reply: (that.data.reply).replace('回复', '') })
107 | }
108 | that.setData({ list: list });
109 | })
110 | },
111 | hidecomment: function () {
112 | this.setData({ 'seecomment': false });
113 | },
114 | onPullDownRefresh: function () {
115 | page = 1;
116 | this.getList();
117 | wx.stopPullDownRefresh();
118 | }
119 | })
--------------------------------------------------------------------------------
/pages/my/list.js:
--------------------------------------------------------------------------------
1 | // pages/my/list.js
2 | var app = getApp();
3 | var util = require('../../utils/util.js');
4 | var page = 1;
5 | var list = new Array();
6 | Page({
7 | data:{
8 | tabs: ["全部", "车找人", "人找车"]
9 | },
10 | del:function(e){
11 | var that = this;
12 | var currentTarget = e.currentTarget.id;
13 | wx.showModal({
14 | title: '提示',
15 | content: '确定删除?',
16 | success: function(res) {
17 | if (res.confirm) {
18 | util.req('info/del',{id:list[currentTarget].id},function(data){
19 | if(data.status == 1){
20 | list.splice(currentTarget,1);
21 | that.setData({list:list});
22 | wx.showToast({
23 | title: '删除成功',
24 | icon: 'success',
25 | duration: 2000
26 | })
27 | }else{
28 | util.isError('删除失败,请重试', that);
29 | return false;
30 | }
31 | })
32 | }
33 | }
34 | })
35 | return false;
36 | },
37 | edit:function(e){
38 | var currentTarget = e.currentTarget.id;
39 | console.log('/pages/info/add?id='+list[currentTarget].id);
40 | wx.navigateTo({
41 | url: '/pages/info/edit?id='+list[currentTarget].id,
42 | complete:function(res){
43 | console.log(res)
44 | }
45 | })
46 | },
47 | onReachBottom:function(){
48 | if(!this.data.nomore){
49 | page++;
50 | this.getList();
51 | }
52 | },
53 | getList(){
54 | var that = this;
55 | if (that.data.nomore){
56 | return false;
57 | }
58 | util.req('info/mylist',{page:page},function(data){
59 | if(data.data.length == 0){
60 | if(page == 1){ ;
61 | that.setData({'isnull':true});
62 | }
63 | return false;
64 | }
65 | if(page == data.last_page){
66 | that.setData({ nomore: true });
67 | }
68 |
69 | if(page == 1){
70 | list = new Array();
71 | }
72 |
73 | var surp = new Array('','空位','人');
74 | data.data.forEach(function(item){
75 | try {
76 | var start = ((item.departure).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
77 | } catch (e) {
78 | var start = (item.departure).split(/[县区]/)[0];
79 | }
80 | try {
81 | var over = ((item.destination).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
82 | } catch (e) {
83 | var over = (item.destination).split(/[县区]/)[0];
84 | }
85 | var tm = util.getDateDiff(Date.parse(new Date(item.leave_time.replace(/-/g, '/'))));
86 | var time = item.leave_time;
87 | if (item.mode == '2') {
88 | tm = '天天拼';
89 | time = item.leave_time.split(' ')[1];
90 | console.log(time);
91 | }
92 | var obj = {
93 | start: start,
94 | over: over,
95 | type:that.data.tabs[item.type],
96 | tp: item.type,
97 | time: time,
98 | surplus:item.surplus+surp[item.type],
99 | see:item.see,
100 | gender: item.gender,
101 | mode: item.mode,
102 | url: '/pages/info/index?id=' + item.id,
103 | tm: tm,
104 | leave_time: time,
105 | id:item.id
106 | };
107 | list.push(obj);
108 | })
109 | that.setData({list:list});
110 | })
111 | },
112 | onPullDownRefresh: function(){
113 | page = 1;
114 | this.getList();
115 | wx.stopPullDownRefresh();
116 | },
117 | onShow:function(){
118 | page = 1;
119 | this.getList();
120 | }
121 | })
--------------------------------------------------------------------------------
/pages/my/index.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{userInfo.nickName}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | 发布记录
20 | {{infoCount}}
21 |
22 |
23 |
24 |
25 |
26 | 我的预约
27 | {{appointmentCount}}
28 |
29 |
30 |
31 |
32 |
33 | 我的收藏
34 |
35 |
36 |
37 |
38 |
39 |
40 | 我的动态
41 |
42 |
43 |
44 |
45 |
46 |
47 | 个人信息
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 | 车主认证
56 | {{driverMessage}}
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/pages/msg/list.wxss:
--------------------------------------------------------------------------------
1 | #list,#list li,.po-hd,.post {
2 | overflow: hidden
3 | }
4 |
5 | .po-cmt,.post .list-img:nth-child(1),.time {
6 | float: left
7 | }
8 |
9 | #list li,.cmt-wrap,.r,.time {
10 | clear: both
11 | }
12 |
13 | #avt,#user-name {
14 | position: absolute
15 | }
16 |
17 | #bg {
18 | width: 100%
19 | }
20 |
21 | #user-name {
22 | text-align: right;
23 | right: 114px;
24 | bottom: 15px;
25 | color: #fff;
26 | font-weight: 700;
27 | font-size: 15px;
28 | text-shadow: 0 1px .5px #000
29 | }
30 |
31 | #share a,.btn {
32 | font-size: 14px
33 | }
34 |
35 | .btn,b {
36 | font-weight: 400
37 | }
38 |
39 | #share a,#share p,.btn {
40 | text-align: center
41 | }
42 |
43 | #avt {
44 | width: 74px;
45 | height: 74px;
46 | border: 1px solid #dbdbdb;
47 | right: 15px;
48 | bottom: -22px;
49 | padding: 1px;
50 | background-color: #fff
51 | }
52 |
53 | #list li,.po-hd {
54 | position: relative
55 | }
56 |
57 |
58 | #list li {
59 | line-height: 1.5;
60 | border-bottom: 1px solid #e2e2e2;
61 | margin-top: 15px;
62 | padding-bottom: 15px
63 | }
64 |
65 | #share a:nth-child(2),.ads,.po-avt {
66 | position: absolute
67 | }
68 |
69 | .ads {
70 | color: #999;
71 | right: 5px;
72 | top: 0
73 | }
74 | .post view{color:#000}
75 |
76 | .ads img {
77 | width: 10px;
78 | padding-left: 8px
79 | }
80 |
81 | .ad-link {
82 | color: #3b5384
83 | }
84 |
85 | .post .ad-link img {
86 | width: 11px;
87 | padding: 0;
88 | display: inline-block
89 | }
90 |
91 | .po-avt-wrap {
92 | padding-left: 10px
93 | }
94 |
95 | .po-avt {
96 | width: 40px;
97 | height: 40px;
98 | top: 0;
99 | left: 10px
100 | }
101 |
102 | .r {
103 | border-bottom: 8px solid #eee;
104 | border-left: 8px solid transparent;
105 | border-right: 8px solid transparent;
106 | width: 1px;
107 | margin-top: 5px;
108 | margin-left: 10px
109 | }
110 |
111 | .po-cmt {
112 | padding-left: 60px;
113 | padding-right: 10px;
114 | width: 100%;
115 | box-sizing: border-box
116 | }
117 |
118 | .po-name {
119 | color: #576b95
120 | }
121 |
122 | .post {
123 | color: #252525;
124 | padding-bottom: 10px
125 | }
126 |
127 | .post image {
128 | padding: 10px 5px 0 0;
129 | display: block;
130 | max-height: 130px;
131 | max-width: 130px
132 | }
133 |
134 |
135 | .post .list-img {
136 | width: 30%;
137 | max-height: 80px;
138 | max-width: 80px;
139 | padding-right: 5px;
140 | float: left;
141 | object-fit: cover
142 | }
143 |
144 | .post .list-img:last-child {
145 | padding-right: 0
146 | }
147 |
148 | .time {
149 | color: #b1b1b1;
150 | font-size: .7rem;
151 | }
152 |
153 | .c-icon {
154 | width: 20px;
155 | height: 14px;
156 | float: right
157 | }
158 |
159 | .cmt-wrap {
160 | width: 100%;
161 | background-color: #eee
162 | }
163 |
164 | .like {
165 | color: #576b95;
166 | padding: 5px 5px 3px 12px
167 | }
168 |
169 | .like image {
170 | width: 12px;
171 | padding-right: 5px
172 | }
173 |
174 | .cmt-list {
175 | color: #454545
176 | }
177 |
178 | .cmt-list view {
179 | padding-top: 3px;
180 | border-bottom: 1px solid #eee;
181 | padding: 5px 12px;
182 | }
183 |
184 | .cmt-list text {
185 | color: #3b5384
186 | }
187 |
188 | .list_item{margin:10px 0px;border-bottom:1px solid #eee;overflow:hidden;padding:10px 0px;position:relative}
189 |
190 | .add{position: fixed;bottom: 30px;right:30px;}
191 | .add image{width: 80rpx;height: 80rpx;}
192 |
193 | .comment{position: fixed;bottom:0;z-index:100000;background:#f5f5f5;width:100%;}
194 | .comment input{width:90%;margin:5px 5%;background: #fff;border:1px solid #eee;padding:10rpx;}
195 | .comment_hover{background:#eee;}
--------------------------------------------------------------------------------
/pages/dynamic/index.wxss:
--------------------------------------------------------------------------------
1 | #list,#list li,.po-hd,.post {
2 | overflow: hidden
3 | }
4 |
5 | .po-cmt,.post .list-img:nth-child(1),.time {
6 | float: left
7 | }
8 |
9 | #list li,.cmt-wrap,.r,.time {
10 | clear: both
11 | }
12 |
13 | #avt,#user-name {
14 | position: absolute
15 | }
16 |
17 | #bg {
18 | width: 100%
19 | }
20 |
21 | #user-name {
22 | text-align: right;
23 | right: 114px;
24 | bottom: 15px;
25 | color: #fff;
26 | font-weight: 700;
27 | font-size: 15px;
28 | text-shadow: 0 1px .5px #000
29 | }
30 |
31 | #share a,.btn {
32 | font-size: 14px
33 | }
34 |
35 | .btn,b {
36 | font-weight: 400
37 | }
38 |
39 | #share a,#share p,.btn {
40 | text-align: center
41 | }
42 |
43 | #avt {
44 | width: 74px;
45 | height: 74px;
46 | border: 1px solid #dbdbdb;
47 | right: 15px;
48 | bottom: -22px;
49 | padding: 1px;
50 | background-color: #fff
51 | }
52 |
53 | #list li,.po-hd {
54 | position: relative
55 | }
56 |
57 |
58 | #list li {
59 | line-height: 1.5;
60 | border-bottom: 1px solid #e2e2e2;
61 | margin-top: 15px;
62 | padding-bottom: 15px
63 | }
64 |
65 | #share a:nth-child(2),.ads,.po-avt {
66 | position: absolute
67 | }
68 |
69 | .ads {
70 | color: #999;
71 | right: 5px;
72 | top: 0
73 | }
74 | .post view{color:#000}
75 |
76 | .ads img {
77 | width: 10px;
78 | padding-left: 8px
79 | }
80 |
81 | .ad-link {
82 | color: #3b5384
83 | }
84 |
85 | .post .ad-link img {
86 | width: 11px;
87 | padding: 0;
88 | display: inline-block
89 | }
90 |
91 | .po-avt-wrap {
92 | padding-left: 10px
93 | }
94 |
95 | .po-avt {
96 | width: 40px;
97 | height: 40px;
98 | top: 0;
99 | left: 10px
100 | }
101 |
102 | .r {
103 | border-bottom: 8px solid #eee;
104 | border-left: 8px solid transparent;
105 | border-right: 8px solid transparent;
106 | width: 1px;
107 | margin-top: 5px;
108 | margin-left: 10px
109 | }
110 |
111 | .po-cmt {
112 | padding-left: 60px;
113 | padding-right: 10px;
114 | width: 100%;
115 | box-sizing: border-box
116 | }
117 |
118 | .po-name {
119 | color: #576b95
120 | }
121 |
122 | .post {
123 | color: #252525;
124 | padding-bottom: 10px
125 | }
126 |
127 | .post image {
128 | padding: 10px 5px 0 0;
129 | display: block;
130 | max-height: 130px;
131 | max-width: 130px
132 | }
133 |
134 |
135 | .post .list-img {
136 | width: 30%;
137 | max-height: 80px;
138 | max-width: 80px;
139 | padding-right: 5px;
140 | float: left;
141 | object-fit: cover
142 | }
143 |
144 | .post .list-img:last-child {
145 | padding-right: 0
146 | }
147 |
148 | .time {
149 | color: #b1b1b1;
150 | font-size: .7rem;
151 | }
152 |
153 | .c-icon {
154 | width: 20px;
155 | height: 14px;
156 | float: right
157 | }
158 |
159 | .cmt-wrap {
160 | width: 100%;
161 | background-color: #eee
162 | }
163 |
164 | .like {
165 | color: #576b95;
166 | padding: 5px 5px 3px 12px
167 | }
168 |
169 | .like image {
170 | width: 12px;
171 | padding-right: 5px
172 | }
173 |
174 | .cmt-list {
175 | color: #454545
176 | }
177 |
178 | .cmt-list view {
179 | padding-top: 3px;
180 | border-bottom: 1px solid #eee;
181 | padding: 5px 12px;
182 | }
183 |
184 | .cmt-list text {
185 | color: #3b5384
186 | }
187 |
188 | .list_item{margin:10px 0px;border-bottom:1px solid #eee;overflow:hidden;padding:10px 0px;position:relative}
189 |
190 | .add{position: fixed;bottom: 30px;right:30px;}
191 | .add image{width: 80rpx;height: 80rpx;}
192 |
193 | .comment{position: fixed;bottom:0;z-index:100000;background:#f5f5f5;width:100%;}
194 | .comment input{width:90%;margin:5px 5%;background: #fff;border:1px solid #eee;padding:10rpx;}
195 | .comment_hover{background:#eee;}
--------------------------------------------------------------------------------
/pages/info/edit.js:
--------------------------------------------------------------------------------
1 | // pages/info/add.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | var today = util.formatTime(new Date()).split(' ')[0];
5 | var maxday = util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*62))).split(' ')[0];
6 | Page({
7 | data:{
8 | sex: ['请选择性别','男','女'],
9 | type:1,
10 | gender:0,
11 | date:today,
12 | start:today,
13 | end:maxday,
14 | time:'请选择时间',
15 | types:[{name: '1', value: '车找人',checked: true},{name: '2', value: '人找车'}],
16 | Surpluss:['请选择',1,2,3,4,5,6],
17 | surplus:0,
18 | isAgree: false,
19 | vehicle:'',
20 | departure:'出发地',
21 | destination: '目的地',
22 | dateText: ['', '出发时间', '截止时间']
23 | },
24 | setSex:function(e){
25 | this.setData({'data.gender':e.detail.value})
26 | },
27 | bindDateChange:function(e){
28 | this.setData({
29 | 'data.date': e.detail.value
30 | })
31 | },
32 | bindTimeChange: function (e) {
33 | this.setData({
34 | 'data.time': e.detail.value
35 | })
36 | },
37 | setsurplus:function(e){
38 | this.setData({'data.surplus':e.detail.value})
39 | },
40 | bindAgreeChange: function (e) {
41 | this.setData({
42 | isAgree: !!e.detail.value.length
43 | });
44 | },
45 | formSubmit:function(e){
46 | var data = e.detail.value;
47 | var that = this;
48 | console.log(data);
49 |
50 | if(data.name == ''){
51 | util.isError('请输入姓名', that);
52 | return false;
53 | }
54 | if(data.gender == 0){
55 | util.isError('请选择性别', that);
56 | return false;
57 | }
58 |
59 | if(data.phone == ''){
60 | util.isError('请输入手机号码', that);
61 | return false;
62 | }
63 |
64 | if(!(/^1[34578]\d{9}$/.test(data.phone))){
65 | util.isError('手机号码错误', that);
66 | return false;
67 | }
68 | if(that.data.data.departure == '出发地'){
69 | util.isError('请选择出发地', that);
70 | return false;
71 | }
72 | if(that.data.data.destination == '目的地'){
73 | util.isError('请选择目的地', that);
74 | return false;
75 | }
76 | if(data.time == '请选择时间'){
77 | util.isError('请选择出发时间', that);
78 | return false;
79 | }
80 | if(data.surplus == '0'){
81 | var arr = new Array('','剩余空位','乘车人数');
82 | util.isError('请选择'+arr[data.type], that);
83 | return false;
84 | }
85 |
86 |
87 | if(!data.isAgree[0]){
88 | util.isError('请阅读并同意条款',that);
89 | return false;
90 | }
91 | delete data.isAgree;
92 | data.departure = that.data.data.departure;
93 | data.destination = that.data.data.destination;
94 | data.id = that.data.data.id;
95 | util.req('info/add',data,function(data){
96 | if(data.status){
97 | wx.redirectTo({
98 | url: '/pages/info/index?id=' + data.data.info_id
99 | });
100 | }else{
101 | util.isError(data.msg,that);
102 | return false;
103 | }
104 | })
105 | util.clearError(that);
106 | },
107 | sexDeparture:function(){
108 | var that = this;
109 | wx.chooseLocation({
110 | success:function(res){
111 | that.setData({
112 | 'data.departure':res.address
113 | })
114 | }
115 | })
116 | },
117 | sexDestination:function(){
118 | var that = this;
119 | wx.chooseLocation({
120 | success:function(res){
121 | that.setData({
122 | 'data.destination':res.address
123 | })
124 | }
125 | })
126 | },
127 | onLoad:function(options){
128 | var that = this;
129 | util.req('info/index',{id:options.id},function(data){
130 | var time = data.data.leave_time.split(' ');
131 | data.data.date = time[0];
132 | data.data.time = time[1];
133 | that.setData({data:data.data});
134 | })
135 | }
136 | })
--------------------------------------------------------------------------------
/pages/my/mydyn.wxss:
--------------------------------------------------------------------------------
1 | #list,#list li,.po-hd,.post {
2 | overflow: hidden
3 | }
4 |
5 | .po-cmt,.post .list-img:nth-child(1),.time {
6 | float: left
7 | }
8 |
9 | #list li,.cmt-wrap,.r,.time {
10 | clear: both
11 | }
12 |
13 | #avt,#user-name {
14 | position: absolute
15 | }
16 |
17 | #bg {
18 | width: 100%
19 | }
20 |
21 | #user-name {
22 | text-align: right;
23 | right: 114px;
24 | bottom: 15px;
25 | color: #fff;
26 | font-weight: 700;
27 | font-size: 15px;
28 | text-shadow: 0 1px .5px #000
29 | }
30 |
31 | #share a,.btn {
32 | font-size: 14px
33 | }
34 |
35 | .btn,b {
36 | font-weight: 400
37 | }
38 |
39 | #share a,#share p,.btn {
40 | text-align: center
41 | }
42 |
43 | #avt {
44 | width: 74px;
45 | height: 74px;
46 | border: 1px solid #dbdbdb;
47 | right: 15px;
48 | bottom: -22px;
49 | padding: 1px;
50 | background-color: #fff
51 | }
52 |
53 | #list li,.po-hd {
54 | position: relative
55 | }
56 |
57 |
58 | #list li {
59 | line-height: 1.5;
60 | border-bottom: 1px solid #e2e2e2;
61 | margin-top: 15px;
62 | padding-bottom: 15px
63 | }
64 |
65 | #share a:nth-child(2),.ads,.po-avt {
66 | position: absolute
67 | }
68 |
69 | .ads {
70 | color: #999;
71 | right: 5px;
72 | top: 0
73 | }
74 | .post view{color:#000}
75 |
76 | .ads img {
77 | width: 10px;
78 | padding-left: 8px
79 | }
80 |
81 | .ad-link {
82 | color: #3b5384
83 | }
84 |
85 | .post .ad-link img {
86 | width: 11px;
87 | padding: 0;
88 | display: inline-block
89 | }
90 |
91 | .po-avt-wrap {
92 | padding-left: 10px
93 | }
94 |
95 | .po-avt {
96 | width: 40px;
97 | height: 40px;
98 | top: 0;
99 | left: 10px
100 | }
101 |
102 | .r {
103 | border-bottom: 8px solid #eee;
104 | border-left: 8px solid transparent;
105 | border-right: 8px solid transparent;
106 | width: 1px;
107 | margin-top: 5px;
108 | margin-left: 10px
109 | }
110 |
111 | .po-cmt {
112 | padding-left: 60px;
113 | padding-right: 10px;
114 | width: 100%;
115 | box-sizing: border-box
116 | }
117 |
118 | .po-name {
119 | color: #576b95
120 | }
121 |
122 | .post {
123 | color: #252525;
124 | padding-bottom: 10px
125 | }
126 |
127 | .post image {
128 | padding: 10px 5px 0 0;
129 | display: block;
130 | max-height: 130px;
131 | max-width: 130px
132 | }
133 |
134 |
135 | .post .list-img {
136 | width: 30%;
137 | max-height: 80px;
138 | max-width: 80px;
139 | padding-right: 5px;
140 | float: left;
141 | object-fit: cover
142 | }
143 |
144 | .post .list-img:last-child {
145 | padding-right: 0
146 | }
147 |
148 | .time {
149 | color: #b1b1b1;
150 | font-size: .7rem;
151 | }
152 |
153 | .c-icon {
154 | width: 20px;
155 | height: 14px;
156 | float: right
157 | }
158 |
159 | .cmt-wrap {
160 | width: 100%;
161 | background-color: #eee
162 | }
163 |
164 | .like {
165 | color: #576b95;
166 | padding: 5px 5px 3px 12px
167 | }
168 |
169 | .like image {
170 | width: 12px;
171 | padding-right: 5px
172 | }
173 |
174 | .cmt-list {
175 | color: #454545
176 | }
177 |
178 | .cmt-list view {
179 | padding-top: 3px;
180 | border-bottom: 1px solid #eee;
181 | padding: 5px 12px;
182 | }
183 |
184 | .cmt-list text {
185 | color: #3b5384
186 | }
187 |
188 | .list_item{margin:10px 0px;border-bottom:1px solid #eee;overflow:hidden;padding:10px 0px;position:relative}
189 |
190 | .add{position: fixed;bottom: 30px;right:30px;}
191 | .add image{width: 80rpx;height: 80rpx;}
192 |
193 | .comment{position: fixed;bottom:0;z-index:100000;background:#f5f5f5;width:100%;}
194 | .comment input{width:90%;margin:5px 5%;background: #fff;border:1px solid #eee;padding:10rpx;}
195 | .comment_hover{background:#eee;}
196 | .null{line-height: 200px;text-align: center;}
--------------------------------------------------------------------------------
/libs/bmap-wx.min.js:
--------------------------------------------------------------------------------
1 | "use strict";function _classCallCheck(t,a){if(!(t instanceof a))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function t(t,a){for(var e=0;e
2 | {{errorMsg}}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
84 |
85 |
86 |
87 |
88 |
89 |
93 |
94 | {{item}}
95 |
96 |
97 | {{item}}
98 |
99 |
100 | {{item}}
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/wxParse/wxParse.js:
--------------------------------------------------------------------------------
1 | /**
2 | * author: Di (微信小程序开发工程师)
3 | * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
4 | * 垂直微信小程序开发交流社区
5 | *
6 | * github地址: https://github.com/icindy/wxParse
7 | *
8 | * for: 微信小程序富文本解析
9 | * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
10 | */
11 |
12 | /**
13 | * utils函数引入
14 | **/
15 | import showdown from './showdown.js';
16 | import HtmlToJson from './html2json.js';
17 | /**
18 | * 配置及公有属性
19 | **/
20 | var realWindowWidth = 0;
21 | var realWindowHeight = 0;
22 | wx.getSystemInfo({
23 | success: function (res) {
24 | realWindowWidth = res.windowWidth
25 | realWindowHeight = res.windowHeight
26 | }
27 | })
28 | /**
29 | * 主函数入口区
30 | **/
31 | function wxParse(bindName = 'wxParseData', type='html', data='数据不能为空
', target,imagePadding) {
32 | var that = target;
33 | var transData = {};//存放转化后的数据
34 | if (type == 'html') {
35 | transData = HtmlToJson.html2json(data, bindName);
36 | console.log(JSON.stringify(transData, ' ', ' '));
37 | } else if (type == 'md' || type == 'markdown') {
38 | var converter = new showdown.Converter();
39 | var html = converter.makeHtml(data);
40 | transData = HtmlToJson.html2json(html, bindName);
41 | console.log(JSON.stringify(transData, ' ', ' '));
42 | }
43 | transData.view = {};
44 | transData.view.imagePadding = 0;
45 | if(typeof(imagePadding) != 'undefined'){
46 | transData.view.imagePadding = imagePadding
47 | }
48 | var bindData = {};
49 | bindData[bindName] = transData;
50 | that.setData(bindData)
51 | that.wxParseImgLoad = wxParseImgLoad;
52 | that.wxParseImgTap = wxParseImgTap;
53 | }
54 | // 图片点击事件
55 | function wxParseImgTap(e) {
56 | var that = this;
57 | var nowImgUrl = e.target.dataset.src;
58 | var tagFrom = e.target.dataset.from;
59 | if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) {
60 | wx.previewImage({
61 | current: nowImgUrl, // 当前显示图片的http链接
62 | urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表
63 | })
64 | }
65 | }
66 |
67 | /**
68 | * 图片视觉宽高计算函数区
69 | **/
70 | function wxParseImgLoad(e) {
71 | var that = this;
72 | var tagFrom = e.target.dataset.from;
73 | var idx = e.target.dataset.idx;
74 | if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) {
75 | calMoreImageInfo(e, idx, that, tagFrom)
76 | }
77 | }
78 | // 假循环获取计算图片视觉最佳宽高
79 | function calMoreImageInfo(e, idx, that, bindName) {
80 | var temData = that.data[bindName];
81 | if (!temData || temData.images.length == 0) {
82 | return;
83 | }
84 | var temImages = temData.images;
85 | //因为无法获取view宽度 需要自定义padding进行计算,稍后处理
86 | var recal = wxAutoImageCal(e.detail.width, e.detail.height,that,bindName);
87 | // temImages[idx].width = recal.imageWidth;
88 | // temImages[idx].height = recal.imageheight;
89 | // temData.images = temImages;
90 | // var bindData = {};
91 | // bindData[bindName] = temData;
92 | // that.setData(bindData);
93 | var index = temImages[idx].index
94 | var key = `${bindName}`
95 | for (var i of index.split('.')) key+=`.nodes[${i}]`
96 | var keyW = key + '.width'
97 | var keyH = key + '.height'
98 | that.setData({
99 | [keyW]: recal.imageWidth,
100 | [keyH]: recal.imageheight,
101 | })
102 | }
103 |
104 | // 计算视觉优先的图片宽高
105 | function wxAutoImageCal(originalWidth, originalHeight,that,bindName) {
106 | //获取图片的原始长宽
107 | var windowWidth = 0, windowHeight = 0;
108 | var autoWidth = 0, autoHeight = 0;
109 | var results = {};
110 | var padding = that.data[bindName].view.imagePadding;
111 | windowWidth = realWindowWidth-2*padding;
112 | windowHeight = realWindowHeight;
113 | //判断按照那种方式进行缩放
114 | // console.log("windowWidth" + windowWidth);
115 | if (originalWidth > windowWidth) {//在图片width大于手机屏幕width时候
116 | autoWidth = windowWidth;
117 | // console.log("autoWidth" + autoWidth);
118 | autoHeight = (autoWidth * originalHeight) / originalWidth;
119 | // console.log("autoHeight" + autoHeight);
120 | results.imageWidth = autoWidth;
121 | results.imageheight = autoHeight;
122 | } else {//否则展示原来的数据
123 | results.imageWidth = originalWidth;
124 | results.imageheight = originalHeight;
125 | }
126 | return results;
127 | }
128 |
129 | function wxParseTemArray(temArrayName,bindNameReg,total,that){
130 | var array = [];
131 | var temData = that.data;
132 | var obj = null;
133 | for(var i = 0; i < total; i++){
134 | var simArr = temData[bindNameReg+i].nodes;
135 | array.push(simArr);
136 | }
137 |
138 | temArrayName = temArrayName || 'wxParseTemArray';
139 | obj = JSON.parse('{"'+ temArrayName +'":""}');
140 | obj[temArrayName] = array;
141 | that.setData(obj);
142 | }
143 |
144 | /**
145 | * 配置emojis
146 | *
147 | */
148 |
149 | function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){
150 | HtmlToJson.emojisInit(reg,baseSrc,emojis);
151 | }
152 |
153 | module.exports = {
154 | wxParse: wxParse,
155 | wxParseTemArray:wxParseTemArray,
156 | emojisInit:emojisInit
157 | }
158 |
159 |
160 |
--------------------------------------------------------------------------------
/pages/info/add.js:
--------------------------------------------------------------------------------
1 | // pages/info/add.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | var today = util.formatTime(new Date((new Date()).getTime() + (1000 * 60 * 60 * 24 * 1))).split(' ')[0];
5 | var minday = util.formatTime(new Date()).split(' ')[0];
6 | var maxday = util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*62))).split(' ')[0];
7 |
8 | var departure = new Set();
9 | var destination = new Set();
10 |
11 | Page({
12 | data:{
13 | sex: ['请选择性别','男','女'],
14 | type:2,
15 | gender:0,
16 | date:today,
17 | start: minday,
18 | end:maxday,
19 | time:'请选择时间',
20 | types: [{ name: '1', value: '车找人', abled: true }, { name: '2', checked: true, value: '人找车', abled: false}],
21 | Surpluss:['请选择',1,2,3,4,5,6],
22 | surplus:0,
23 | isAgree: false,
24 | vehicle:'',
25 | departure:'出发地',
26 | destination:'目的地',
27 | goods:0,
28 | price:'',
29 | remark:'',
30 | mode:'1',
31 | dateText:['','出发日期', '截止日期']
32 | },
33 | goodsChange:function(e){
34 | if(e.detail.value[0] == 1){
35 | this.setData({ goods:1});
36 | }else{
37 | this.setData({ goods: 0 });
38 | }
39 | },
40 | setSex:function(e){
41 | this.setData({gender:e.detail.value})
42 | },
43 | bindDateChange:function(e){
44 | this.setData({
45 | date: e.detail.value
46 | })
47 | },
48 | bindTimeChange: function (e) {
49 | this.setData({
50 | time: e.detail.value
51 | })
52 | },
53 | selectType:function(e){
54 | this.setData({type:e.detail.value})
55 | },
56 | selectMode: function (e) {
57 | this.setData({ mode: e.detail.value })
58 | },
59 | setsurplus:function(e){
60 | this.setData({surplus:e.detail.value})
61 | },
62 | bindAgreeChange: function (e) {
63 | this.setData({
64 | isAgree: !!e.detail.value.length
65 | });
66 | },
67 | formSubmit:function(e){
68 | var data = e.detail.value;
69 | var that = this;
70 | data.goods = this.data.goods;
71 | console.log(data);
72 | if (data.phone == '') {
73 | wx.showModal({
74 | title: '发布错误',
75 | content: '请先完善个人信息',
76 | success: function (res) {
77 | if (res.confirm) {
78 | wx.navigateTo({
79 | url: '/pages/my/info'
80 | })
81 | }
82 | }
83 | })
84 | return false;
85 | }
86 | if(data.name == ''){
87 | util.isError('请输入姓名', that);
88 | return false;
89 | }
90 | if(data.gender == 0){
91 | util.isError('请选择性别', that);
92 | return false;
93 | }
94 |
95 | if(!(/^1[34578]\d{9}$/.test(data.phone))){
96 | util.isError('手机号码错误', that);
97 | return false;
98 | }
99 | if(that.data.departure == '出发地'){
100 | util.isError('请选择出发地', that);
101 | return false;
102 | }
103 | if(that.data.destination == '目的地'){
104 | util.isError('请选择目的地', that);
105 | return false;
106 | }
107 | if(data.time == '请选择时间'){
108 | util.isError('请选择出发时间', that);
109 | return false;
110 | }
111 | if(data.surplus == '0'){
112 | var arr = new Array('','剩余空位','乘车人数');
113 | util.isError('请选择'+arr[data.type], that);
114 | return false;
115 | }
116 |
117 |
118 | if(!data.isAgree[0]){
119 | util.isError('请阅读并同意条款',that);
120 | return false;
121 | }
122 | delete data.isAgree;
123 | data.departure = that.data.departure;
124 | data.destination = that.data.destination;
125 | data.departureTopSet = JSON.stringify(departure);
126 | data.destinationTopSet = JSON.stringify(destination);
127 | util.req('info/add',data,function(data){
128 | if(data.status){
129 | wx.redirectTo({
130 | url: '/pages/info/index?id=' + data.data.info_id
131 | });
132 | }else{
133 | util.isError(data.errmsg,that);
134 | return false;
135 | }
136 | })
137 | util.clearError(that);
138 | },
139 | sexDeparture:function(){
140 | var that = this;
141 | wx.chooseLocation({
142 | success:function(res){
143 | departure.latitude = res.latitude;
144 | departure.longitude = res.longitude;
145 | that.setData({
146 | departure:res.address
147 | })
148 | },
149 | fail:function () {
150 | util.modal('错误', '请检查是否开启手机定位');
151 | }
152 | })
153 | },
154 | sexDestination:function(){
155 | var that = this;
156 | wx.chooseLocation({
157 | success: function (res) {
158 | destination.latitude = res.latitude;
159 | destination.longitude = res.longitude;
160 | that.setData({
161 | destination:res.address
162 | })
163 | },
164 | fail: function () {
165 | util.modal('错误', '请检查是否开启手机定位');
166 | }
167 | })
168 | },
169 | onShow:function(options){
170 | app.reflashUser();
171 | this.setData({
172 | gender:app.globalData.userInfo.gender,
173 | name:(app.globalData.userInfo.name == 'null')?app.globalData.userInfo.nickName:app.globalData.userInfo.name,
174 | phone:app.globalData.userInfo.phone,
175 | vehicle:app.globalData.userInfo.vehicle
176 | })
177 | console.log(app.globalData.userInfo.driver);
178 | if (app.globalData.userInfo.driver == 1){
179 | this.setData({'types[0].abled':false});
180 | }
181 | }
182 | })
--------------------------------------------------------------------------------
/wxParse/htmlparser.js:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser
4 | *
5 | * author: Di (微信小程序开发工程师)
6 | * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
7 | * 垂直微信小程序开发交流社区
8 | *
9 | * github地址: https://github.com/icindy/wxParse
10 | *
11 | * for: 微信小程序富文本解析
12 | * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
13 | */
14 | // Regular Expressions for parsing tags and attributes
15 | var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,
16 | endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/,
17 | attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
18 |
19 | // Empty Elements - HTML 5
20 | var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");
21 |
22 | // Block Elements - HTML 5
23 | var block = makeMap("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");
24 |
25 | // Inline Elements - HTML 5
26 | var inline = makeMap("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
27 |
28 | // Elements that you can, intentionally, leave open
29 | // (and which close themselves)
30 | var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
31 |
32 | // Attributes that have their values filled in disabled="disabled"
33 | var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");
34 |
35 | // Special Elements (can contain anything)
36 | var special = makeMap("wxxxcode-style,script,style,view,scroll-view,block");
37 |
38 | function HTMLParser(html, handler) {
39 | var index, chars, match, stack = [], last = html;
40 | stack.last = function () {
41 | return this[this.length - 1];
42 | };
43 |
44 | while (html) {
45 | chars = true;
46 |
47 | // Make sure we're not in a script or style element
48 | if (!stack.last() || !special[stack.last()]) {
49 |
50 | // Comment
51 | if (html.indexOf("");
53 |
54 | if (index >= 0) {
55 | if (handler.comment)
56 | handler.comment(html.substring(4, index));
57 | html = html.substring(index + 3);
58 | chars = false;
59 | }
60 |
61 | // end tag
62 | } else if (html.indexOf("") == 0) {
63 | match = html.match(endTag);
64 |
65 | if (match) {
66 | html = html.substring(match[0].length);
67 | match[0].replace(endTag, parseEndTag);
68 | chars = false;
69 | }
70 |
71 | // start tag
72 | } else if (html.indexOf("<") == 0) {
73 | match = html.match(startTag);
74 |
75 | if (match) {
76 | html = html.substring(match[0].length);
77 | match[0].replace(startTag, parseStartTag);
78 | chars = false;
79 | }
80 | }
81 |
82 | if (chars) {
83 | index = html.indexOf("<");
84 | var text = ''
85 | while (index === 0) {
86 | text += "<";
87 | html = html.substring(1);
88 | index = html.indexOf("<");
89 | }
90 | text += index < 0 ? html : html.substring(0, index);
91 | html = index < 0 ? "" : html.substring(index);
92 |
93 | if (handler.chars)
94 | handler.chars(text);
95 | }
96 |
97 | } else {
98 |
99 | html = html.replace(new RegExp("([\\s\\S]*?)<\/" + stack.last() + "[^>]*>"), function (all, text) {
100 | text = text.replace(/|/g, "$1$2");
101 | if (handler.chars)
102 | handler.chars(text);
103 |
104 | return "";
105 | });
106 |
107 |
108 | parseEndTag("", stack.last());
109 | }
110 |
111 | if (html == last)
112 | throw "Parse Error: " + html;
113 | last = html;
114 | }
115 |
116 | // Clean up any remaining tags
117 | parseEndTag();
118 |
119 | function parseStartTag(tag, tagName, rest, unary) {
120 | tagName = tagName.toLowerCase();
121 |
122 | if (block[tagName]) {
123 | while (stack.last() && inline[stack.last()]) {
124 | parseEndTag("", stack.last());
125 | }
126 | }
127 |
128 | if (closeSelf[tagName] && stack.last() == tagName) {
129 | parseEndTag("", tagName);
130 | }
131 |
132 | unary = empty[tagName] || !!unary;
133 |
134 | if (!unary)
135 | stack.push(tagName);
136 |
137 | if (handler.start) {
138 | var attrs = [];
139 |
140 | rest.replace(attr, function (match, name) {
141 | var value = arguments[2] ? arguments[2] :
142 | arguments[3] ? arguments[3] :
143 | arguments[4] ? arguments[4] :
144 | fillAttrs[name] ? name : "";
145 |
146 | attrs.push({
147 | name: name,
148 | value: value,
149 | escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') //"
150 | });
151 | });
152 |
153 | if (handler.start) {
154 | handler.start(tagName, attrs, unary);
155 | }
156 |
157 | }
158 | }
159 |
160 | function parseEndTag(tag, tagName) {
161 | // If no tag name is provided, clean shop
162 | if (!tagName)
163 | var pos = 0;
164 |
165 | // Find the closest opened tag of the same type
166 | else {
167 | tagName = tagName.toLowerCase();
168 | for (var pos = stack.length - 1; pos >= 0; pos--)
169 | if (stack[pos] == tagName)
170 | break;
171 | }
172 | if (pos >= 0) {
173 | // Close all the open elements, up the stack
174 | for (var i = stack.length - 1; i >= pos; i--)
175 | if (handler.end)
176 | handler.end(stack[i]);
177 |
178 | // Remove the open elements from the stack
179 | stack.length = pos;
180 | }
181 | }
182 | };
183 |
184 |
185 | function makeMap(str) {
186 | var obj = {}, items = str.split(",");
187 | for (var i = 0; i < items.length; i++)
188 | obj[items[i]] = true;
189 | return obj;
190 | }
191 |
192 | module.exports = HTMLParser;
193 |
--------------------------------------------------------------------------------
/pages/my/info.js:
--------------------------------------------------------------------------------
1 | //index.js
2 | //获取应用实例
3 | var app = getApp();
4 |
5 | var util = require('../../utils/util.js');
6 | var tcity = require("../../utils/citys.js");
7 |
8 | Page({
9 | data: {
10 | sex:['保密','男','女'],
11 | provinces: [],
12 | province: "",
13 | citys: [],
14 | city: "",
15 | countys: [],
16 | county: '',
17 | value: [0, 0, 0],
18 | values: [0, 0, 0],
19 | condition: false,
20 | verification:'',
21 | getCodeText:'获取验证码',
22 | waitCode:false,
23 | sms_status:0,
24 | },
25 | bindChange: function(e) {
26 | //console.log(e);
27 | var val = e.detail.value
28 | var t = this.data.values;
29 | var cityData = this.data.cityData;
30 |
31 | if(val[0] != t[0]){
32 | console.log('province no ');
33 | const citys = [];
34 | const countys = [];
35 |
36 | for (let i = 0 ; i < cityData[val[0]].sub.length; i++) {
37 | citys.push(cityData[val[0]].sub[i].name)
38 | }
39 | for (let i = 0 ; i < cityData[val[0]].sub[0].sub.length; i++) {
40 | countys.push(cityData[val[0]].sub[0].sub[i].name)
41 | }
42 |
43 | this.setData({
44 | province: this.data.provinces[val[0]],
45 | city: cityData[val[0]].sub[0].name,
46 | citys:citys,
47 | county: cityData[val[0]].sub[0].sub[0].name,
48 | countys:countys,
49 | values: val,
50 | value:[val[0],0,0],
51 | })
52 |
53 | return;
54 | }
55 | if(val[1] != t[1]){
56 | console.log('city no');
57 | const countys = [];
58 |
59 | for (let i = 0 ; i < cityData[val[0]].sub[val[1]].sub.length; i++) {
60 | countys.push(cityData[val[0]].sub[val[1]].sub[i].name)
61 | }
62 |
63 | this.setData({
64 | city: this.data.citys[val[1]],
65 | county: cityData[val[0]].sub[val[1]].sub[0].name,
66 | countys:countys,
67 | values: val,
68 | value:[val[0],val[1],0]
69 | })
70 | return;
71 | }
72 | if(val[2] != t[2]){
73 | console.log('county no');
74 | this.setData({
75 | county: this.data.countys[val[2]],
76 | values: val
77 | })
78 | return;
79 | }
80 |
81 | },
82 | setPhone:function(e){
83 | this.setData({
84 | 'userInfo.phone': e.detail.value
85 | })
86 | },
87 | getCode: function (e) { //获取验证码
88 | var that = this;
89 | if (that.data.waitCode) {
90 | return false;
91 | }
92 | if (!(/^1[34578]\d{9}$/.test(that.data.userInfo.phone))) {
93 | util.isError('手机号码错误', that);
94 | return false;
95 | }
96 | util.req('getcode', { phone: that.data.userInfo.phone},function(data){
97 | if (data.status) {
98 | that.setData({
99 | 'waitCode': true
100 | });
101 | that.countdown(60);
102 | }else{
103 | util.isError(data.msg, that);
104 | return false;
105 | }
106 | })
107 | },
108 | countdown:function(time){
109 | var that = this;
110 | var phoneInterval = setInterval(function(){
111 | that.setData({
112 | 'getCodeText': time+'s'
113 | });
114 | time--;
115 | if(time <= 0){
116 | clearInterval(phoneInterval);
117 | that.setData({
118 | 'getCodeText': '发送验证码',
119 | 'waitCode':false
120 | });
121 | }
122 | },1000);
123 | },
124 | updatePhone:function(){
125 | this.setData({ 'existPhone': false});
126 | },
127 | closeErr:function(){ //关闭错误
128 | //util.clearError(this);
129 | },
130 | open:function(){
131 | this.setData({
132 | condition:!this.data.condition
133 | })
134 | },
135 | selectsex:function(e){
136 | this.setData({
137 | 'userInfo.gender':e.detail.value
138 | })
139 | },
140 | dateAvatar:function(){
141 | var that = this;
142 | wx.chooseImage({
143 | count: 1,
144 | success: function(res) {
145 | var tempFilePaths = res.tempFilePaths;
146 | util.uploadFile(tempFilePaths[0],function(data){
147 | data = JSON.parse(data);
148 | console.log(data);
149 | if (data.status) {
150 | that.setData({
151 | 'userInfo.avatarUrl': data.data.path
152 | })
153 | util.clearError(that);
154 | } else {
155 | util.isError(data.errmsg, that);
156 | }
157 | });
158 | }
159 | })
160 | },
161 | formSubmit: function(e) {
162 | var that = this;
163 | this.setData({
164 | 'userInfo.province':this.data.province,
165 | 'userInfo.city':this.data.city,
166 | 'userInfo.county':this.data.county,
167 | 'userInfo.nickName':e.detail.value.nickName
168 | })
169 |
170 |
171 |
172 | var formData = that.data.userInfo;
173 |
174 | if (that.data.existPhone && that.data.sms_status) {
175 | delete formData.phone;
176 | }else{
177 | if (e.detail.value.verification == '' && that.data.sms_status) {
178 | util.isError('请输入验证码', that);
179 | return false;
180 | }
181 | formData.verification = e.detail.value.verification;
182 | }
183 | formData = util.objToArray(formData);
184 | console.log(formData)
185 | if (!formData.phone) {
186 | util.isError('请输入手机号码', that);
187 | return false;
188 | }
189 | util.req('customer/editUser', formData, function (data) {
190 | if (data.status) {
191 | util.clearError(that);
192 | app.setUserInfo(data.data.userInfo);
193 | wx.navigateBack({
194 | delta: 1
195 | })
196 | } else {
197 | util.isError(data.msg, that);
198 | }
199 | })
200 | },
201 | onLoad: function () {
202 | var that = this
203 | var config = wx.getStorageSync('config')
204 | this.setData({ 'sms_status': parseInt(config.sms_status)});
205 | wx.getStorage({
206 | key: 'userInfo',
207 | success: function(res){
208 | if (res.data.phone && res.data.phone != ''){
209 | that.setData({ 'existPhone': true});
210 | }
211 | that.setData({
212 | userInfo:res.data,
213 | gender:res.data.gender,
214 | 'province':res.data.province,
215 | 'city':res.data.city,
216 | 'county':res.data.county
217 | })
218 | },
219 | fail: function(res) {
220 | app.login();
221 | }
222 | })
223 | //console.log(that.userInfo);
224 | tcity.init(that);
225 |
226 | var cityData = that.data.cityData;
227 |
228 |
229 | const provinces = [];
230 | const citys = [];
231 | const countys = [];
232 |
233 | for(let i=0;i
2 |
3 | {{errorMsg}}
4 |
15 |
16 |
17 |
18 | {{data.departure}}
19 |
20 |
21 | {{data.destination}}
22 |
23 |
24 | 联系人:{{data.name}}
25 |
26 |
27 |
28 |
29 | 出发时间:{{data.tm}}
30 |
31 |
32 | 拼车价格:{{data.price}}
33 |
34 |
35 | 剩余空位:人数:{{data.surplus}}
36 |
37 |
38 | 车型:{{data.vehicle}}
39 |
40 |
41 | 备注:
42 |
43 |
46 |
47 |
48 |
49 |
50 |
51 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
103 |
104 |
105 |
106 |
140 |
141 |
--------------------------------------------------------------------------------
/wxParse/wxDiscode.js:
--------------------------------------------------------------------------------
1 | // HTML 支持的数学符号
2 | function strNumDiscode(str){
3 | str = str.replace(/∀/g, '∀');
4 | str = str.replace(/∂/g, '∂');
5 | str = str.replace(/&exists;/g, '∃');
6 | str = str.replace(/∅/g, '∅');
7 | str = str.replace(/∇/g, '∇');
8 | str = str.replace(/∈/g, '∈');
9 | str = str.replace(/∉/g, '∉');
10 | str = str.replace(/∋/g, '∋');
11 | str = str.replace(/∏/g, '∏');
12 | str = str.replace(/∑/g, '∑');
13 | str = str.replace(/−/g, '−');
14 | str = str.replace(/∗/g, '∗');
15 | str = str.replace(/√/g, '√');
16 | str = str.replace(/∝/g, '∝');
17 | str = str.replace(/∞/g, '∞');
18 | str = str.replace(/∠/g, '∠');
19 | str = str.replace(/∧/g, '∧');
20 | str = str.replace(/∨/g, '∨');
21 | str = str.replace(/∩/g, '∩');
22 | str = str.replace(/∩/g, '∪');
23 | str = str.replace(/∫/g, '∫');
24 | str = str.replace(/∴/g, '∴');
25 | str = str.replace(/∼/g, '∼');
26 | str = str.replace(/≅/g, '≅');
27 | str = str.replace(/≈/g, '≈');
28 | str = str.replace(/≠/g, '≠');
29 | str = str.replace(/≤/g, '≤');
30 | str = str.replace(/≥/g, '≥');
31 | str = str.replace(/⊂/g, '⊂');
32 | str = str.replace(/⊃/g, '⊃');
33 | str = str.replace(/⊄/g, '⊄');
34 | str = str.replace(/⊆/g, '⊆');
35 | str = str.replace(/⊇/g, '⊇');
36 | str = str.replace(/⊕/g, '⊕');
37 | str = str.replace(/⊗/g, '⊗');
38 | str = str.replace(/⊥/g, '⊥');
39 | str = str.replace(/⋅/g, '⋅');
40 | return str;
41 | }
42 |
43 | //HTML 支持的希腊字母
44 | function strGreeceDiscode(str){
45 | str = str.replace(/Α/g, 'Α');
46 | str = str.replace(/Β/g, 'Β');
47 | str = str.replace(/Γ/g, 'Γ');
48 | str = str.replace(/Δ/g, 'Δ');
49 | str = str.replace(/Ε/g, 'Ε');
50 | str = str.replace(/Ζ/g, 'Ζ');
51 | str = str.replace(/Η/g, 'Η');
52 | str = str.replace(/Θ/g, 'Θ');
53 | str = str.replace(/Ι/g, 'Ι');
54 | str = str.replace(/Κ/g, 'Κ');
55 | str = str.replace(/Λ/g, 'Λ');
56 | str = str.replace(/Μ/g, 'Μ');
57 | str = str.replace(/Ν/g, 'Ν');
58 | str = str.replace(/Ξ/g, 'Ν');
59 | str = str.replace(/Ο/g, 'Ο');
60 | str = str.replace(/Π/g, 'Π');
61 | str = str.replace(/Ρ/g, 'Ρ');
62 | str = str.replace(/Σ/g, 'Σ');
63 | str = str.replace(/Τ/g, 'Τ');
64 | str = str.replace(/Υ/g, 'Υ');
65 | str = str.replace(/Φ/g, 'Φ');
66 | str = str.replace(/Χ/g, 'Χ');
67 | str = str.replace(/Ψ/g, 'Ψ');
68 | str = str.replace(/Ω/g, 'Ω');
69 |
70 | str = str.replace(/α/g, 'α');
71 | str = str.replace(/β/g, 'β');
72 | str = str.replace(/γ/g, 'γ');
73 | str = str.replace(/δ/g, 'δ');
74 | str = str.replace(/ε/g, 'ε');
75 | str = str.replace(/ζ/g, 'ζ');
76 | str = str.replace(/η/g, 'η');
77 | str = str.replace(/θ/g, 'θ');
78 | str = str.replace(/ι/g, 'ι');
79 | str = str.replace(/κ/g, 'κ');
80 | str = str.replace(/λ/g, 'λ');
81 | str = str.replace(/μ/g, 'μ');
82 | str = str.replace(/ν/g, 'ν');
83 | str = str.replace(/ξ/g, 'ξ');
84 | str = str.replace(/ο/g, 'ο');
85 | str = str.replace(/π/g, 'π');
86 | str = str.replace(/ρ/g, 'ρ');
87 | str = str.replace(/ς/g, 'ς');
88 | str = str.replace(/σ/g, 'σ');
89 | str = str.replace(/τ/g, 'τ');
90 | str = str.replace(/υ/g, 'υ');
91 | str = str.replace(/φ/g, 'φ');
92 | str = str.replace(/χ/g, 'χ');
93 | str = str.replace(/ψ/g, 'ψ');
94 | str = str.replace(/ω/g, 'ω');
95 | str = str.replace(/ϑ/g, 'ϑ');
96 | str = str.replace(/ϒ/g, 'ϒ');
97 | str = str.replace(/ϖ/g, 'ϖ');
98 | str = str.replace(/·/g, '·');
99 | return str;
100 | }
101 |
102 | //
103 |
104 | function strcharacterDiscode(str){
105 | // 加入常用解析
106 | str = str.replace(/ /g, ' ');
107 | str = str.replace(/"/g, "'");
108 | str = str.replace(/&/g, '&');
109 | // str = str.replace(/</g, '‹');
110 | // str = str.replace(/>/g, '›');
111 |
112 | str = str.replace(/</g, '<');
113 | str = str.replace(/>/g, '>');
114 | str = str.replace(/•/g, '•');
115 |
116 | return str;
117 | }
118 |
119 | // HTML 支持的其他实体
120 | function strOtherDiscode(str){
121 | str = str.replace(/Œ/g, 'Œ');
122 | str = str.replace(/œ/g, 'œ');
123 | str = str.replace(/Š/g, 'Š');
124 | str = str.replace(/š/g, 'š');
125 | str = str.replace(/Ÿ/g, 'Ÿ');
126 | str = str.replace(/ƒ/g, 'ƒ');
127 | str = str.replace(/ˆ/g, 'ˆ');
128 | str = str.replace(/˜/g, '˜');
129 | str = str.replace(/ /g, '');
130 | str = str.replace(/ /g, '');
131 | str = str.replace(/ /g, '');
132 | str = str.replace(//g, '');
133 | str = str.replace(//g, '');
134 | str = str.replace(//g, '');
135 | str = str.replace(//g, '');
136 | str = str.replace(/–/g, '–');
137 | str = str.replace(/—/g, '—');
138 | str = str.replace(/‘/g, '‘');
139 | str = str.replace(/’/g, '’');
140 | str = str.replace(/‚/g, '‚');
141 | str = str.replace(/“/g, '“');
142 | str = str.replace(/”/g, '”');
143 | str = str.replace(/„/g, '„');
144 | str = str.replace(/†/g, '†');
145 | str = str.replace(/‡/g, '‡');
146 | str = str.replace(/•/g, '•');
147 | str = str.replace(/…/g, '…');
148 | str = str.replace(/‰/g, '‰');
149 | str = str.replace(/′/g, '′');
150 | str = str.replace(/″/g, '″');
151 | str = str.replace(/‹/g, '‹');
152 | str = str.replace(/›/g, '›');
153 | str = str.replace(/‾/g, '‾');
154 | str = str.replace(/€/g, '€');
155 | str = str.replace(/™/g, '™');
156 |
157 | str = str.replace(/←/g, '←');
158 | str = str.replace(/↑/g, '↑');
159 | str = str.replace(/→/g, '→');
160 | str = str.replace(/↓/g, '↓');
161 | str = str.replace(/↔/g, '↔');
162 | str = str.replace(/↵/g, '↵');
163 | str = str.replace(/⌈/g, '⌈');
164 | str = str.replace(/⌉/g, '⌉');
165 |
166 | str = str.replace(/⌊/g, '⌊');
167 | str = str.replace(/⌋/g, '⌋');
168 | str = str.replace(/◊/g, '◊');
169 | str = str.replace(/♠/g, '♠');
170 | str = str.replace(/♣/g, '♣');
171 | str = str.replace(/♥/g, '♥');
172 |
173 | str = str.replace(/♦/g, '♦');
174 | str = str.replace(/'/g, '\'');
175 | return str;
176 | }
177 |
178 | function strMoreDiscode(str){
179 | str = str.replace(/\r\n/g,"");
180 | str = str.replace(/\n/g,"");
181 |
182 | str = str.replace(/code/g,"wxxxcode-style");
183 | return str;
184 | }
185 |
186 | function strDiscode(str){
187 | str = strNumDiscode(str);
188 | str = strGreeceDiscode(str);
189 | str = strcharacterDiscode(str);
190 | str = strOtherDiscode(str);
191 | str = strMoreDiscode(str);
192 | return str;
193 | }
194 | function urlToHttpUrl(url,rep){
195 |
196 | var patt1 = new RegExp("^//");
197 | var result = patt1.test(url);
198 | if(result){
199 | url = rep+":"+url;
200 | }
201 | return url;
202 | }
203 |
204 | module.exports = {
205 | strDiscode:strDiscode,
206 | urlToHttpUrl:urlToHttpUrl
207 | }
--------------------------------------------------------------------------------
/pages/info/edit.wxml:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{errorMsg}}
4 |
5 |
146 |
147 |
--------------------------------------------------------------------------------
/pages/index/index.js:
--------------------------------------------------------------------------------
1 | //index.js
2 | //获取应用实例
3 | var util = require('../../utils/util.js');
4 | var app = getApp();
5 | var today = util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*7))).split(' ')[0];
6 | var minday = util.formatTime(new Date()).split(' ')[0];
7 | var maxday = util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*62))).split(' ')[0];
8 | var sliderWidth = 96; // 需要设置slider的宽度,用于计算中间位置
9 | var page = 1;
10 | var list = new Array();
11 | var list1 = new Array();
12 | var list2 = new Array();
13 | var list3 = new Array();
14 |
15 | Page({
16 | data: {
17 | all:'act',
18 | date:today,
19 | minday:today,
20 | maxday:maxday,
21 | tabs: ["全部", "车找人", "人找车","捎货"],
22 | activeIndex: 0,
23 | sliderOffset: 0,
24 | sliderLeft: 0,
25 | start:'',
26 | over:'',
27 | adList: [],
28 | images: {}
29 | },
30 | tabClick: function (e) {
31 | this.setData({
32 | sliderOffset: e.currentTarget.offsetLeft,
33 | activeIndex: e.currentTarget.id
34 | });
35 | },
36 | autoLoad:function(e){
37 | var $width = e.detail.width,
38 | $height = e.detail.height,
39 | ratio = $width / $height;
40 | var viewWidth = 750,
41 | viewHeight = 750 / ratio;
42 | var image = this.data.images;
43 | image[e.target.dataset.index] = {
44 | width: viewWidth,
45 | height: viewHeight
46 | }
47 | this.setData({
48 | images: image
49 | })
50 | },
51 | bindDateChange:function(e){
52 | this.setData({
53 | date:e.detail.value
54 | })
55 | this.getList(e.detail.value,this.data.start,this.data.over);
56 | },
57 | onShareAppMessage: function () {
58 | return {
59 | title: '同城拼车',
60 | path: 'pages/index/index'
61 | }
62 | },
63 | bindKeystart: function (e) {
64 | this.setData({
65 | start: e.detail.value
66 | })
67 | page = 1;
68 | this.getList(this.data.date, this.data.start, this.data.over);
69 | },
70 | bindKeyover: function (e) {
71 | this.setData({
72 | over: e.detail.value
73 | })
74 | page = 1;
75 | this.getList(this.data.date, this.data.start, this.data.over);
76 | },
77 | chooseStart: function () {
78 | var that = this;
79 | wx.chooseLocation({
80 | success: function (res) {
81 | that.setData({
82 | start: res.address
83 | })
84 | page = 1;
85 | that.getList(that.data.date, res.address, that.data.over);
86 | },
87 | fail: function () {
88 | that.setData({
89 | start: ''
90 | })
91 | that.getList(that.data.date, '', that.data.over);
92 | //util.modal('错误', '请检查是否开启手机定位');
93 | }
94 | })
95 | },
96 | chooseOver: function () {
97 | var that = this;
98 | wx.chooseLocation({
99 | success: function (res) {
100 | that.setData({
101 | over: res.address
102 | })
103 | that.getList(that.data.date, that.data.start,res.address);
104 | },
105 | fail: function () {
106 | that.setData({
107 | over: ''
108 | })
109 | that.getList(that.data.date, that.data.start,'');
110 | //util.modal('错误', '请检查是否开启手机定位');
111 | }
112 | })
113 | },
114 | getList:function(date='',start='',over=''){
115 | try {
116 | var start = ((start).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
117 | } catch (e) {
118 | var start = (start).split(/[县区]/)[0];
119 | }
120 |
121 | try {
122 | var over = ((over).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
123 | } catch (e) {
124 | var over = (over).split(/[县区]/)[0];
125 | }
126 | var that = this;
127 | util.req('info/lists',
128 | {start:start,over:over,date:date,page:page},
129 | function(data){
130 | if(page == 1){
131 | list = new Array();
132 | list1 = new Array();
133 | list2 = new Array();
134 | list3 = new Array();
135 | }
136 |
137 | if (!data.next_page_url) {
138 | that.setData({ nomore: true });
139 | }
140 | var surp = new Array('','空位','人');
141 | data.data.forEach(function(item){
142 | try{
143 | var start = ((item.departure).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
144 | }catch(e){
145 | var start = (item.departure).split(/[县区]/)[0];
146 | }
147 |
148 | try {
149 | var over = ((item.destination).split('市')[1]).replace(/([\u4e00-\u9fa5]+[县区]).+/, '$1');
150 | } catch (e) {
151 | var over = (item.destination).split(/[县区]/)[0];
152 | }
153 | var tm = util.getDateDiff(Date.parse(new Date(item.leave_time.replace(/-/g, '/'))));
154 | var time = item.leave_time;
155 | if (item.mode == '2') {
156 | tm = '天天拼';
157 | var time = item.leave_time.split(' ')[1];
158 | var day = new Date();
159 | var now = util.dateFtt('hh:mm:ss', new Date());
160 | if (time < now) {
161 | time = util.dateFtt('yyyy-MM-dd ', new Date(day.getTime() + 24 * 60 * 60 * 1000)) + time;
162 | } else {
163 | time = util.dateFtt('yyyy-MM-dd ', new Date()) + time;
164 | }
165 | }
166 | var obj = {
167 | start:start,
168 | over:over,
169 | type:that.data.tabs[item.type],
170 | tp:item.type,
171 | time: time,
172 | surplus:item.surplus+surp[item.type],
173 | see:item.see,
174 | gender:item.gender,
175 | avatarUrl:item.avatarUrl,
176 | goods:item.goods,
177 | mode:item.mode,
178 | url: '/pages/info/index?id=' + item.id,
179 | tm: tm
180 | };
181 | list.push(obj);
182 | if(item.type == 1){
183 | list1.push(obj);
184 | }else{
185 | list2.push(obj);
186 | }
187 | if (item.goods == 1) {
188 | list3.push(obj);
189 | }
190 | })
191 |
192 | that.setData({ list: list, list1: list1, list2: list2, list3: list3});
193 | })
194 |
195 | },
196 | onPullDownRefresh: function(){
197 | page = 1;
198 | this.getList(this.data.date,this.data.start,this.data.over);
199 | wx.stopPullDownRefresh();
200 | },
201 | onLoad: function () {
202 | var that = this;
203 | wx.getSystemInfo({
204 | success: function(res) {
205 | that.setData({
206 | sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
207 | sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex,
208 | windowHeight: res.windowHeight,
209 | windowWidth: res.windowWidth
210 | });
211 | }
212 | });
213 |
214 | wx.getLocation({
215 | success: function (res) {
216 | var latitude = res.latitude
217 | var longitude = res.longitude
218 | wx.request({
219 | url: 'https://api.map.baidu.com/geocoder/v2/?ak=zIOkoO8wWrWA22ObIHPNkCgtLZpkP5lE&location=' + latitude + ',' + longitude + '&output=json&pois=0',
220 | data: {},
221 | method: 'GET',
222 | header: { 'Content-Type': 'application/json' },
223 | success: function(res){
224 | that.setData({
225 | start: res.data.result.addressComponent.city
226 | })
227 | that.getList(that.data.date, res.data.result.addressComponent.city);
228 | }
229 | })
230 | },
231 | fail:function(){
232 | that.setData({
233 | start: ''
234 | })
235 | that.getList(that.data.date, '');
236 | //util.modal('错误','请检查是否开启手机定位');
237 | }
238 | });
239 |
240 | util.getReq('config', [], function (data) {
241 | if (data.status) {
242 | wx.setStorageSync('config', data.data)
243 | }
244 | })
245 |
246 | util.req('banner',[],function(data){
247 | if(data.status){
248 | that.setData({ 'adList': data.data});
249 | }
250 | })
251 | },
252 | onReachBottom:function(){
253 | if(!this.data.nomore){
254 | page++;
255 | this.getList(this.data.date,this.data.start,this.data.over);
256 | }
257 | }
258 | })
259 |
--------------------------------------------------------------------------------
/pages/info/index.js:
--------------------------------------------------------------------------------
1 | // pages/info/index.js
2 | var util = require('../../utils/util.js');
3 | var app = getApp();
4 | var page = 1;
5 | var comment = new Array();
6 | var isBuzy = false;
7 | Page({
8 | data: {
9 | 'data.id': 0,
10 | 'back': false,
11 | 'nomore': false,
12 | 'shoucang': false,
13 | 'notme': false,
14 | 'modalFlag': false
15 | },
16 | tel: function () {
17 | var that = this;
18 | wx.makePhoneCall({
19 | phoneNumber: that.data.data.phone
20 | })
21 | },
22 | tocomment: function () {
23 | this.setData({ toview: 'comment_list' });
24 | },
25 | zan: function (event) {
26 | var that = this;
27 | var Commentdata = this.data.comment;
28 | util.req('comment/zan', {
29 | 'comment_id': Commentdata[event.currentTarget.id].id
30 | }, function (data) {
31 | if (data.status) {
32 | Commentdata[event.currentTarget.id].zan = data.data;
33 | if (data.msg == '点赞成功') {
34 | Commentdata[event.currentTarget.id].iszan = true;
35 | } else {
36 | Commentdata[event.currentTarget.id].iszan = false;
37 | }
38 | that.setData({ comment: Commentdata });
39 | } else {
40 | console.log(data.msg);
41 | wx.showModal({
42 | title: '提示',
43 | content: data.msg,
44 | showCancel: false,
45 | success: function (res) {
46 | }
47 | });
48 | }
49 | })
50 | },
51 | shoucang: function () {
52 | var that = this;
53 | util.req('fav/addfav', { info_id: that.data.data.id }, function (data) {
54 | if (data.status) {
55 | that.setData({ 'shoucang': data.data });
56 | wx.showToast({
57 | title: data.msg,
58 | icon: 'success',
59 | duration: 2000
60 | })
61 | }
62 | })
63 | },
64 | qxshoucang: function () {
65 | var that = this;
66 | util.req('fav/delfav', { id: that.data.shoucang }, function (data) {
67 | if (data.status) {
68 | that.setData({ 'shoucang': false });
69 | wx.showToast({
70 | title: data.msg,
71 | icon: 'success',
72 | duration: 2000
73 | })
74 | }
75 | })
76 | },
77 | madal: function () {
78 | console.log(app.globalData.userInfo.phone);
79 | if (app.globalData.userInfo.phone == null || app.globalData.userInfo.phone == ''){
80 | wx.showModal({
81 | title: '错误',
82 | content: '请先进行个人信息认证',
83 | success: function (res) {
84 | if (res.confirm) {
85 | wx.navigateTo({
86 | url: '/pages/my/info'
87 | })
88 | }
89 | }
90 | })
91 | return false;
92 | }
93 | this.setData({ modalFlag: true });
94 | },
95 | modalOk: function () {
96 | this.setData({ modalFlag: false });
97 | },
98 | appointment: function (e) {
99 | var fId = e.detail.formId;
100 | var that = this;
101 | console.log(e.detail.value.surplus);
102 | if (e.detail.value.name == '') {
103 | util.isError('请输入姓名', that);
104 | return false;
105 | }
106 | if (e.detail.value.phone == '') {
107 | util.isError('请输入手机号', that);
108 | return false;
109 | }
110 | if (!(/^1[34578]\d{9}$/.test(e.detail.value.phone))) {
111 | util.isError('手机号码错误', that);
112 | return false;
113 | }
114 | if (e.detail.value.surplus == 0) {
115 | util.isError('请选择人数', that);
116 | return false;
117 | }
118 | util.clearError(that);
119 | util.req('appointment/add', {info_id: this.data.data.id, name: e.detail.value.name, phone: e.detail.value.phone, surplus: e.detail.value.surplus }, function (data) {
120 | console.log(data);
121 | if (data.status) {
122 | that.setData({ modalFlag: false });
123 | wx.showToast({
124 | title: '预约成功',
125 | icon: 'success',
126 | duration: 2000
127 | })
128 | } else {
129 | that.setData({ modalFlag: false });
130 | util.isError(data.msg, that);
131 | return false;
132 | }
133 | })
134 | },
135 | setsurplus: function (e) {
136 | this.setData({ surplus: e.detail.value })
137 | },
138 | onLoad: function (options) {
139 | var that = this;
140 | wx.getSystemInfo({
141 | success: function (res) {
142 | that.setData({ height: res.windowHeight });
143 | }
144 | })
145 |
146 | that.setData({
147 | 'userInfo.gender': app.globalData.userInfo.gender,
148 | 'userInfo.name': (app.globalData.userInfo.name == '') ? app.globalData.userInfo.nickName : app.globalData.userInfo.name,
149 | 'userInfo.phone': app.globalData.userInfo.phone
150 | })
151 |
152 | util.req('fav/isfav', { info_id: options.id }, function (data) {
153 | if (data.data != 0) {
154 | that.setData({ 'shoucang': data.data });
155 | }
156 | })
157 |
158 | util.req('info/index', { id: options.id }, function (data) {
159 | var reg = new RegExp("null", "g");
160 | data.data.remark = (data.data.remark + '').replace(reg, "");
161 | that.setData({ data: data.data });
162 | if (data.data.user_id == app.globalData.userInfo.id) {
163 | var notme = false;
164 | } else {
165 | var notme = true;
166 | }
167 | var Surpluss = new Array('请选择人数');
168 | for (var i = 1; i <= data.data.surplus; i++) {
169 | Surpluss.push(i);
170 | }
171 | var time = data.data.leave_time;
172 | if (data.data.mode == '2') {
173 | var time = data.data.leave_time.split(' ')[1];
174 | var day = new Date();
175 | var now = util.dateFtt('hh:mm:ss', new Date());
176 | if (time < now) {
177 | time = util.dateFtt('yyyy-MM-dd ', new Date(day.getTime() + 24 * 60 * 60 * 1000)) + time;
178 | } else {
179 | time = util.dateFtt('yyyy-MM-dd ', new Date()) + time;
180 | }
181 | }
182 | that.setData({
183 | 'data.tm': time,
184 | 'data.price': (data.data.price == null) ? '面议' : data.data.price,
185 | 'data.gender': data.data.gender,
186 | 'notme': notme,
187 | 'Surpluss': Surpluss,
188 | 'surplus': 0
189 | });
190 | })
191 | page = 1;
192 | this.getCount(options.id);
193 | this.getComment(options.id);
194 | if (getCurrentPages().length == 1) {
195 | that.setData({ 'back': true });
196 | }
197 | },
198 | previmg: function (e) {
199 | var that = this;
200 | wx.previewImage({
201 | current: that.data.comment[e.target.dataset.iid].img[e.target.dataset.id],
202 | urls: that.data.comment[e.target.dataset.iid].img,
203 | })
204 | },
205 | getComment: function (id) {
206 | var that = this;
207 | if (that.data.nomore || isBuzy) {
208 | return false;
209 | }
210 | isBuzy = true;
211 | util.req('comment/get', { id: id, type: 'info', page: page }, function (data) {
212 | if (page == 1) {
213 | comment = new Array();
214 | }
215 | isBuzy = false;
216 | data.data.forEach(function (item) {
217 | comment.push({
218 | id: item.id,
219 | avatarUrl: item.avatarUrl,
220 | content: item.content,
221 | fid: item.fid,
222 | nickName: item.nickName,
223 | img: JSON.parse(item.img),
224 | zan: item.zan,
225 | reply: item.reply,
226 | time: util.getDateBiff(Date.parse(new Date(item.updated_at)))
227 | })
228 | })
229 |
230 | if (page >= data.last_page){
231 | that.setData({ 'nomore': true });
232 | }
233 | that.setData({ comment: comment });
234 | })
235 | },
236 | toIndex: function () {
237 | wx.reLaunch({
238 | url: '/pages/index/index'
239 | })
240 | },
241 | onShareAppMessage: function () {
242 | return {
243 | title: '拼车详情',
244 | path: 'pages/info/index?id=' + this.data.data.id
245 | }
246 | },
247 | getCount: function (id) {
248 | var that = this;
249 | util.req('comment/get_count', { id: id, type: 'info' }, function (data) { //获取评论总数
250 | if (data.status == 1) {
251 | that.setData({ comnum: data.data });
252 | }
253 | })
254 | },
255 | onShow: function () {
256 | page = 1;
257 | comment = new Array();
258 | console.log('页面重新打开');
259 | this.setData({'nomore':false});
260 | if (this.data.data) {
261 | this.getCount(this.data.data.id);
262 | this.getComment(this.data.data.id);
263 | }
264 | },
265 | tobottom: function () {
266 | if (!this.data.nomore) {
267 | page++;
268 | this.getComment(this.data.data.id);
269 | }
270 | },
271 | opendepartureTopSet: function () {
272 | var that = this;
273 | var res = JSON.parse(that.data.data.departureTopSet);
274 | wx.openLocation({
275 | latitude: res.latitude, // 纬度,范围为-90~90,负数表示南纬
276 | longitude: res.longitude, // 经度,范围为-180~180,负数表示西经
277 | scale: 28, // 缩放比例
278 | name: that.data.data.departure
279 | })
280 | },
281 | opendestinationTopSet: function () {
282 | var that = this;
283 | var res = JSON.parse(that.data.data.destinationTopSet);
284 | wx.openLocation({
285 | latitude: res.latitude, // 纬度,范围为-90~90,负数表示南纬
286 | longitude: res.longitude, // 经度,范围为-180~180,负数表示西经
287 | scale: 28, // 缩放比例
288 | name: that.data.data.destination
289 | })
290 | }
291 | })
--------------------------------------------------------------------------------