作者 吴孟雨

确认预约信息,选择学员,优化单人预约,购买畅玩卡,添加预约详情页底部状态按钮,更换为客户appid

1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project version="4"> 2 <project version="4">
3 <component name="ChangeListManager"> 3 <component name="ChangeListManager">
4 - <list default="true" id="632eecf6-91e3-4185-aea4-06d243e51935" name="Default" comment="上传到远程wumengyu">  
5 - <change afterPath="$PROJECT_DIR$/utils/qqmap-wx-jssdk.min.js" afterDir="false" />  
6 - <change afterPath="$PROJECT_DIR$/wxParse/html2json.js" afterDir="false" />  
7 - <change afterPath="$PROJECT_DIR$/wxParse/htmlparser.js" afterDir="false" />  
8 - <change afterPath="$PROJECT_DIR$/wxParse/showdown.js" afterDir="false" />  
9 - <change afterPath="$PROJECT_DIR$/wxParse/wxDiscode.js" afterDir="false" />  
10 - <change afterPath="$PROJECT_DIR$/wxParse/wxParse.js" afterDir="false" />  
11 - <change afterPath="$PROJECT_DIR$/wxParse/wxParse.wxml" afterDir="false" />  
12 - <change afterPath="$PROJECT_DIR$/wxParse/wxParse.wxss" afterDir="false" /> 4 + <list default="true" id="632eecf6-91e3-4185-aea4-06d243e51935" name="Default" comment="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市">
13 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> 5 <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
  6 + <change beforePath="$PROJECT_DIR$/app.json" beforeDir="false" afterPath="$PROJECT_DIR$/app.json" afterDir="false" />
  7 + <change beforePath="$PROJECT_DIR$/app.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/app.wxss" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/pages/clock/clock.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.js" afterDir="false" />
  9 + <change beforePath="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js" afterDir="false" />
  10 + <change beforePath="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml" afterDir="false" />
  11 + <change beforePath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" afterDir="false" />
  12 + <change beforePath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" afterDir="false" />
  13 + <change beforePath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" afterDir="false" />
14 <change beforePath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" afterDir="false" /> 14 <change beforePath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" afterDir="false" />
15 <change beforePath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" afterDir="false" /> 15 <change beforePath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" afterDir="false" />
16 <change beforePath="$PROJECT_DIR$/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.js" afterDir="false" /> 16 <change beforePath="$PROJECT_DIR$/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.js" afterDir="false" />
17 - <change beforePath="$PROJECT_DIR$/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.wxml" afterDir="false" />  
18 - <change beforePath="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" afterDir="false" /> 17 + <change beforePath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js" afterDir="false" />
  18 + <change beforePath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml" afterDir="false" />
  19 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" afterDir="false" />
  20 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" afterDir="false" />
  21 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" afterDir="false" />
19 <change beforePath="$PROJECT_DIR$/project.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/project.config.json" afterDir="false" /> 22 <change beforePath="$PROJECT_DIR$/project.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/project.config.json" afterDir="false" />
20 </list> 23 </list>
21 <ignored path="$PROJECT_DIR$/.tmp/" /> 24 <ignored path="$PROJECT_DIR$/.tmp/" />
@@ -31,44 +34,44 @@ @@ -31,44 +34,44 @@
31 <session id="-381596063"> 34 <session id="-381596063">
32 <usages-collector id="statistics.lifecycle.project"> 35 <usages-collector id="statistics.lifecycle.project">
33 <counts> 36 <counts>
34 - <entry key="project.closed" value="5" />  
35 - <entry key="project.open.time.0" value="4" />  
36 - <entry key="project.open.time.1" value="2" />  
37 - <entry key="project.opened" value="6" /> 37 + <entry key="project.closed" value="7" />
  38 + <entry key="project.open.time.0" value="5" />
  39 + <entry key="project.open.time.1" value="3" />
  40 + <entry key="project.opened" value="8" />
38 </counts> 41 </counts>
39 </usages-collector> 42 </usages-collector>
40 <usages-collector id="statistics.file.extensions.open"> 43 <usages-collector id="statistics.file.extensions.open">
41 <counts> 44 <counts>
42 - <entry key="js" value="24" />  
43 - <entry key="json" value="7" />  
44 - <entry key="wxml" value="21" />  
45 - <entry key="wxss" value="7" /> 45 + <entry key="js" value="38" />
  46 + <entry key="json" value="14" />
  47 + <entry key="wxml" value="34" />
  48 + <entry key="wxss" value="13" />
46 </counts> 49 </counts>
47 </usages-collector> 50 </usages-collector>
48 <usages-collector id="statistics.file.types.open"> 51 <usages-collector id="statistics.file.types.open">
49 <counts> 52 <counts>
50 - <entry key="CSS" value="7" />  
51 - <entry key="HTML" value="21" />  
52 - <entry key="JSON" value="7" />  
53 - <entry key="JavaScript" value="24" /> 53 + <entry key="CSS" value="13" />
  54 + <entry key="HTML" value="34" />
  55 + <entry key="JSON" value="14" />
  56 + <entry key="JavaScript" value="38" />
54 </counts> 57 </counts>
55 </usages-collector> 58 </usages-collector>
56 <usages-collector id="statistics.file.extensions.edit"> 59 <usages-collector id="statistics.file.extensions.edit">
57 <counts> 60 <counts>
58 - <entry key="js" value="696" />  
59 - <entry key="json" value="27" />  
60 - <entry key="txt" value="36" />  
61 - <entry key="wxml" value="257" />  
62 - <entry key="wxss" value="21" /> 61 + <entry key="js" value="4356" />
  62 + <entry key="json" value="117" />
  63 + <entry key="txt" value="89" />
  64 + <entry key="wxml" value="973" />
  65 + <entry key="wxss" value="742" />
63 </counts> 66 </counts>
64 </usages-collector> 67 </usages-collector>
65 <usages-collector id="statistics.file.types.edit"> 68 <usages-collector id="statistics.file.types.edit">
66 <counts> 69 <counts>
67 - <entry key="CSS" value="21" />  
68 - <entry key="HTML" value="257" />  
69 - <entry key="JSON" value="27" />  
70 - <entry key="JavaScript" value="696" />  
71 - <entry key="PLAIN_TEXT" value="36" /> 70 + <entry key="CSS" value="742" />
  71 + <entry key="HTML" value="973" />
  72 + <entry key="JSON" value="117" />
  73 + <entry key="JavaScript" value="4356" />
  74 + <entry key="PLAIN_TEXT" value="89" />
72 </counts> 75 </counts>
73 </usages-collector> 76 </usages-collector>
74 </session> 77 </session>
@@ -76,101 +79,94 @@ @@ -76,101 +79,94 @@
76 <component name="FileEditorManager"> 79 <component name="FileEditorManager">
77 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> 80 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
78 <file pinned="false" current-in-tab="false"> 81 <file pinned="false" current-in-tab="false">
79 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js"> 82 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.js">
80 <provider selected="true" editor-type-id="text-editor"> 83 <provider selected="true" editor-type-id="text-editor">
81 - <state relative-caret-position="660">  
82 - <caret line="87" column="75" selection-start-line="87" selection-start-column="75" selection-end-line="87" selection-end-column="75" /> 84 + <state relative-caret-position="498">
  85 + <caret line="127" column="67" lean-forward="true" selection-start-line="127" selection-start-column="67" selection-end-line="127" selection-end-column="67" />
83 </state> 86 </state>
84 </provider> 87 </provider>
85 </entry> 88 </entry>
86 </file> 89 </file>
87 - <file pinned="false" current-in-tab="true">  
88 - <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js"> 90 + <file pinned="false" current-in-tab="false">
  91 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.js">
89 <provider selected="true" editor-type-id="text-editor"> 92 <provider selected="true" editor-type-id="text-editor">
90 - <state relative-caret-position="1518">  
91 - <caret line="152" column="39" selection-start-line="152" selection-start-column="39" selection-end-line="152" selection-end-column="39" />  
92 - <folding>  
93 - <element signature="e#380#591#0" />  
94 - <element signature="e#599#810#0" />  
95 - <element signature="e#818#1030#0" />  
96 - <element signature="e#1038#1251#0" />  
97 - <element signature="e#1270#2391#0" />  
98 - </folding> 93 + <state relative-caret-position="333">
  94 + <caret line="41" column="16" lean-forward="true" selection-start-line="41" selection-start-column="16" selection-end-line="51" selection-end-column="18" />
99 </state> 95 </state>
100 </provider> 96 </provider>
101 </entry> 97 </entry>
102 </file> 98 </file>
103 <file pinned="false" current-in-tab="false"> 99 <file pinned="false" current-in-tab="false">
104 - <entry file="file://$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js"> 100 + <entry file="file://$PROJECT_DIR$/pages/index/index.js">
105 <provider selected="true" editor-type-id="text-editor"> 101 <provider selected="true" editor-type-id="text-editor">
106 - <state relative-caret-position="462">  
107 - <caret line="21" column="22" selection-start-line="21" selection-start-column="22" selection-end-line="21" selection-end-column="22" /> 102 + <state relative-caret-position="586">
  103 + <caret line="58" column="62" selection-start-line="58" selection-start-column="55" selection-end-line="58" selection-end-column="62" />
  104 + <folding>
  105 + <element signature="n#!!doc" expanded="true" />
  106 + </folding>
108 </state> 107 </state>
109 </provider> 108 </provider>
110 </entry> 109 </entry>
111 </file> 110 </file>
112 <file pinned="false" current-in-tab="false"> 111 <file pinned="false" current-in-tab="false">
113 - <entry file="file://$PROJECT_DIR$/app.js"> 112 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml">
114 <provider selected="true" editor-type-id="text-editor"> 113 <provider selected="true" editor-type-id="text-editor">
115 - <state relative-caret-position="278">  
116 - <caret line="137" column="38" lean-forward="true" selection-start-line="140" selection-start-column="4" selection-end-line="140" selection-end-column="12" /> 114 + <state relative-caret-position="286">
  115 + <caret line="13" column="99" lean-forward="true" selection-start-line="13" selection-start-column="99" selection-end-line="13" selection-end-column="99" />
117 </state> 116 </state>
118 </provider> 117 </provider>
119 </entry> 118 </entry>
120 </file> 119 </file>
121 - <file pinned="false" current-in-tab="false">  
122 - <entry file="file://$PROJECT_DIR$/app.json"> 120 + <file pinned="false" current-in-tab="true">
  121 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js">
123 <provider selected="true" editor-type-id="text-editor"> 122 <provider selected="true" editor-type-id="text-editor">
124 - <state relative-caret-position="440">  
125 - <caret line="20" column="38" selection-start-line="20" selection-start-column="38" selection-end-line="20" selection-end-column="38" /> 123 + <state relative-caret-position="660">
  124 + <caret line="39" column="6" lean-forward="true" selection-start-line="39" selection-start-column="6" selection-end-line="39" selection-end-column="6" />
126 </state> 125 </state>
127 </provider> 126 </provider>
128 </entry> 127 </entry>
129 </file> 128 </file>
130 <file pinned="false" current-in-tab="false"> 129 <file pinned="false" current-in-tab="false">
131 - <entry file="file://$PROJECT_DIR$/project.config.json"> 130 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml">
132 <provider selected="true" editor-type-id="text-editor"> 131 <provider selected="true" editor-type-id="text-editor">
133 - <state relative-caret-position="308">  
134 - <caret line="14" column="32" selection-start-line="14" selection-start-column="32" selection-end-line="14" selection-end-column="32" /> 132 + <state relative-caret-position="1364">
  133 + <caret line="62" selection-start-line="62" selection-end-line="62" />
135 </state> 134 </state>
136 </provider> 135 </provider>
137 </entry> 136 </entry>
138 </file> 137 </file>
139 <file pinned="false" current-in-tab="false"> 138 <file pinned="false" current-in-tab="false">
140 - <entry file="file://$PROJECT_DIR$/pages/index/index.js"> 139 + <entry file="file://$PROJECT_DIR$/app.json">
141 <provider selected="true" editor-type-id="text-editor"> 140 <provider selected="true" editor-type-id="text-editor">
142 - <state relative-caret-position="707">  
143 - <caret line="176" selection-start-line="176" selection-end-line="176" />  
144 - <folding>  
145 - <element signature="n#!!doc" expanded="true" />  
146 - </folding> 141 + <state relative-caret-position="88">
  142 + <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
147 </state> 143 </state>
148 </provider> 144 </provider>
149 </entry> 145 </entry>
150 </file> 146 </file>
151 <file pinned="false" current-in-tab="false"> 147 <file pinned="false" current-in-tab="false">
152 - <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml"> 148 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss">
153 <provider selected="true" editor-type-id="text-editor"> 149 <provider selected="true" editor-type-id="text-editor">
154 - <state relative-caret-position="176">  
155 - <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> 150 + <state relative-caret-position="806">
  151 + <caret line="73" column="28" selection-start-line="73" selection-start-column="28" selection-end-line="73" selection-end-column="28" />
156 </state> 152 </state>
157 </provider> 153 </provider>
158 </entry> 154 </entry>
159 </file> 155 </file>
160 <file pinned="false" current-in-tab="false"> 156 <file pinned="false" current-in-tab="false">
161 - <entry file="file://$PROJECT_DIR$/pages/index/index.wxml"> 157 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss">
162 <provider selected="true" editor-type-id="text-editor"> 158 <provider selected="true" editor-type-id="text-editor">
163 - <state relative-caret-position="176">  
164 - <caret line="8" column="23" selection-start-line="8" selection-start-column="23" selection-end-line="8" selection-end-column="23" /> 159 + <state relative-caret-position="308">
  160 + <caret line="35" selection-start-line="35" selection-end-line="38" selection-end-column="1" />
165 </state> 161 </state>
166 </provider> 162 </provider>
167 </entry> 163 </entry>
168 </file> 164 </file>
169 <file pinned="false" current-in-tab="false"> 165 <file pinned="false" current-in-tab="false">
170 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml"> 166 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.json">
171 <provider selected="true" editor-type-id="text-editor"> 167 <provider selected="true" editor-type-id="text-editor">
172 - <state relative-caret-position="506">  
173 - <caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" /> 168 + <state relative-caret-position="22">
  169 + <caret line="1" column="35" lean-forward="true" selection-start-line="1" selection-start-column="35" selection-end-line="1" selection-end-column="35" />
174 </state> 170 </state>
175 </provider> 171 </provider>
176 </entry> 172 </entry>
@@ -179,15 +175,36 @@ @@ -179,15 +175,36 @@
179 </component> 175 </component>
180 <component name="FindInProjectRecents"> 176 <component name="FindInProjectRecents">
181 <findStrings> 177 <findStrings>
182 - <find>chooseYes</find>  
183 - <find>baseUrl</find>  
184 - <find>getUserInfo</find>  
185 - <find>current_session_id</find>  
186 - <find>currentId</find>  
187 - <find>goAppointment</find>  
188 - <find>has</find>  
189 - <find>currentCity</find>  
190 - <find>hasPhone</find> 178 + <find>show_submit_btn</find>
  179 + <find>current_test_id</find>
  180 + <find>experiment_id</find>
  181 + <find>chil</find>
  182 + <find>bindPickerChange</find>
  183 + <find>check-box</find>
  184 + <find>form</find>
  185 + <find>skin</find>
  186 + <find>verification_code</find>
  187 + <find>add</find>
  188 + <find>formSubmit</find>
  189 + <find>is_showModal</find>
  190 + <find>navigateBack</find>
  191 + <find>购买畅玩卡</find>
  192 + <find>chooseNo</find>
  193 + <find>input_style</find>
  194 + <find>confirmPay</find>
  195 + <find>goBuyCard</find>
  196 + <find>QQMapWX</find>
  197 + <find>picker</find>
  198 + <find>添加</find>
  199 + <find>addStudent</find>
  200 + <find>from</find>
  201 + <find>icon-xuanze1</find>
  202 + <find>list_input</find>
  203 + <find>icon-xuanzhong</find>
  204 + <find>pay_success</find>
  205 + <find>@import</find>
  206 + <find>tips</find>
  207 + <find>changeStudent</find>
191 </findStrings> 208 </findStrings>
192 </component> 209 </component>
193 <component name="Git.Settings"> 210 <component name="Git.Settings">
@@ -197,13 +214,9 @@ @@ -197,13 +214,9 @@
197 <option name="CHANGED_PATHS"> 214 <option name="CHANGED_PATHS">
198 <list> 215 <list>
199 <option value="$PROJECT_DIR$/templates/templates.wxss" /> 216 <option value="$PROJECT_DIR$/templates/templates.wxss" />
200 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" />  
201 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" />  
202 <option value="$PROJECT_DIR$/templates/templates.wxml" /> 217 <option value="$PROJECT_DIR$/templates/templates.wxml" />
203 - <option value="$PROJECT_DIR$/app.json" />  
204 <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js" /> 218 <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js" />
205 <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.wxml" /> 219 <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.wxml" />
206 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" />  
207 <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml" /> 220 <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml" />
208 <option value="$PROJECT_DIR$/pages/my/my.js" /> 221 <option value="$PROJECT_DIR$/pages/my/my.js" />
209 <option value="$PROJECT_DIR$/pages/my/protocol/protocol.js" /> 222 <option value="$PROJECT_DIR$/pages/my/protocol/protocol.js" />
@@ -213,15 +226,32 @@ @@ -213,15 +226,32 @@
213 <option value="$PROJECT_DIR$/pages/start/start.js" /> 226 <option value="$PROJECT_DIR$/pages/start/start.js" />
214 <option value="$PROJECT_DIR$/utils/util.js" /> 227 <option value="$PROJECT_DIR$/utils/util.js" />
215 <option value="$PROJECT_DIR$/app.js" /> 228 <option value="$PROJECT_DIR$/app.js" />
216 - <option value="$PROJECT_DIR$/pages/clock/clock.js" />  
217 <option value="$PROJECT_DIR$/pages/clock/clock.wxml" /> 229 <option value="$PROJECT_DIR$/pages/clock/clock.wxml" />
218 <option value="$PROJECT_DIR$/pages/clock/clock.wxss" /> 230 <option value="$PROJECT_DIR$/pages/clock/clock.wxss" />
219 <option value="$PROJECT_DIR$/project.config.json" /> 231 <option value="$PROJECT_DIR$/project.config.json" />
220 <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" /> 232 <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" />
221 <option value="$PROJECT_DIR$/pages/index/index.wxml" /> 233 <option value="$PROJECT_DIR$/pages/index/index.wxml" />
  234 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml" />
  235 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" />
  236 + <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" />
222 <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" /> 237 <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" />
  238 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" />
  239 + <option value="$PROJECT_DIR$/pages/clock/clock.js" />
  240 + <option value="$PROJECT_DIR$/pages/my/charge/charge.wxss" />
  241 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" />
  242 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js" />
  243 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" />
  244 + <option value="$PROJECT_DIR$/app.wxss" />
  245 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" />
  246 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.json" />
  247 + <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml" />
  248 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.js" />
  249 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss" />
  250 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml" />
  251 + <option value="$PROJECT_DIR$/app.json" />
223 <option value="$PROJECT_DIR$/pages/index/index.js" /> 252 <option value="$PROJECT_DIR$/pages/index/index.js" />
224 - <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" /> 253 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" />
  254 + <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js" />
225 </list> 255 </list>
226 </option> 256 </option>
227 </component> 257 </component>
@@ -242,7 +272,6 @@ @@ -242,7 +272,6 @@
242 <foldersAlwaysOnTop value="true" /> 272 <foldersAlwaysOnTop value="true" />
243 </navigator> 273 </navigator>
244 <panes> 274 <panes>
245 - <pane id="Scope" />  
246 <pane id="ProjectPane"> 275 <pane id="ProjectPane">
247 <subPane> 276 <subPane>
248 <expand> 277 <expand>
@@ -259,7 +288,28 @@ @@ -259,7 +288,28 @@
259 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 288 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
260 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 289 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
261 <item name="pages" type="462c0819:PsiDirectoryNode" /> 290 <item name="pages" type="462c0819:PsiDirectoryNode" />
  291 + <item name="clock" type="462c0819:PsiDirectoryNode" />
  292 + </path>
  293 + <path>
  294 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  295 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  296 + <item name="pages" type="462c0819:PsiDirectoryNode" />
  297 + <item name="index" type="462c0819:PsiDirectoryNode" />
  298 + </path>
  299 + <path>
  300 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  301 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  302 + <item name="pages" type="462c0819:PsiDirectoryNode" />
262 <item name="index" type="462c0819:PsiDirectoryNode" /> 303 <item name="index" type="462c0819:PsiDirectoryNode" />
  304 + <item name="confirm-appointment-info" type="462c0819:PsiDirectoryNode" />
  305 + </path>
  306 + <path>
  307 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  308 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  309 + <item name="pages" type="462c0819:PsiDirectoryNode" />
  310 + <item name="index" type="462c0819:PsiDirectoryNode" />
  311 + <item name="confirm-appointment-info" type="462c0819:PsiDirectoryNode" />
  312 + <item name="add-student" type="462c0819:PsiDirectoryNode" />
263 </path> 313 </path>
264 <path> 314 <path>
265 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 315 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
@@ -285,22 +335,56 @@ @@ -285,22 +335,56 @@
285 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 335 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
286 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 336 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
287 <item name="pages" type="462c0819:PsiDirectoryNode" /> 337 <item name="pages" type="462c0819:PsiDirectoryNode" />
  338 + <item name="my" type="462c0819:PsiDirectoryNode" />
  339 + <item name="all-appointment" type="462c0819:PsiDirectoryNode" />
  340 + </path>
  341 + <path>
  342 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  343 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  344 + <item name="pages" type="462c0819:PsiDirectoryNode" />
  345 + <item name="my" type="462c0819:PsiDirectoryNode" />
  346 + <item name="buyCard" type="462c0819:PsiDirectoryNode" />
  347 + </path>
  348 + <path>
  349 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  350 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  351 + <item name="pages" type="462c0819:PsiDirectoryNode" />
  352 + <item name="my" type="462c0819:PsiDirectoryNode" />
  353 + <item name="charge" type="462c0819:PsiDirectoryNode" />
  354 + </path>
  355 + <path>
  356 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  357 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  358 + <item name="pages" type="462c0819:PsiDirectoryNode" />
  359 + <item name="my" type="462c0819:PsiDirectoryNode" />
  360 + <item name="order-detail" type="462c0819:PsiDirectoryNode" />
  361 + </path>
  362 + <path>
  363 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  364 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  365 + <item name="pages" type="462c0819:PsiDirectoryNode" />
288 <item name="start" type="462c0819:PsiDirectoryNode" /> 366 <item name="start" type="462c0819:PsiDirectoryNode" />
289 </path> 367 </path>
290 <path> 368 <path>
291 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 369 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
292 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 370 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
  371 + <item name="templates" type="462c0819:PsiDirectoryNode" />
  372 + </path>
  373 + <path>
  374 + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
  375 + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
293 <item name="utils" type="462c0819:PsiDirectoryNode" /> 376 <item name="utils" type="462c0819:PsiDirectoryNode" />
294 </path> 377 </path>
295 </expand> 378 </expand>
296 <select /> 379 <select />
297 </subPane> 380 </subPane>
298 </pane> 381 </pane>
  382 + <pane id="Scope" />
299 </panes> 383 </panes>
300 </component> 384 </component>
301 <component name="PropertiesComponent"> 385 <component name="PropertiesComponent">
302 <property name="WebServerToolWindowFactoryState" value="false" /> 386 <property name="WebServerToolWindowFactoryState" value="false" />
303 - <property name="last_opened_file_path" value="$PROJECT_DIR$" /> 387 + <property name="last_opened_file_path" value="D:/project/life" />
304 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> 388 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
305 <property name="nodejs_npm_path_reset_for_default_project" value="true" /> 389 <property name="nodejs_npm_path_reset_for_default_project" value="true" />
306 <property name="settings.editor.selected.configurable" value="project.propDebugger" /> 390 <property name="settings.editor.selected.configurable" value="project.propDebugger" />
@@ -339,7 +423,9 @@ @@ -339,7 +423,9 @@
339 <workItem from="1542676616270" duration="2495000" /> 423 <workItem from="1542676616270" duration="2495000" />
340 <workItem from="1543297125303" duration="4846000" /> 424 <workItem from="1543297125303" duration="4846000" />
341 <workItem from="1543403978629" duration="164000" /> 425 <workItem from="1543403978629" duration="164000" />
342 - <workItem from="1543975238201" duration="2598000" /> 426 + <workItem from="1543975238201" duration="27150000" />
  427 + <workItem from="1544059385784" duration="3563000" />
  428 + <workItem from="1544062971616" duration="13337000" />
343 </task> 429 </task>
344 <task id="LOCAL-00001" summary="modal 模板"> 430 <task id="LOCAL-00001" summary="modal 模板">
345 <created>1542274356914</created> 431 <created>1542274356914</created>
@@ -362,11 +448,18 @@ @@ -362,11 +448,18 @@
362 <option name="project" value="LOCAL" /> 448 <option name="project" value="LOCAL" />
363 <updated>1543402188113</updated> 449 <updated>1543402188113</updated>
364 </task> 450 </task>
365 - <option name="localTasksCounter" value="4" /> 451 + <task id="LOCAL-00004" summary="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市">
  452 + <created>1543978774317</created>
  453 + <option name="number" value="00004" />
  454 + <option name="presentableId" value="LOCAL-00004" />
  455 + <option name="project" value="LOCAL" />
  456 + <updated>1543978774318</updated>
  457 + </task>
  458 + <option name="localTasksCounter" value="5" />
366 <servers /> 459 <servers />
367 </component> 460 </component>
368 <component name="TimeTrackingManager"> 461 <component name="TimeTrackingManager">
369 - <option name="totallyTimeSpent" value="21219000" /> 462 + <option name="totallyTimeSpent" value="62671000" />
370 </component> 463 </component>
371 <component name="ToolWindowManager"> 464 <component name="ToolWindowManager">
372 <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> 465 <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
@@ -384,8 +477,8 @@ @@ -384,8 +477,8 @@
384 <window_info anchor="bottom" id="TODO" order="6" /> 477 <window_info anchor="bottom" id="TODO" order="6" />
385 <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> 478 <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
386 <window_info anchor="bottom" id="Terminal" order="8" weight="0.329718" /> 479 <window_info anchor="bottom" id="Terminal" order="8" weight="0.329718" />
387 - <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" />  
388 - <window_info anchor="bottom" id="Version Control" order="10" weight="0.22017354" /> 480 + <window_info anchor="bottom" id="Event Log" order="9" side_tool="true" weight="0.329718" />
  481 + <window_info anchor="bottom" id="Version Control" order="10" weight="0.5802603" />
389 <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> 482 <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
390 <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> 483 <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
391 <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> 484 <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -427,21 +520,13 @@ @@ -427,21 +520,13 @@
427 <MESSAGE value="modal 模板" /> 520 <MESSAGE value="modal 模板" />
428 <MESSAGE value="上传到远程wumengyu" /> 521 <MESSAGE value="上传到远程wumengyu" />
429 <MESSAGE value="登录注册,绑定手机号,获取验证码,轮播图,本周实验,往期实验,立即预约,实验详情" /> 522 <MESSAGE value="登录注册,绑定手机号,获取验证码,轮播图,本周实验,往期实验,立即预约,实验详情" />
430 - <option name="LAST_COMMIT_MESSAGE" value="登录注册,绑定手机号,获取验证码,轮播图,本周实验,往期实验,立即预约,实验详情" /> 523 + <MESSAGE value="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市" />
  524 + <option name="LAST_COMMIT_MESSAGE" value="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市" />
431 </component> 525 </component>
432 <component name="editorHistoryManager"> 526 <component name="editorHistoryManager">
433 - <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.json" />  
434 - <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.wxml" />  
435 - <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.wxss" />  
436 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml">  
437 - <provider selected="true" editor-type-id="text-editor" />  
438 - </entry>  
439 <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.json"> 527 <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.json">
440 <provider selected="true" editor-type-id="text-editor" /> 528 <provider selected="true" editor-type-id="text-editor" />
441 </entry> 529 </entry>
442 - <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml">  
443 - <provider selected="true" editor-type-id="text-editor" />  
444 - </entry>  
445 <entry file="file://$PROJECT_DIR$/templates/templates.wxss"> 530 <entry file="file://$PROJECT_DIR$/templates/templates.wxss">
446 <provider selected="true" editor-type-id="text-editor"> 531 <provider selected="true" editor-type-id="text-editor">
447 <state> 532 <state>
@@ -456,20 +541,6 @@ @@ -456,20 +541,6 @@
456 </state> 541 </state>
457 </provider> 542 </provider>
458 </entry> 543 </entry>
459 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss">  
460 - <provider selected="true" editor-type-id="text-editor">  
461 - <state relative-caret-position="462">  
462 - <caret line="21" column="6" selection-start-line="21" selection-start-column="6" selection-end-line="21" selection-end-column="6" />  
463 - </state>  
464 - </provider>  
465 - </entry>  
466 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml">  
467 - <provider selected="true" editor-type-id="text-editor">  
468 - <state relative-caret-position="852">  
469 - <caret line="50" column="42" selection-start-line="50" selection-start-column="42" selection-end-line="50" selection-end-column="42" />  
470 - </state>  
471 - </provider>  
472 - </entry>  
473 <entry file="file://$PROJECT_DIR$/pages/my/myCard/myCard.wxml"> 544 <entry file="file://$PROJECT_DIR$/pages/my/myCard/myCard.wxml">
474 <provider selected="true" editor-type-id="text-editor" /> 545 <provider selected="true" editor-type-id="text-editor" />
475 </entry> 546 </entry>
@@ -542,20 +613,6 @@ @@ -542,20 +613,6 @@
542 </state> 613 </state>
543 </provider> 614 </provider>
544 </entry> 615 </entry>
545 - <entry file="file://$PROJECT_DIR$/templates/templates.wxml">  
546 - <provider selected="true" editor-type-id="text-editor">  
547 - <state relative-caret-position="-286">  
548 - <caret line="29" column="65" selection-start-line="29" selection-start-column="65" selection-end-line="29" selection-end-column="65" />  
549 - </state>  
550 - </provider>  
551 - </entry>  
552 - <entry file="file://$PROJECT_DIR$/pages/clock/clock.js">  
553 - <provider selected="true" editor-type-id="text-editor">  
554 - <state relative-caret-position="154">  
555 - <caret line="7" column="21" lean-forward="true" selection-start-line="7" selection-start-column="21" selection-end-line="7" selection-end-column="21" />  
556 - </state>  
557 - </provider>  
558 - </entry>  
559 <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxss"> 616 <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxss">
560 <provider selected="true" editor-type-id="text-editor"> 617 <provider selected="true" editor-type-id="text-editor">
561 <state relative-caret-position="198"> 618 <state relative-caret-position="198">
@@ -563,13 +620,6 @@ @@ -563,13 +620,6 @@
563 </state> 620 </state>
564 </provider> 621 </provider>
565 </entry> 622 </entry>
566 - <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxml">  
567 - <provider selected="true" editor-type-id="text-editor">  
568 - <state relative-caret-position="220">  
569 - <caret line="10" column="11" selection-start-line="10" selection-start-column="11" selection-end-line="10" selection-end-column="11" />  
570 - </state>  
571 - </provider>  
572 - </entry>  
573 <entry file="file://$PROJECT_DIR$/utils/util.js"> 623 <entry file="file://$PROJECT_DIR$/utils/util.js">
574 <provider selected="true" editor-type-id="text-editor"> 624 <provider selected="true" editor-type-id="text-editor">
575 <state relative-caret-position="286"> 625 <state relative-caret-position="286">
@@ -584,17 +634,24 @@ @@ -584,17 +634,24 @@
584 </state> 634 </state>
585 </provider> 635 </provider>
586 </entry> 636 </entry>
587 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js"> 637 + <entry file="file://$PROJECT_DIR$/pages/start/start.js">
588 <provider selected="true" editor-type-id="text-editor"> 638 <provider selected="true" editor-type-id="text-editor">
589 - <state relative-caret-position="902">  
590 - <caret line="41" column="33" selection-start-line="41" selection-start-column="33" selection-end-line="41" selection-end-column="33" /> 639 + <state relative-caret-position="1166">
  640 + <caret line="53" column="31" selection-start-line="53" selection-start-column="31" selection-end-line="53" selection-end-column="31" />
591 </state> 641 </state>
592 </provider> 642 </provider>
593 </entry> 643 </entry>
594 - <entry file="file://$PROJECT_DIR$/pages/start/start.js"> 644 + <entry file="file://$PROJECT_DIR$/project.config.json">
595 <provider selected="true" editor-type-id="text-editor"> 645 <provider selected="true" editor-type-id="text-editor">
596 - <state relative-caret-position="1166">  
597 - <caret line="53" column="31" selection-start-line="53" selection-start-column="31" selection-end-line="53" selection-end-column="31" /> 646 + <state relative-caret-position="308">
  647 + <caret line="14" column="32" selection-start-line="14" selection-start-column="32" selection-end-line="14" selection-end-column="32" />
  648 + </state>
  649 + </provider>
  650 + </entry>
  651 + <entry file="file://$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js">
  652 + <provider selected="true" editor-type-id="text-editor">
  653 + <state relative-caret-position="462">
  654 + <caret line="21" column="22" selection-start-line="21" selection-start-column="22" selection-end-line="21" selection-end-column="22" />
598 </state> 655 </state>
599 </provider> 656 </provider>
600 </entry> 657 </entry>
@@ -605,78 +662,218 @@ @@ -605,78 +662,218 @@
605 </state> 662 </state>
606 </provider> 663 </provider>
607 </entry> 664 </entry>
608 - <entry file="file://$PROJECT_DIR$/app.json"> 665 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.json">
  666 + <provider selected="true" editor-type-id="text-editor" />
  667 + </entry>
  668 + <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js">
609 <provider selected="true" editor-type-id="text-editor"> 669 <provider selected="true" editor-type-id="text-editor">
610 - <state relative-caret-position="440">  
611 - <caret line="20" column="38" selection-start-line="20" selection-start-column="38" selection-end-line="20" selection-end-column="38" /> 670 + <state relative-caret-position="1694">
  671 + <caret line="77" column="39" selection-start-line="77" selection-start-column="33" selection-end-line="77" selection-end-column="39" />
612 </state> 672 </state>
613 </provider> 673 </provider>
614 </entry> 674 </entry>
615 - <entry file="file://$PROJECT_DIR$/project.config.json"> 675 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml">
616 <provider selected="true" editor-type-id="text-editor"> 676 <provider selected="true" editor-type-id="text-editor">
617 - <state relative-caret-position="308">  
618 - <caret line="14" column="32" selection-start-line="14" selection-start-column="32" selection-end-line="14" selection-end-column="32" /> 677 + <state relative-caret-position="396">
  678 + <caret line="18" column="19" lean-forward="true" selection-start-line="18" selection-start-column="19" selection-end-line="18" selection-end-column="19" />
619 </state> 679 </state>
620 </provider> 680 </provider>
621 </entry> 681 </entry>
622 <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml"> 682 <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml">
623 <provider selected="true" editor-type-id="text-editor"> 683 <provider selected="true" editor-type-id="text-editor">
624 - <state relative-caret-position="506">  
625 - <caret line="23" column="15" selection-start-line="23" selection-start-column="15" selection-end-line="23" selection-end-column="15" /> 684 + <state relative-caret-position="242">
  685 + <caret line="11" column="115" selection-start-line="11" selection-start-column="98" selection-end-line="11" selection-end-column="115" />
626 </state> 686 </state>
627 </provider> 687 </provider>
628 </entry> 688 </entry>
629 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js"> 689 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.json">
630 <provider selected="true" editor-type-id="text-editor"> 690 <provider selected="true" editor-type-id="text-editor">
631 - <state relative-caret-position="660">  
632 - <caret line="87" column="75" selection-start-line="87" selection-start-column="75" selection-end-line="87" selection-end-column="75" /> 691 + <state relative-caret-position="22">
  692 + <caret line="1" column="29" selection-start-line="1" selection-start-column="29" selection-end-line="1" selection-end-column="29" />
  693 + </state>
  694 + </provider>
  695 + </entry>
  696 + <entry file="file://$PROJECT_DIR$/templates/templates.wxml">
  697 + <provider selected="true" editor-type-id="text-editor">
  698 + <state relative-caret-position="1254">
  699 + <caret line="57" column="43" selection-start-line="57" selection-start-column="35" selection-end-line="57" selection-end-column="43" />
633 </state> 700 </state>
634 </provider> 701 </provider>
635 </entry> 702 </entry>
636 <entry file="file://$PROJECT_DIR$/pages/index/index.wxml"> 703 <entry file="file://$PROJECT_DIR$/pages/index/index.wxml">
637 <provider selected="true" editor-type-id="text-editor"> 704 <provider selected="true" editor-type-id="text-editor">
638 - <state relative-caret-position="176">  
639 - <caret line="8" column="23" selection-start-line="8" selection-start-column="23" selection-end-line="8" selection-end-column="23" /> 705 + <state relative-caret-position="396">
  706 + <caret line="27" column="44" selection-start-line="27" selection-start-column="35" selection-end-line="27" selection-end-column="44" />
640 </state> 707 </state>
641 </provider> 708 </provider>
642 </entry> 709 </entry>
643 - <entry file="file://$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js"> 710 + <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxml">
644 <provider selected="true" editor-type-id="text-editor"> 711 <provider selected="true" editor-type-id="text-editor">
645 - <state relative-caret-position="462">  
646 - <caret line="21" column="22" selection-start-line="21" selection-start-column="22" selection-end-line="21" selection-end-column="22" /> 712 + <state relative-caret-position="220">
  713 + <caret line="10" column="11" selection-start-line="10" selection-start-column="11" selection-end-line="10" selection-end-column="11" />
  714 + </state>
  715 + </provider>
  716 + </entry>
  717 + <entry file="file://$PROJECT_DIR$/pages/clock/clock.js">
  718 + <provider selected="true" editor-type-id="text-editor">
  719 + <state relative-caret-position="572">
  720 + <caret line="107" column="26" lean-forward="true" selection-start-line="107" selection-start-column="26" selection-end-line="107" selection-end-column="26" />
  721 + </state>
  722 + </provider>
  723 + </entry>
  724 + <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.wxss">
  725 + <provider selected="true" editor-type-id="text-editor">
  726 + <state relative-caret-position="330">
  727 + <caret line="15" column="35" selection-start-line="15" selection-start-column="35" selection-end-line="15" selection-end-column="35" />
647 </state> 728 </state>
648 </provider> 729 </provider>
649 </entry> 730 </entry>
650 <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml"> 731 <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml">
651 <provider selected="true" editor-type-id="text-editor"> 732 <provider selected="true" editor-type-id="text-editor">
652 - <state relative-caret-position="176">  
653 - <caret line="8" column="43" selection-start-line="8" selection-start-column="43" selection-end-line="8" selection-end-column="43" /> 733 + <state relative-caret-position="1314">
  734 + <caret line="60" column="15" lean-forward="true" selection-start-line="60" selection-start-column="15" selection-end-line="60" selection-end-column="15" />
654 </state> 735 </state>
655 </provider> 736 </provider>
656 </entry> 737 </entry>
657 - <entry file="file://$PROJECT_DIR$/pages/index/index.js"> 738 + <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js">
658 <provider selected="true" editor-type-id="text-editor"> 739 <provider selected="true" editor-type-id="text-editor">
659 - <state relative-caret-position="707">  
660 - <caret line="176" selection-start-line="176" selection-end-line="176" /> 740 + <state relative-caret-position="852">
  741 + <caret line="227" selection-start-line="227" selection-end-line="245" selection-end-column="8" />
661 <folding> 742 <folding>
662 - <element signature="n#!!doc" expanded="true" /> 743 + <element signature="e#401#1280#0" />
  744 + <element signature="e#402#613#0" />
  745 + <element signature="e#621#832#0" />
  746 + <element signature="e#840#1052#0" />
  747 + <element signature="e#1060#1273#0" />
  748 + <element signature="e#1292#2413#0" />
663 </folding> 749 </folding>
664 </state> 750 </state>
665 </provider> 751 </provider>
666 </entry> 752 </entry>
667 - <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js"> 753 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js">
668 <provider selected="true" editor-type-id="text-editor"> 754 <provider selected="true" editor-type-id="text-editor">
669 - <state relative-caret-position="1518">  
670 - <caret line="152" column="39" selection-start-line="152" selection-start-column="39" selection-end-line="152" selection-end-column="39" /> 755 + <state relative-caret-position="333">
  756 + <caret line="144" column="16" selection-start-line="144" selection-start-column="16" selection-end-line="144" selection-end-column="16" />
  757 + </state>
  758 + </provider>
  759 + </entry>
  760 + <entry file="file://$PROJECT_DIR$/app.wxss">
  761 + <provider selected="true" editor-type-id="text-editor">
  762 + <state relative-caret-position="1188">
  763 + <caret line="54" lean-forward="true" selection-start-line="54" selection-end-line="54" />
671 <folding> 764 <folding>
672 - <element signature="e#380#591#0" />  
673 - <element signature="e#599#810#0" />  
674 - <element signature="e#818#1030#0" />  
675 - <element signature="e#1038#1251#0" />  
676 - <element signature="e#1270#2391#0" /> 765 + <element signature="e#251#4820#1" expanded="true" />
677 </folding> 766 </folding>
678 </state> 767 </state>
679 </provider> 768 </provider>
680 </entry> 769 </entry>
  770 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss">
  771 + <provider selected="true" editor-type-id="text-editor">
  772 + <state relative-caret-position="533">
  773 + <caret line="56" column="19" selection-start-line="56" selection-start-column="19" selection-end-line="56" selection-end-column="19" />
  774 + </state>
  775 + </provider>
  776 + </entry>
  777 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml">
  778 + <provider selected="true" editor-type-id="text-editor">
  779 + <state relative-caret-position="522">
  780 + <caret line="30" column="40" selection-start-line="30" selection-start-column="26" selection-end-line="30" selection-end-column="40" />
  781 + </state>
  782 + </provider>
  783 + </entry>
  784 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml">
  785 + <provider selected="true" editor-type-id="text-editor">
  786 + <state relative-caret-position="674">
  787 + <caret line="35" column="64" selection-end-line="62" selection-end-column="7" />
  788 + </state>
  789 + </provider>
  790 + </entry>
  791 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.json">
  792 + <provider selected="true" editor-type-id="text-editor">
  793 + <state>
  794 + <caret selection-end-line="2" selection-end-column="1" />
  795 + </state>
  796 + </provider>
  797 + </entry>
  798 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js">
  799 + <provider selected="true" editor-type-id="text-editor">
  800 + <state relative-caret-position="566">
  801 + <caret line="68" column="61" lean-forward="true" selection-start-line="68" selection-start-column="61" selection-end-line="68" selection-end-column="61" />
  802 + </state>
  803 + </provider>
  804 + </entry>
  805 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.js">
  806 + <provider selected="true" editor-type-id="text-editor">
  807 + <state relative-caret-position="498">
  808 + <caret line="127" column="67" lean-forward="true" selection-start-line="127" selection-start-column="67" selection-end-line="127" selection-end-column="67" />
  809 + </state>
  810 + </provider>
  811 + </entry>
  812 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss">
  813 + <provider selected="true" editor-type-id="text-editor">
  814 + <state relative-caret-position="308">
  815 + <caret line="35" selection-start-line="35" selection-end-line="38" selection-end-column="1" />
  816 + </state>
  817 + </provider>
  818 + </entry>
  819 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.json">
  820 + <provider selected="true" editor-type-id="text-editor">
  821 + <state relative-caret-position="22">
  822 + <caret line="1" column="35" lean-forward="true" selection-start-line="1" selection-start-column="35" selection-end-line="1" selection-end-column="35" />
  823 + </state>
  824 + </provider>
  825 + </entry>
  826 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss">
  827 + <provider selected="true" editor-type-id="text-editor">
  828 + <state relative-caret-position="806">
  829 + <caret line="73" column="28" selection-start-line="73" selection-start-column="28" selection-end-line="73" selection-end-column="28" />
  830 + </state>
  831 + </provider>
  832 + </entry>
  833 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml">
  834 + <provider selected="true" editor-type-id="text-editor">
  835 + <state relative-caret-position="1364">
  836 + <caret line="62" selection-start-line="62" selection-end-line="62" />
  837 + </state>
  838 + </provider>
  839 + </entry>
  840 + <entry file="file://$PROJECT_DIR$/app.json">
  841 + <provider selected="true" editor-type-id="text-editor">
  842 + <state relative-caret-position="88">
  843 + <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" />
  844 + </state>
  845 + </provider>
  846 + </entry>
  847 + <entry file="file://$PROJECT_DIR$/pages/index/index.js">
  848 + <provider selected="true" editor-type-id="text-editor">
  849 + <state relative-caret-position="586">
  850 + <caret line="58" column="62" selection-start-line="58" selection-start-column="55" selection-end-line="58" selection-end-column="62" />
  851 + <folding>
  852 + <element signature="n#!!doc" expanded="true" />
  853 + </folding>
  854 + </state>
  855 + </provider>
  856 + </entry>
  857 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml">
  858 + <provider selected="true" editor-type-id="text-editor">
  859 + <state relative-caret-position="286">
  860 + <caret line="13" column="99" lean-forward="true" selection-start-line="13" selection-start-column="99" selection-end-line="13" selection-end-column="99" />
  861 + </state>
  862 + </provider>
  863 + </entry>
  864 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.js">
  865 + <provider selected="true" editor-type-id="text-editor">
  866 + <state relative-caret-position="333">
  867 + <caret line="41" column="16" lean-forward="true" selection-start-line="41" selection-start-column="16" selection-end-line="51" selection-end-column="18" />
  868 + </state>
  869 + </provider>
  870 + </entry>
  871 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js">
  872 + <provider selected="true" editor-type-id="text-editor">
  873 + <state relative-caret-position="660">
  874 + <caret line="39" column="6" lean-forward="true" selection-start-line="39" selection-start-column="6" selection-end-line="39" selection-end-column="6" />
  875 + </state>
  876 + </provider>
  877 + </entry>
681 </component> 878 </component>
682 </project> 879 </project>
@@ -2,18 +2,19 @@ @@ -2,18 +2,19 @@
2 "pages": [ 2 "pages": [
3 "pages/start/start", 3 "pages/start/start",
4 "pages/index/index", 4 "pages/index/index",
  5 + "pages/my/order-detail/order-detail",
  6 + "pages/my/buyCard/buyCard",
5 "pages/index/confirm-appointment-info/confirm-appointment-info", 7 "pages/index/confirm-appointment-info/confirm-appointment-info",
  8 + "pages/index/confirm-appointment-info/add-student/add-student",
6 "pages/index/phone-code/phone-code", 9 "pages/index/phone-code/phone-code",
7 "pages/index/activity-detail/activity-detail", 10 "pages/index/activity-detail/activity-detail",
8 "pages/index/go-appointment/go-appointment", 11 "pages/index/go-appointment/go-appointment",
9 - "pages/index/confirm-appointment-info/add-student/add-student",  
10 "pages/my/myProfile/myProfile", 12 "pages/my/myProfile/myProfile",
11 "pages/my/serviceWeChat/serviceWeChat", 13 "pages/my/serviceWeChat/serviceWeChat",
12 "pages/my/chargePhoneNum/chargePhoneNum", 14 "pages/my/chargePhoneNum/chargePhoneNum",
13 "pages/my/myCard/myCard", 15 "pages/my/myCard/myCard",
14 "pages/my/groupBuyDetail/groupBuyDetail", 16 "pages/my/groupBuyDetail/groupBuyDetail",
15 "pages/my/groupBuyDetail2/groupBuyDetail2", 17 "pages/my/groupBuyDetail2/groupBuyDetail2",
16 - "pages/my/buyCard/buyCard",  
17 "pages/my/protocol/protocol", 18 "pages/my/protocol/protocol",
18 "pages/my/groupBupShare/groupBupShare", 19 "pages/my/groupBupShare/groupBupShare",
19 "pages/my/charge/charge", 20 "pages/my/charge/charge",
1 -@font-face {  
2 - font-family: 'iconfont'; /* project id 912375 */  
3 - src: url('//at.alicdn.com/t/font_912375_canfpux7i3.eot');  
4 - src: url('//at.alicdn.com/t/font_912375_canfpux7i3.eot?#iefix') format('embedded-opentype'),  
5 - url('//at.alicdn.com/t/font_912375_canfpux7i3.woff') format('woff'),  
6 - url('//at.alicdn.com/t/font_912375_canfpux7i3.ttf') format('truetype'),  
7 - url('//at.alicdn.com/t/font_912375_canfpux7i3.svg#iconfont') format('svg'); 1 +
  2 +@font-face {font-family: "iconfont";
  3 + src: url('//at.alicdn.com/t/font_912375_2nxkwkclpei.eot?t=1542606508745'); /* IE9*/
  4 + src: url('//at.alicdn.com/t/font_912375_2nxkwkclpei.eot?t=1542606508745#iefix') format('embedded-opentype'), /* IE6-IE8 */
  5 + url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAA04AAsAAAAAEwAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8nkoNY21hcAAAAYAAAADyAAACzLcE7olnbHlmAAACdAAACAkAAAqAfjE9G2hlYWQAAAqAAAAAMQAAADYURiNVaGhlYQAACrQAAAAgAAAAJAjVBfRobXR4AAAK1AAAACEAAABQU6//2GxvY2EAAAr4AAAAKgAAACocwBombWF4cAAACyQAAAAfAAAAIAEjAJJuYW1lAAALRAAAAUUAAAJtPlT+fXBvc3QAAAyMAAAAqgAAAPPBV59GeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk0WecwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeMTw/wtzwv4EhhnkFwwqgMCNIDgD+Ig0neJzlkkFOAkEQRd8MM4A4OiNsIDHEGGNceAwWcAEuwz3YssKTcAJXnuDPBdzj7y4WxkQvYHVeJ11V6a6uX0ANDMyrqaD4oCDZu71F9g+YZH/Fm8/3dPY0KlWr00JLrbTRVjvtdewP/el8BqFKreY5uv4Z/dUK3/7AI0885/XybaXohFtu/PqQsatpmdJwx8gVzbj2T64onTb844X/Yk3ePy+nWVIkSJrqQtJVZeDOWrPAPUZ1kGZDbeC+oy6wAmgepLnRIiDlLgPrg1ZBqkjrwJqhTWD10DYg3b0Lcs37wNqiY5DmtT8E1pv+FFB+AePHV+kAAHicZVYNbBTHFZ43c7d76/v/2V2f73d9vl0Ml/v17eJAzNkXhwQH2YY2xC4NppETFJU/lRBCm8agxhAUKW1ooypuwI0a9SchQW6lpqJIKFKDlP4LCfETlUqhJRKoqkrVFAUPfXNXEFVPp7czb+a9ee/N994bwgi5dZVNMJWYZCt5gRDIdctFsKQ2qRehW5LDlhmgGdD0NNQGwEKmqklyt1kCcwD54T67qqWgJqehajtWrd5nO7amqzU5plXt+6Dyv4x6a0cNGfm6WR8AJw16TNZ028EjA4B7mIdqEU++qxNJIhaCpUMFKHcOLvUlLsie5PrVRze4oVde9fKqdcnf+5lu+Hao2QgAeCNepNEQzVIAX9gXC7LWSLBjIZqhPNMBzWp1iDIt5AY62bx/gibgTz49hcKCKKNGoWDwMyWN9g6mz8nuzgR9deecUfhk0/MslfxdIKOBdzscDKpq8IZL8fkU1xNBFY/oOuBSvF7F9VgoBuCPP+Py+Hwe13hIhY7k7mGtC8+kQ9WAD0Kq1pwEmGzmVhL8UYz/KZZkDeIjKkZf+K9XEmBjkFkRRGRjEiV75ln2s3/n2PyefKWyplJhDTb/7IMreRYuDow8O89fgMqaanVNhTChlP2G9RAP6jMIyUvdZksLQ6Kj+hxGuU8Bs1sGSdONAaDlmGNZzpKvRO/NA417VslJgL/xN4xHu/kbmcIg/WWjsC+KG5Y48GO1Nx05PDJyOJLmm+iXli9fPNK/FmAtAfRjhv2D7SBeQqIa0W3imMSSCHVD8uxZSLnd/OOzZ/ll2HOWf+x2QwqZSUnil0lLdr/Lw2aIRYgCLchhIBBtei3cIqbt1NIghxF9TovYJvsL/1qk2FeK8OdSkkzT3f0w5LwJUtf+uEzfdJrQb6SZJMEHcDgai0X51mzFp6Qo/9Aeo/BgF7qY7OLv0TEbbJpSfBURNuGDi6AdXqITmxA3eoB+oDcSYRg6tAXPLkJU6i6BLAK7CiwR3Qw4A5CmUhB0LUbJBX4JPTQuXAAD3b50YeGWJN1aaNFaYElwbi5opQJzc4GUheOOeFdEljuQOXO3DOpgC7elkC4+Ebgj0hbvkOVIV1wIWm0cHWNn2PqW7QQkIt++BISR1c6yAFBymt9A2+TTp0HGc26cPnbF7f7rO4JeYesF464NN19zXcEll+vKsXeutO4Jg3SVbhSnRRVQ4SpcpV9Y/IR2tu7wIPuU7RH3D0Y4FzZUI1wLG+xTvnmBb4ajC3AUzsPR/86EKjfKzLvTbKpls0GWkuUoaykgK6Ar4ACLYUUZgFYRYmkYgD5TQAO5thi5pdayZeN6ANzpCh/nY2V4l4+X4Ti8W+Fj+zSrYGlQeqAEtDRcwj/lJ4qrS8UHSvSbNNZb7I3R9oeVUFrIjPPxilAhyM90U8d/rlSi2zFtUKrYzX+eK4FQkdPEotaibQz/gr3NHhIYzpuSnHesfFrAwiqCjGB2m1YbQbbjxrzTbIHh6WwzwTdhzfpusplZGu/smixk0oxvSZnVIYCham8a5iGbLUzEteSRsBy7KHuvxVyRrsllyzo7Iyu7r6lil9irf2SsiGjJZfdMtON6is2wMsmRZaRCGmQUDRSm1Gt1Q62pachQNShSTM2pRj1X7zNLtI7w6DYtR2cDUBW12VDRYKlltmQC7hN5p+ktSqfKq++FHYtkBzRXlhuN1oyRHc37yo2sN1VK+crlKR9+vfzv6EK/mat3xgfiiSF4nU/R/nxPXW9P/5AtT6E8apgqZ8tj5fZ0rD1tHPdFo75sFrL+aNQ/32j0NOPhNTKY8fCTix82GvlmZ3saeZL8X/7m0OdW5sqtLI7elb/WXWNKzoOBdejS+fP8EtYL4/z0LKWz02168qbbffNki7KZuzehEL9+Z9v07Jnb25AKW1y3zt161LWE/Qht6SR10kRrzB5ZorrmcuyIHKBF6tg9uhZBsMSw1GHwi4Cg6DMRLWrbOhyL/imwnoKYVmPnJvnsrz94bXQS9uLnUOnk9YvfTpbH4KHjbx/kXw9lgmZGG3pkSMvmg5nQsip9anT0KVo5FNTUrKoF6WohekfDT3Z+K7vxV9d2vvWN4bX8vTkl0qOoD6+rVtc9rCo9ESX++eroFkq3jFY/90w4cMIfifhP+KPCN4H1j9h1dg+J4KSqgxbDXoLV0BHFGxvKSKADZhWF7/Um1A7Yxl+RXZ4wK3TwvR1JQdSEF7bCNk805r1TB9ifsQ7kiENWIl7XINPAewpjEAzRAXMGXpnoBYboAKKfqeEAYPFdBSDKLyaUjDBFEQeLsGPpONAxmCXR51h18aXmBLb7QdgnmjR/vowZM1ihu6rD+Djw0Y2L3wNgX4b5UCH0eAggzDf/S4n44KWoXjh+39Ng7zJ2LXWxadbBpuhEk87cv5GiHAxXF2cqQ0AHK3BIvAX47qFJIG6P/E84Egw+HlA7I3zzNpfLr/wxX/rihleeBmdXFjUpdJqxdhy5azdbLSo29mkLMITY3dAd2wHxYMKeB7+NOlF+ORoF1dEX9H6NVlVbjUIMuxoUNEdTXeGXwzRK1SiNgbpcu12nX6cbCF5XPoDvOFOotqtYVMVLQKZVRfV6Ywr/gT+R98MwDAd6Ev63FB8FnwceExP+U1jrT/QEbt/3DPuM7UckE2hVNAsrXKuhyO03BLLo7PA49Xxn+3M/dMFYc/ZUj3dFjXXVVnh7TsE288VHtr/qod//6vj+fP79A7URSkdqB94n/wFKyy9/AAAAeJxjYGRgYADi3893M8bz23xl4GZhAIEbEvlrYPT/G/8jWOWYVwC5HAxMIFEAXJYMawAAAHicY2BkYGBu+N/AEMPW/v/G/xuscgxAERQgAgCpvQbTeJxjYWBgYEHGjEDMhiYGxGzt6GL/b8DYrIoIcQBNCwLaAAAAAAAAAADAAOgBJAFCAYYB5AIWAiQCPgKkAuoDZgOsBBoEQgS+BOoFEgVAAAB4nGNgZGBgEGFoY2BlAAEmIOYCQgaG/2A+AwAX7wG2AHicZY9NTsMwEIVf+gekEqqoYIfkBWIBKP0Rq25YVGr3XXTfpk6bKokjx63UA3AejsAJOALcgDvwSCebNpbH37x5Y08A3OAHHo7fLfeRPVwyO3INF7gXrlN/EG6QX4SbaONVuEX9TdjHM6bCbXRheYPXuGL2hHdhDx18CNdwjU/hOvUv4Qb5W7iJO/wKt9Dx6sI+5l5XuI1HL/bHVi+cXqnlQcWhySKTOb+CmV7vkoWt0uqca1vEJlODoF9JU51pW91T7NdD5yIVWZOqCas6SYzKrdnq0AUb5/JRrxeJHoQm5Vhj/rbGAo5xBYUlDowxQhhkiMro6DtVZvSvsUPCXntWPc3ndFsU1P9zhQEC9M9cU7qy0nk6T4E9XxtSdXQrbsuelDSRXs1JErJCXta2VELqATZlV44RelzRiT8oZ0j/AAlabsgAAAB4nG2Oyw7CIBREmT6grW+tiT/Rhf4RFQo0BjSV9PH10rozzuLczZnJJRH5piD/UyJCjAQpKBgy5CiwwhobbLHDHgcccUKJM6HCcNsaJoxVvTSsDVdxdxk9t9XdPccf0E47P0r68oPhjg1Bm+S1ENx18w53cUA+aWfVvJw10gbRqm2nA3v/9nWQqnwpzhZtjey0pw232htWL+/cYuFNGooPnvROSEI+Kpg90QAA') format('woff'),
  6 + url('//at.alicdn.com/t/font_912375_2nxkwkclpei.ttf?t=1542606508745') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  7 + url('//at.alicdn.com/t/font_912375_2nxkwkclpei.svg?t=1542606508745#iconfont') format('svg'); /* iOS 4.1- */
8 } 8 }
9 9
10 .iconfont { 10 .iconfont {
@@ -27,6 +27,8 @@ @@ -27,6 +27,8 @@
27 27
28 .icon-quxiao:before { content: "\e60f"; } 28 .icon-quxiao:before { content: "\e60f"; }
29 29
  30 +.icon-xuanze1:before { content: "\e649"; }
  31 +
30 .icon-daosanjiao:before { content: "\e610"; } 32 .icon-daosanjiao:before { content: "\e610"; }
31 33
32 .icon-jia:before { content: "\e79f"; } 34 .icon-jia:before { content: "\e79f"; }
@@ -47,4 +49,6 @@ @@ -47,4 +49,6 @@
47 49
48 .icon-dui:before { content: "\e648"; } 50 .icon-dui:before { content: "\e648"; }
49 51
  52 +.icon-xiala:before { content: "\e61e"; }
  53 +
50 .icon-wode:before { content: "\e67b"; } 54 .icon-wode:before { content: "\e67b"; }
1 // pages/clock/clock.js 1 // pages/clock/clock.js
  2 +const app =getApp();
  3 +// 引入SDK核心类
  4 +var QQMapWX = require('../../utils/qqmap-wx-jssdk.min.js');
2 Page({ 5 Page({
3 6
4 - /**  
5 - * 页面的初始数据  
6 - */  
7 - data: {  
8 - punchState: true,  
9 - address: '',  
10 - hasPhone: true,  
11 - },  
12 - //首次登录小程序,跳转到认证手机页面  
13 - goPhoneCode() {  
14 - wx.navigateTo({url: '/pages/index/phone-code/phone-code'})  
15 - },  
16 - //打卡申诉  
17 - punchApply() {  
18 - wx.navigateTo({  
19 - url: 'punchAppeal/punchAppeal',  
20 - })  
21 - },  
22 - //打卡  
23 - punch() {  
24 - var that = this  
25 - wx.getLocation({  
26 - type: 'wgs84',  
27 - success: function(res) {  
28 - var latitude = res.latitude  
29 - var longitude = res.longitude  
30 - var speed = res.speed  
31 - var accuracy = res.accuracy  
32 - that.setData({  
33 - address: '天津市',  
34 - punchState: false 7 + /**
  8 + * 页面的初始数据
  9 + */
  10 + data: {
  11 + punchState: true,
  12 + address: '',
  13 + hasPhone: true,
  14 + },
  15 + //首次登录小程序,跳转到认证手机页面
  16 + goPhoneCode() {
  17 + wx.navigateTo({url: '/pages/index/phone-code/phone-code'})
  18 + },
  19 + //打卡申诉
  20 + punchApply() {
  21 + wx.navigateTo({
  22 + url: 'punchAppeal/punchAppeal',
35 }) 23 })
36 - },  
37 - })  
38 -  
39 - // wx.chooseLocation({  
40 - // success: function(res) {  
41 - // console.log(res)  
42 - // var latitude = res.latitude  
43 - // var longitude = res.longitude  
44 - // var address = res.address  
45 - // that.setData({  
46 - // address: address,  
47 - // punchState:false  
48 - // })  
49 - // },  
50 - // })  
51 - },  
52 - /**  
53 - * 生命周期函数--监听页面加载  
54 - */  
55 - onLoad: function(options) {  
56 -  
57 - },  
58 -  
59 - /**  
60 - * 生命周期函数--监听页面初次渲染完成  
61 - */  
62 - onReady: function() {  
63 -  
64 - },  
65 -  
66 - /**  
67 - * 生命周期函数--监听页面显示  
68 - */  
69 - onShow: function() {  
70 -  
71 - },  
72 -  
73 - /**  
74 - * 生命周期函数--监听页面隐藏  
75 - */  
76 - onHide: function() {  
77 -  
78 - },  
79 -  
80 - /**  
81 - * 生命周期函数--监听页面卸载  
82 - */  
83 - onUnload: function() {  
84 -  
85 - },  
86 -  
87 - /**  
88 - * 页面相关事件处理函数--监听用户下拉动作  
89 - */  
90 - onPullDownRefresh: function() {  
91 -  
92 - },  
93 -  
94 - /**  
95 - * 页面上拉触底事件的处理函数  
96 - */  
97 - onReachBottom: function() {  
98 -  
99 - },  
100 -  
101 - /**  
102 - * 用户点击右上角分享  
103 - */  
104 - onShareAppMessage: function() {  
105 -  
106 - } 24 + },
  25 + //打卡
  26 + punch() {
  27 + var that = this
  28 + wx.getLocation({
  29 + type: 'wgs84',
  30 + success: function (res) {
  31 + var latitude = res.latitude
  32 + var longitude = res.longitude
  33 + var speed = res.speed
  34 + var accuracy = res.accuracy
  35 + that.setData({
  36 + address: '天津市',
  37 + punchState: false
  38 + })
  39 + },
  40 + })
  41 +
  42 + // wx.chooseLocation({
  43 + // success: function(res) {
  44 + // console.log(res)
  45 + // var latitude = res.latitude
  46 + // var longitude = res.longitude
  47 + // var address = res.address
  48 + // that.setData({
  49 + // address: address,
  50 + // punchState:false
  51 + // })
  52 + // },
  53 + // })
  54 + },
  55 + // 打卡页面获取用户所在实验室
  56 + postPosition(params) {
  57 + let url = '/portal/Experiment/user_session';
  58 + let header = {
  59 + "XX-token": wx.getStorageSync('token')
  60 + };
  61 + app.post(url,params,header).then((res) => {
  62 + console.log(res);
  63 + this.setData({
  64 + card_info: res
  65 + })
  66 + })
  67 + },
  68 + //打卡页面获取用户所在实验室
  69 + getExperiment() {
  70 + const self = this;
  71 + if(wx.getStorageSync('city')) {
  72 + wx.getLocation({
  73 + type: 'wgs84',
  74 + success (res) {
  75 + let params = {
  76 + city: wx.getStorageSync('city'),
  77 + lat: res.latitude,//纬度
  78 + lng: res.longitude,//经度
  79 + };
  80 + self.postPosition(params);
  81 + }
  82 + });
  83 + }else {
  84 + //获取当前城市
  85 + wx.getLocation({
  86 + type: 'wgs84',
  87 + success: function(res) {
  88 + console.log(res);
  89 + // 实例化API核心类
  90 + var demo = new QQMapWX({
  91 + key: 'CLVBZ-KHZKP-KWLDW-VDJTA-QVUST-XOBVO' // 必填
  92 + });
  93 +
  94 + // 调用接口
  95 + demo.reverseGeocoder({
  96 + location: {
  97 + latitude: res.latitude,//纬度
  98 + longitude: res.longitude//经度
  99 + },
  100 + success: function (res) {
  101 + console.log('城市',res);
  102 + let params = {
  103 + city: res.result.address_component.city,
  104 + // lat: res.latitude,//纬度
  105 + // lng: res.longitude,//经度
  106 + };
  107 + // self.postPosition(params);
  108 + },
  109 + fail: function (res) {
  110 + console.log(res);
  111 + },
  112 + complete: function (res) {
  113 + // console.log(res);
  114 + }
  115 + });
  116 + }
  117 + });
  118 +
  119 + }
  120 + },
  121 + /**
  122 + * 生命周期函数--监听页面加载
  123 + */
  124 + onLoad: function (options) {
  125 + const self = this;
  126 + self.getExperiment();
  127 + },
  128 +
  129 + /**
  130 + * 生命周期函数--监听页面初次渲染完成
  131 + */
  132 + onReady: function () {
  133 +
  134 + },
  135 +
  136 + /**
  137 + * 生命周期函数--监听页面显示
  138 + */
  139 + onShow: function () {
  140 +
  141 + },
  142 +
  143 + /**
  144 + * 生命周期函数--监听页面隐藏
  145 + */
  146 + onHide: function () {
  147 +
  148 + },
  149 +
  150 + /**
  151 + * 生命周期函数--监听页面卸载
  152 + */
  153 + onUnload: function () {
  154 +
  155 + },
  156 +
  157 + /**
  158 + * 页面相关事件处理函数--监听用户下拉动作
  159 + */
  160 + onPullDownRefresh: function () {
  161 +
  162 + },
  163 +
  164 + /**
  165 + * 页面上拉触底事件的处理函数
  166 + */
  167 + onReachBottom: function () {
  168 +
  169 + },
  170 +
  171 + /**
  172 + * 用户点击右上角分享
  173 + */
  174 + onShareAppMessage: function () {
  175 +
  176 + }
107 }) 177 })
1 // pages/index/confirm-appointment-info/add-student/add-student.js 1 // pages/index/confirm-appointment-info/add-student/add-student.js
2 -const date = new Date()  
3 -const years = []  
4 -const months = []  
5 -const days = [] 2 +const app = getApp();
  3 +const date = new Date();
  4 +const years = [];
  5 +const months = [];
  6 +const days = [];
6 7
7 for (let i = 1990; i <= date.getFullYear(); i++) { 8 for (let i = 1990; i <= date.getFullYear(); i++) {
8 years.push(i) 9 years.push(i)
@@ -23,8 +24,11 @@ Page({ @@ -23,8 +24,11 @@ Page({
23 */ 24 */
24 data: { 25 data: {
25 name: '', 26 name: '',
26 - sex: ['男', '女'], 27 + sex: ['男','女'],
  28 + default_sex: {id: 1,name: '男'},
27 city: ['北京市', '天津市', '河北省'], 29 city: ['北京市', '天津市', '河北省'],
  30 + default_birth: '2008-11-11',
  31 + default_city: '北京市',
28 years: years, 32 years: years,
29 year: date.getFullYear(), 33 year: date.getFullYear(),
30 months: months, 34 months: months,
@@ -76,16 +80,35 @@ Page({ @@ -76,16 +80,35 @@ Page({
76 icon: 'none' 80 icon: 'none'
77 }) 81 })
78 } else { 82 } else {
79 - wx.navigateTo({  
80 - url: '../../../my/myProfile/myProfile',  
81 - }) 83 + let url = '/user/Student/student_add';
  84 + let header = {
  85 + "XX-token": wx.getStorageSync('token')
  86 + };
  87 + let params = {
  88 + name: this.data.name,
  89 + sex: this.data.default_sex || this.data.sex[this.data.sex_index] === '男'? 1: 2,
  90 + birthday: this.data.birth_date || this.data.default_birth,
  91 + city: this.data.city[this.data.city_index] || this.data.default_city,
  92 + };
  93 + app.post(url,params,header).then((res) => {
  94 + console.log('保存',res);
  95 + if(res.is_success) {
  96 + if(this.data.is_back) {
  97 + wx.navigateBack({delta: 1})
  98 + }else {
  99 + wx.navigateTo({
  100 + url: '../../../my/myProfile/myProfile',
  101 + })
  102 + }
  103 + }
  104 + })
82 } 105 }
83 }, 106 },
84 /** 107 /**
85 * 生命周期函数--监听页面加载 108 * 生命周期函数--监听页面加载
86 */ 109 */
87 onLoad: function(options) { 110 onLoad: function(options) {
88 - 111 + this.setData({is_back: options.is_back?options.is_back:''})
89 }, 112 },
90 113
91 /** 114 /**
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 <view class="picker" wx:if="{{is_sex_change}}"> 13 <view class="picker" wx:if="{{is_sex_change}}">
14 {{sex[sex_index]}} 14 {{sex[sex_index]}}
15 </view> 15 </view>
16 - <view wx:else></view> 16 + <view wx:else>{{default_sex.name}}</view>
17 </view> 17 </view>
18 <view class="iconfont icon-daosanjiao"></view> 18 <view class="iconfont icon-daosanjiao"></view>
19 </view> 19 </view>
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 <view class="picker" wx:if="{{is_birth_change}}"> 25 <view class="picker" wx:if="{{is_birth_change}}">
26 {{birth_date}} 26 {{birth_date}}
27 </view> 27 </view>
28 - <view wx:else>2008-11-11</view> 28 + <view wx:else>{{default_birth}}</view>
29 </view> 29 </view>
30 <view class="iconfont icon-daosanjiao"></view> 30 <view class="iconfont icon-daosanjiao"></view>
31 </view> 31 </view>
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 <view class="picker" wx:if="{{is_city_change}}"> 37 <view class="picker" wx:if="{{is_city_change}}">
38 {{city[city_index]}} 38 {{city[city_index]}}
39 </view> 39 </view>
40 - <view wx:else>北京市</view> 40 + <view wx:else>{{default_city}}</view>
41 </view> 41 </view>
42 <view class="iconfont icon-daosanjiao"></view> 42 <view class="iconfont icon-daosanjiao"></view>
43 </view> 43 </view>
1 // pages/index/confirm-appointment-info/confirm-appointment-info.js 1 // pages/index/confirm-appointment-info/confirm-appointment-info.js
  2 +const app = getApp();
2 Page({ 3 Page({
3 4
4 /** 5 /**
@@ -13,50 +14,206 @@ Page({ @@ -13,50 +14,206 @@ Page({
13 state_data: { 14 state_data: {
14 is_showSuccessModal: false, 15 is_showSuccessModal: false,
15 }, 16 },
16 - children: [{name:'张三',is_choose: true},  
17 - {name:'李思思', is_choose: false},  
18 - {name:'迪丽热巴-迪力木拉提',is_choose: false}], 17 + student_list: [{id:1,name:'张三',checked: false},
  18 + {id:2,name:'李思思', checked: false},
  19 + {id:3,name:'王五', checked: false},
  20 + {id:4,name:'赵柳', checked: false},
  21 + {id:5,name:'迪丽热巴-迪力木拉提',checked: false}],
19 is_choose: false, 22 is_choose: false,
  23 + num_arr: [],
  24 + session_info: {},
  25 + student_num: 5,
20 }, 26 },
21 chooseChildren(e) { 27 chooseChildren(e) {
22 - const current = e.currentTarget.dataset.index;  
23 - this.setData({  
24 - currentChild: current,  
25 - [`children[${current}].is_choose`]: !this.data.children[current].is_choose 28 + console.log(e.detail);
  29 + // const current = e.currentTarget.dataset.index;
  30 + const that = this;
  31 + var index_arr = e.detail.value;
  32 + console.log(index_arr)
  33 + //新建数组全部设置为没被选中
  34 + var new_arr = [];
  35 + that.data.student_list.forEach((item) => {
  36 + new_arr.push({ ...item, checked: false })
  37 + });//给每一项添加checked属性
  38 + console.log('new_arr',new_arr);
  39 + var new_itmes = new_arr;
  40 + console.log('new_itmes', new_itmes);
  41 + if(that.data.student_num >=2) {//两个学员预约时
  42 + console.log('两个学员');
  43 + if (index_arr.length > 2) {
  44 + //取出倒数两个值
  45 + var key1 = index_arr[index_arr.length - 1];
  46 + var key2 = index_arr[index_arr.length - 2];
  47 + // var key3 = skin[skin.length - 3];
  48 + // console.log(key1, key2, key3);
  49 + console.log(key1, key2);
  50 + console.log(new_itmes[key1]['checked'],new_itmes[key1].id,new_itmes[key2].id);
  51 + //设置最后两个值为选中状态
  52 + new_itmes[key1]['checked'] = true
  53 + new_itmes[key2]['checked'] = true
  54 + // new_itmes[key3 - 1]['checked'] = 'true'
  55 + //删除被选中的第一个值
  56 + index_arr.splice(0, 1);
  57 + console.log('skin',index_arr);
  58 + const id_arr = [];
  59 + id_arr.push(new_itmes[key1].id,new_itmes[key2].id);
  60 + that.setData({student_id: id_arr.join(',')})
  61 + console.log('student_id', that.data.student_id);
  62 + } else {
  63 + //被选中少于两个,直接设置被选中
  64 + for (var i = 0; i < index_arr.length; i++) {
  65 + var key = index_arr[i]
  66 + console.log('key', key);
  67 + new_itmes[key]['checked'] = true
  68 + }
  69 + that.setData({student_id: new_itmes[key].id})
  70 + console.log('student_id', that.data.student_id);
  71 + }
  72 + }else if(that.data.student_num <2){//一个学员预约时
  73 + console.log('一个学员');
  74 + if (index_arr.length > 1) {
  75 + //取出倒数一个值
  76 + var key1 = index_arr[index_arr.length - 1];
  77 + // var key2 = skin[skin.length - 2];
  78 + // var key3 = skin[skin.length - 3];
  79 + // console.log(key1, key2, key3);
  80 + console.log(key1);
  81 + console.log(new_itmes[key1]['checked'],new_itmes[key1].id);
  82 + //设置最后一个值为选中状态
  83 + new_itmes[key1]['checked'] = true
  84 + // new_itmes[key2]['checked'] = true
  85 + // new_itmes[key3 - 1]['checked'] = 'true'
  86 + //删除被选中的第一个值
  87 + index_arr.splice(0, 1);
  88 + console.log('skin',index_arr);
  89 + that.setData({student_id: new_itmes[key1].id})
  90 + console.log('student_id', that.data.student_id);
  91 + } else {
  92 + //被选中少于1个,直接设置被选中
  93 + for (var i = 0; i < index_arr.length; i++) {
  94 + var key = index_arr[i]
  95 + console.log('key', key);
  96 + new_itmes[key]['checked'] = true
  97 + }
  98 + that.setData({student_id: new_itmes[key].id})
  99 + console.log('student_id', that.data.student_id);
  100 + }
  101 + }
  102 +
  103 + //存入
  104 + that.setData({
  105 + index_arr: index_arr,
  106 + // text: text,
  107 + student_list: new_itmes,
26 }) 108 })
  109 +
27 }, 110 },
28 - submit() { 111 + formSubmit(e) {
  112 + console.log(e.detail);
29 this.setData({'modal_data.is_showModal': true}) 113 this.setData({'modal_data.is_showModal': true})
  114 + // if(this.data.student_list.length === 0) {
  115 + // wx.showToast({title: '请添加学员!',icon:'none'})
  116 + // }else {
  117 + // // this.setData({'modal_data.is_showModal': true})
  118 + // let url = '/portal/Experiment/confirm_session_submit';
  119 + // let header = {
  120 + // "XX-token": wx.getStorageSync('token')
  121 + // };
  122 + // let params = {
  123 + // _type: 2,
  124 + // formId: e.detail.formId,
  125 + // experiment_id: this.data.experiment_id,
  126 + // session_id: this.data.session_id,
  127 + // reservation_id: this.data.reservation_id,
  128 + // students: this.data.student_id,
  129 + // };
  130 + // app.post(url,params,header).then((res) => {
  131 + // console.log('提交预约信息',res);
  132 + // })
  133 + // }
30 }, 134 },
31 chooseNo(e) { 135 chooseNo(e) {
32 this.setData({ 136 this.setData({
33 'modal_data.currentBtn': e.currentTarget.dataset.index, 137 'modal_data.currentBtn': e.currentTarget.dataset.index,
34 'modal_data.is_showModal': false 138 'modal_data.is_showModal': false
35 }); 139 });
36 - wx.switchTab({url: '/pages/index/index'}) 140 + // wx.switchTab({url: '/pages/index/index'})
  141 + wx.navigateBack({delta: 1})
37 }, 142 },
38 chooseYes(e) { 143 chooseYes(e) {
39 this.setData({ 144 this.setData({
40 'modal_data.currentBtn': e.currentTarget.dataset.index, 145 'modal_data.currentBtn': e.currentTarget.dataset.index,
41 'modal_data.is_showModal': false, 146 'modal_data.is_showModal': false,
42 'state_data.is_showSuccessModal': true 147 'state_data.is_showSuccessModal': true
43 - }) 148 + });
  149 + wx.navigateTo({url: '/pages/my/buyCard/buyCard'})
44 }, 150 },
45 modalConfirm() { 151 modalConfirm() {
46 this.setData({'state_data.is_showSuccessModal': false}) 152 this.setData({'state_data.is_showSuccessModal': false})
47 }, 153 },
48 disableScroll() {}, 154 disableScroll() {},
49 addStudent() { 155 addStudent() {
50 - wx.navigateTo({url: './add-student/add-student'}) 156 + wx.navigateTo({url: './add-student/add-student?is_back=' + true})
51 }, 157 },
  158 + //获取预约信息
52 getAppointmentInfo() { 159 getAppointmentInfo() {
53 - 160 + let url = '/portal/Experiment/confirm_session';
  161 + let header = {
  162 + "XX-token": wx.getStorageSync('token')
  163 + };
  164 + let params = {
  165 + experiment_id: this.data.experiment_id,
  166 + session_id: this.data.session_id,
  167 + reservation_id: this.data.reservation_id,
  168 + };
  169 + app.post(url,params,header).then((res) => {
  170 + console.log('预约信息',res);
  171 + var arr = [];
  172 + for (let i in res.list) {
  173 + arr.push(res.list[i]); //属性
  174 + //arr.push(obj[i]); //值
  175 + }//对象转数组
  176 + console.log('arr',arr);
  177 + var new_arr = [];
  178 + arr.forEach((item) => {
  179 + new_arr.push({ ...item, checked: false })
  180 + });//给每一项添加checked属性
  181 + console.log(new_arr);
  182 + this.setData({
  183 + student_list: new_arr,
  184 + new_arr:new_arr,
  185 + session_info: res.session_info,
  186 + })
  187 + console.log('student_list', this.data.student_list);
  188 + })
54 }, 189 },
  190 + //获取学员列表
  191 + // getStudentList() {
  192 + // let url = '/user/Student/student_list';
  193 + // let header = {
  194 + // "XX-token": wx.getStorageSync('token')
  195 + // };
  196 + // let params = {
  197 + // page: 1,
  198 + // };
  199 + // app.post(url,params,header).then((res) => {
  200 + // console.log('学员列表',res);
  201 + // this.setData({student_list: res.list})
  202 + // })
  203 + // },
55 /** 204 /**
56 * 生命周期函数--监听页面加载 205 * 生命周期函数--监听页面加载
57 */ 206 */
58 onLoad: function (options) { 207 onLoad: function (options) {
  208 + const self =this;
  209 + console.log('load');
59 console.log(options); 210 console.log(options);
  211 + self.setData({
  212 + experiment_id: +options.experiment_id?+options.experiment_id:'',
  213 + session_id: +options.session_id?+options.session_id:'',
  214 + reservation_id: +options.reservation_id?+options.reservation_id:'',
  215 + // student_num: +options.student_num?+options.student_num:'',
  216 + });
60 }, 217 },
61 218
62 /** 219 /**
@@ -70,8 +227,12 @@ Page({ @@ -70,8 +227,12 @@ Page({
70 * 生命周期函数--监听页面显示 227 * 生命周期函数--监听页面显示
71 */ 228 */
72 onShow: function() { 229 onShow: function() {
73 - const self = this;  
74 - setTimeout(function() { 230 + console.log('show');
  231 + const self = this;
  232 + // self.getStudentList();
  233 + self.getAppointmentInfo();
  234 +
  235 + setTimeout(function() {
75 self.setData({ 236 self.setData({
76 show: true 237 show: true
77 }) 238 })
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 <view class="time"> 9 <view class="time">
10 <view class="line"></view> 10 <view class="line"></view>
11 <text>预约时间 : </text> 11 <text>预约时间 : </text>
12 - <text class="date-time">2018年10月10号 10:00-11:30</text> 12 + <text class="date-time">{{session_info.time}}</text>
13 </view> 13 </view>
14 14
15 <view class="address"> 15 <view class="address">
@@ -19,7 +19,7 @@ @@ -19,7 +19,7 @@
19 </view> 19 </view>
20 <view class="address-detail"> 20 <view class="address-detail">
21 <!--<text>--> 21 <!--<text>-->
22 - 朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳区读书馆内朝阳区万寿路5号楼马兰大厦B座301念读书万寿路5号楼马兰大厦B座301念读书 22 + {{session_info.address}}
23 <!--</text>--> 23 <!--</text>-->
24 </view> 24 </view>
25 </view> 25 </view>
@@ -35,18 +35,26 @@ @@ -35,18 +35,26 @@
35 </view> 35 </view>
36 <image src="../../../images/add_btn.png" bindtap="addStudent"></image> 36 <image src="../../../images/add_btn.png" bindtap="addStudent"></image>
37 </view> 37 </view>
38 - <view class="name-box">  
39 - <view class="check-box" wx:for="{{children}}" wx:key="index" bindtap="chooseChildren" data-index="{{index}}">  
40 - <view class="name {{item.is_choose?'change-color':''}}">{{item.name}}</view>  
41 - <image src="../../../images/choose_icon.png" wx:if="{{item.is_choose}}" class="check-icon"></image> 38 + <form bindsubmit="formSubmit" bindreset="formReset" report-submit="true">
  39 + <view class="name-box">
  40 + <!--<view class="check-box" wx:for="{{student_list}}" wx:key="index" bindtap="chooseChildren" data-index="{{index}}">-->
  41 + <!--<view class="name {{item.is_choose?'change-color':''}}">{{item.name}}</view>-->
  42 + <!--<image src="../../../images/choose_icon.png" wx:if="{{item.is_choose}}" class="check-icon"></image>-->
  43 + <!--</view>-->
  44 + <checkbox-group class="check-box" bindchange="chooseChildren">
  45 + <label class="checkbox" wx:for="{{student_list}}" wx:for-item="i" wx:key="index">
  46 + <view class="name {{i.checked?'change-color':''}}">{{i.name}}</view>
  47 + <checkbox value="{{index}}" checked="{{i.checked}}" id="{{i.id}}" name="student_id" class="checkbox"/>
  48 + </label>
  49 + </checkbox-group>
42 </view> 50 </view>
43 - </view>  
44 51
45 <view class="footer"> 52 <view class="footer">
46 - <view class="confirm_btn" bindtap="submit">  
47 - <text>确认预约</text>  
48 - </view> 53 + <view class="confirm_btn" form-type="submit" bindtap="formSubmit">
  54 + <text>确认预约</text>
  55 + </view>
49 </view> 56 </view>
  57 + </form>
50 <import src="/templates/templates.wxml" /> 58 <import src="/templates/templates.wxml" />
51 <template is="modal" data="{{...modal_data}}"></template> 59 <template is="modal" data="{{...modal_data}}"></template>
52 <template is="state-modal" data="{{...state_data}}"></template> 60 <template is="state-modal" data="{{...state_data}}"></template>
@@ -74,6 +74,7 @@ page { @@ -74,6 +74,7 @@ page {
74 74
75 } 75 }
76 .address-detail { 76 .address-detail {
  77 + width:100%;
77 padding: 0 40rpx 50rpx 50rpx; 78 padding: 0 40rpx 50rpx 50rpx;
78 -webkit-box-sizing: border-box; 79 -webkit-box-sizing: border-box;
79 -moz-box-sizing: border-box; 80 -moz-box-sizing: border-box;
@@ -115,8 +116,26 @@ page { @@ -115,8 +116,26 @@ page {
115 .check-box { 116 .check-box {
116 width: 50%; 117 width: 50%;
117 display: flex; 118 display: flex;
  119 + flex-direction: column;
  120 + justify-content: space-between;
  121 + /*margin-bottom: 42rpx;*/
  122 +}
  123 +.checkbox {
  124 + display: flex;
  125 + /*align-items: center;*/
118 justify-content: space-between; 126 justify-content: space-between;
119 - margin-bottom: 42rpx; 127 + margin-bottom: 21rpx;
  128 +}
  129 +checkbox .wx-checkbox-input {
  130 + border: none;
  131 + color: #ffffff;
  132 +}
  133 +checkbox .wx-checkbox-input.wx-checkbox-input-checked {
  134 + border: none;
  135 +}
  136 +/*选中后的对勾样式*/
  137 +checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{
  138 + color: #3FA9F5;
120 } 139 }
121 .check-icon { 140 .check-icon {
122 width: 30rpx; 141 width: 30rpx;
@@ -16,7 +16,8 @@ Page({ @@ -16,7 +16,8 @@ Page({
16 description: '', 16 description: '',
17 session_list: {}, 17 session_list: {},
18 show_submit_btn: false, 18 show_submit_btn: false,
19 - areaTest: [{ 19 + student_num: 0,
  20 + areaTest: [{
20 area: '朝阳区', 21 area: '朝阳区',
21 list: [{ 22 list: [{
22 id: 1, 23 id: 1,
@@ -114,7 +115,7 @@ Page({ @@ -114,7 +115,7 @@ Page({
114 city_index: e.detail.value, 115 city_index: e.detail.value,
115 is_change: true, 116 is_change: true,
116 }); 117 });
117 - // this.getChooseSession(this.data.cityList[e.detail.value]) 118 + this.getChooseSession(this.data.cityList[e.detail.value])
118 }, 119 },
119 //选择实验室 120 //选择实验室
120 chooseTest(e) { 121 chooseTest(e) {
@@ -148,43 +149,76 @@ Page({ @@ -148,43 +149,76 @@ Page({
148 }, 149 },
149 150
150 //选择场次 151 //选择场次
151 - chooseTime(e) {  
152 - // console.log(e.currentTarget.dataset.index);  
153 - const current = e.currentTarget.dataset.index;  
154 - const current_id = e.currentTarget.dataset.id;  
155 - this.setData({  
156 - currentTime: current,  
157 - current_session_id: current_id,  
158 - is_choose: true,  
159 - })  
160 - }, 152 + chooseTime(e) {
  153 + // console.log(e.currentTarget.dataset.index);
  154 + const current = e.currentTarget.dataset.index;
  155 + const current_id = e.currentTarget.dataset.id;
  156 + const current_surplus_num = e.currentTarget.dataset.surplus_num;
  157 + if (current_surplus_num > 0) {
  158 + this.setData({
  159 + currentTime: current,
  160 + current_session_id: current_id,
  161 + is_choose: true,
  162 + })
  163 + }else {
  164 + wx.showToast({title:'该场次名额不足!',icon:'none'})
  165 + }
  166 + },
161 167
162 //点击单人预约 168 //点击单人预约
163 singleAppointment() { 169 singleAppointment() {
164 - // this.setData({  
165 - // show_submit_btn: true 170 + if(!this.data.is_choose) {
  171 + wx.showToast({title: '请选择实验和场次!',icon: 'none'})
  172 + }else {
  173 + this.setData({
  174 + show_submit_btn: true,
  175 + student_num: 1,
  176 + })
  177 + }
  178 + // wx.navigateTo({
  179 + // url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 1
166 // }) 180 // })
167 - wx.navigateTo({  
168 - url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 1  
169 - })  
170 }, 181 },
171 182
172 //点击双人预约 183 //点击双人预约
173 doubleAppointment() { 184 doubleAppointment() {
174 - // this.setData({  
175 - // show_submit_btn: true 185 + if(!this.data.is_choose) {
  186 + wx.showToast({title: '请选择实验和场次!',icon: 'none'})
  187 + }else {
  188 + this.setData({
  189 + show_submit_btn: true,
  190 + student_num: 2,
  191 + })
  192 + }
  193 + // wx.navigateTo({
  194 + // url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 2
176 // }) 195 // })
177 - wx.navigateTo({  
178 - url: '/pages/index/confirm-appointment-info/confirm-appointment-info?num=' + 2  
179 - })  
180 }, 196 },
181 - 197 + //提交
182 submit() { 198 submit() {
183 if(this.data.is_choose) { 199 if(this.data.is_choose) {
184 - wx.navigateTo({  
185 - url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.current_test_id  
186 - + '&session_id=' + this.data.current_session_id  
187 - }) 200 + let url = '/portal/Experiment/submit_session';
  201 + let header = {
  202 + "XX-token": wx.getStorageSync('token')
  203 + };
  204 + let params = {
  205 + experiment_id: this.data.experiment_id,
  206 + session_id: this.data.current_session_id,
  207 + student_num: this.data.student_num,
  208 + };
  209 + // wx.navigateTo({
  210 + // url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id
  211 + // + '&session_id=' + this.data.current_session_id + '&student_num=' + this.data.student_num
  212 + // })
  213 + app.post(url,params,header).then((res) => {
  214 + console.log(res);
  215 + wx.navigateTo({
  216 + url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id
  217 + + '&session_id=' + this.data.current_session_id
  218 + + '&reservation_id=' + res.reservation_id
  219 + + '&student_num' + this.data.student_num
  220 + })
  221 + });
188 }else { 222 }else {
189 wx.showToast({title: '请选择场次!',icon: 'none'}) 223 wx.showToast({title: '请选择场次!',icon: 'none'})
190 } 224 }
@@ -223,22 +257,23 @@ Page({ @@ -223,22 +257,23 @@ Page({
223 }; 257 };
224 app.post(url, params,header).then((res) => { 258 app.post(url, params,header).then((res) => {
225 console.log(res,res.list); 259 console.log(res,res.list);
226 - res.list.forEach((item,index) => {  
227 - if(item.lab_list) {  
228 - item.lab_list.forEach((i,k) => {  
229 - if(i.session_list) {  
230 - i.session_list.forEach((j,b) => {  
231 - j.start_time = util.formatTimeTwo(j.start_time, 'h:m');  
232 - j.end_time = util.formatTimeTwo(j.end_time, 'h:m');  
233 - })  
234 - }  
235 - })  
236 - }  
237 - });  
238 - console.log(res,res.list); 260 + // res.list.forEach((item,index) => {
  261 + // if(item.lab_list) {
  262 + // item.lab_list.forEach((i,k) => {
  263 + // if(i.session_list) {
  264 + // i.session_list.forEach((j,b) => {
  265 + // j.start_time = util.formatTimeTwo(j.start_time, 'h:m');
  266 + // j.end_time = util.formatTimeTwo(j.end_time, 'h:m');
  267 + // })
  268 + // }
  269 + // })
  270 + // }
  271 + // });
  272 + // console.log(res,res.list);
239 // console.log(res.list[0].lab_list[0].id); 273 // console.log(res.list[0].lab_list[0].id);
240 this.setData({ 274 this.setData({
241 areaTest: res.list, 275 areaTest: res.list,
  276 + student_num: res.student_num,
242 // current_test_id: res.list[0].lab_list ? res.list[0].lab_list[0].id : '',//默认实验室id 277 // current_test_id: res.list[0].lab_list ? res.list[0].lab_list[0].id : '',//默认实验室id
243 // current_session_id: res.list[0].lab_list ? res.list[0].lab_list[0].session_list[0].id : '',//默认场次id 278 // current_session_id: res.list[0].lab_list ? res.list[0].lab_list[0].session_list[0].id : '',//默认场次id
244 description: res.list[0].lab_list ? res.list[0].lab_list[0].description : '',//默认显示第一个实验室的描述 279 description: res.list[0].lab_list ? res.list[0].lab_list[0].description : '',//默认显示第一个实验室的描述
@@ -253,7 +288,8 @@ Page({ @@ -253,7 +288,8 @@ Page({
253 */ 288 */
254 onLoad: function(options) { 289 onLoad: function(options) {
255 const self = this; 290 const self = this;
256 - self.setData({experiment_id: +options.experiment_id}); 291 + console.log(options);
  292 + self.setData({experiment_id: +options.experiment_id});
257 if(wx.getStorageSync('city')) { 293 if(wx.getStorageSync('city')) {
258 const city = wx.getStorageSync('city'); 294 const city = wx.getStorageSync('city');
259 self.getChooseSession(city); 295 self.getChooseSession(city);
@@ -38,14 +38,15 @@ @@ -38,14 +38,15 @@
38 {{description}} 38 {{description}}
39 </scroll-view> 39 </scroll-view>
40 <scroll-view class="time-list-box" scroll-y> 40 <scroll-view class="time-list-box" scroll-y>
41 - <view wx:for="{{session_list}}" wx:key="index" class="time-list" bindtap="chooseTime" data-index="{{index}}" data-id="{{item.id}}"> 41 + <view wx:for="{{session_list}}" wx:key="index" class="time-list" bindtap="chooseTime"
  42 + data-index="{{index}}" data-id="{{item.id}}" data-surplus_num="{{item.surplus_num}}">
42 <image src="../../../images/blue_line.png" wx:if="{{current_session_id === item.id}}" 43 <image src="../../../images/blue_line.png" wx:if="{{current_session_id === item.id}}"
43 class="blue-line"></image> 44 class="blue-line"></image>
44 - <view class="right-content {{item.rest === 0? 'change-gray':''}}"> 45 + <view class="right-content {{item.surplus_num === 0? 'change-gray':''}}">
45 <view class="{{current_session_id === item.id? 'change-color':''}}">{{item.weekday}} {{item.date}}</view> 46 <view class="{{current_session_id === item.id? 'change-color':''}}">{{item.weekday}} {{item.date}}</view>
46 <view class="bottom-time-box"> 47 <view class="bottom-time-box">
47 <text class="time {{current_session_id === item.id? 'change-color':''}}">{{item.time}}</text> 48 <text class="time {{current_session_id === item.id? 'change-color':''}}">{{item.time}}</text>
48 - <text class="rest {{item.rest === 0? 'change-gray':''}}">剩余: {{item.surplus_num}}</text> 49 + <text class="rest {{item.surplus_num === 0? 'change-gray':''}}">剩余: {{item.surplus_num}}</text>
49 </view> 50 </view>
50 </view> 51 </view>
51 </view> 52 </view>
@@ -54,14 +55,17 @@ @@ -54,14 +55,17 @@
54 </view> 55 </view>
55 56
56 <view class="footer"> 57 <view class="footer">
57 - <!--<view class="confirm_btn" bindtap="submit" wx:if="{{show_submit_btn}}">-->  
58 - <view class="confirm_btn" bindtap="submit"> 58 + <view class="confirm_btn" bindtap="submit" wx:if="{{!show_submit_btn && student_num<2}}">
  59 + <!--<view class="confirm_btn" bindtap="submit">-->
  60 + <text>提 交</text>
  61 + </view>
  62 + <view class="appointment-box" wx:if="{{!show_submit_btn && student_num>=2}}">
  63 + <text class="single" bindtap="singleAppointment">单人预约</text>
  64 + <text class="double" bindtap="doubleAppointment">双人预约</text>
  65 + </view>
  66 + <view class="confirm_btn" bindtap="submit" wx:if="{{show_submit_btn}}">
  67 + <!--<view class="confirm_btn" bindtap="submit">-->
59 <text>提 交</text> 68 <text>提 交</text>
60 </view> 69 </view>
61 - <!--<view class="appointment-box" wx:else>-->  
62 - <!--<text class="single" bindtap="singleAppointment">单人预约</text>-->  
63 - <!--<text class="double" bindtap="doubleAppointment">双人预约</text>-->  
64 - <!--</view>-->  
65 - <!--<view>提 交</view>-->  
66 </view> 70 </view>
67 </view> 71 </view>
@@ -56,7 +56,7 @@ Page({ @@ -56,7 +56,7 @@ Page({
56 }, 56 },
57 //点击购买畅玩卡 57 //点击购买畅玩卡
58 goBuyCard() { 58 goBuyCard() {
59 - wx.navigateTo({url: './activity-detail/activity-detail'}) 59 + wx.navigateTo({url: '/pages/my/buyCard/buyCard?is_back=' + true})
60 }, 60 },
61 //点击进入活动详情 61 //点击进入活动详情
62 goTestDetail(e) { 62 goTestDetail(e) {
@@ -7,6 +7,12 @@ Page({ @@ -7,6 +7,12 @@ Page({
7 data: { 7 data: {
8 tab: ['全部', '待确认', '已预约', '已取消', '已结束'], 8 tab: ['全部', '待确认', '已预约', '已取消', '已结束'],
9 currentTab: 0, 9 currentTab: 0,
  10 + orderList: [
  11 + {address:'北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座',date:'2018.09.02 10:00-11:30',num: '000120180208'},
  12 + {address:'北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座',date:'2018.09.02 10:00-11:30',num: '000120180208'},
  13 + {address:'北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座',date:'2018.09.02 10:00-11:30',num: '000120180208'},
  14 + {address:'北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座',date:'2018.09.02 10:00-11:30',num: '000120180208'},
  15 + ]
10 }, 16 },
11 changeTab(e) { 17 changeTab(e) {
12 const current = e.currentTarget.dataset.index; 18 const current = e.currentTarget.dataset.index;
@@ -15,11 +21,28 @@ Page({ @@ -15,11 +21,28 @@ Page({
15 title: this.data.tab[current] 21 title: this.data.tab[current]
16 }) 22 })
17 }, 23 },
  24 + //获取预约列表
  25 + getAppointmentList() {
  26 + let url = '/user/Reservation/reservation_list';
  27 + let header = {
  28 + "XX-token": wx.getStorageSync('token')
  29 + };
  30 + let params = {
  31 + status: this.data.currentTab
  32 + };
  33 + // app.post(url, params,header).then((res) => {
  34 + // console.log('支付换参',res);
  35 + // this.wxPay(res.pay)
  36 + // })
  37 + },
  38 + goDetail() {
  39 + wx.navigateTo({url: '../order-detail/order-detail?currentTab=' + this.data.currentTab})
  40 + },
18 /** 41 /**
19 * 生命周期函数--监听页面加载 42 * 生命周期函数--监听页面加载
20 */ 43 */
21 onLoad: function (options) { 44 onLoad: function (options) {
22 - this.setData({currentTab: +options.currentTab}) 45 + this.setData({currentTab: +options.currentTab})
23 }, 46 },
24 47
25 /** 48 /**
@@ -33,7 +56,7 @@ Page({ @@ -33,7 +56,7 @@ Page({
33 * 生命周期函数--监听页面显示 56 * 生命周期函数--监听页面显示
34 */ 57 */
35 onShow: function () { 58 onShow: function () {
36 - console.log('show',this.data.currentTab) 59 + console.log('show', this.data.currentTab)
37 }, 60 },
38 61
39 /** 62 /**
@@ -7,10 +7,10 @@ @@ -7,10 +7,10 @@
7 7
8 <!--预约列表--> 8 <!--预约列表-->
9 <view class="list-box"> 9 <view class="list-box">
10 - <view class="order-box"> 10 + <view class="order-box" bindtap="goDetail" wx:for="{{orderList}}" wx:key="index">
11 11
12 <view class="head"> 12 <view class="head">
13 - <text class="number">预约单号:000120180208</text> 13 + <text class="number">预约单号:{{item.num}}</text>
14 <text class="appointment-state" wx:if="{{currentTab === 1}}" style="color: #FC5B63;">待确认</text> 14 <text class="appointment-state" wx:if="{{currentTab === 1}}" style="color: #FC5B63;">待确认</text>
15 <text class="appointment-state" wx:if="{{currentTab === 2}}">已预约</text> 15 <text class="appointment-state" wx:if="{{currentTab === 2}}">已预约</text>
16 <text class="appointment-state" wx:if="{{currentTab === 3}}" style="color: #464646;">已取消</text> 16 <text class="appointment-state" wx:if="{{currentTab === 3}}" style="color: #464646;">已取消</text>
@@ -26,13 +26,13 @@ @@ -26,13 +26,13 @@
26 <view class="right-box"> 26 <view class="right-box">
27 <view class="right-top-box"> 27 <view class="right-top-box">
28 <view class="iconfont icon-dingwei"></view> 28 <view class="iconfont icon-dingwei"></view>
29 - <view class="address">北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座</view> 29 + <view class="address">{{item.address}}</view>
30 </view> 30 </view>
31 31
32 <view class="right-bottom-box"> 32 <view class="right-bottom-box">
33 <view class="iconfont icon-shangwutubiao"></view> 33 <view class="iconfont icon-shangwutubiao"></view>
34 <view class="date-box"> 34 <view class="date-box">
35 - <view class="date">预约日期:2018.09.02 10:00-11:30</view> 35 + <view class="date">预约日期:{{item.date}}</view>
36 36
37 <view class="not_confirm" wx:if="{{currentTab === 1}}"> 37 <view class="not_confirm" wx:if="{{currentTab === 1}}">
38 <view class="go-cancel">取消</view> 38 <view class="go-cancel">取消</view>
1 // pages/buyCard/buyCard.js 1 // pages/buyCard/buyCard.js
  2 +const app = getApp();
2 Page({ 3 Page({
3 4
4 - /**  
5 - * 页面的初始数据  
6 - */  
7 - data: {  
8 - userlist: ['张三', '里斯'],  
9 - index: -1,  
10 - pay_success: false,  
11 - },  
12 - //选择成员  
13 - userList(e) {  
14 - this.setData({  
15 - index: e.detail.value  
16 - })  
17 - },  
18 - //添加学员  
19 - addUser() {  
20 - wx.navigateTo({  
21 - url: '../../index/confirm-appointment-info/add-student/add-student',  
22 - })  
23 - },  
24 - //服务协议  
25 - serviceProtocol() {  
26 - wx.navigateTo({  
27 - url: '../protocol/protocol',  
28 - })  
29 - },  
30 - //确认支付  
31 - confirmPay() {  
32 - this.setData({pay_success: true});  
33 - this.changeState();  
34 - wx.navigateBack({  
35 - delta: 1  
36 - })  
37 - },  
38 - //更新上一页面的购买状态  
39 - changeState() {  
40 - var pages = getCurrentPages();  
41 - if(pages.length > 1) {  
42 - var beforePage = pages[pages.length - 2]//获取上一页面实例  
43 - if(this.data.pay_success) {  
44 - beforePage.refreshModal()  
45 - }  
46 - }  
47 - },  
48 - /**  
49 - * 生命周期函数--监听页面加载  
50 - */  
51 - onLoad: function(options) {  
52 -  
53 - },  
54 -  
55 - /**  
56 - * 生命周期函数--监听页面初次渲染完成  
57 - */  
58 - onReady: function() {  
59 -  
60 - },  
61 -  
62 - /**  
63 - * 生命周期函数--监听页面显示  
64 - */  
65 - onShow: function() {  
66 -  
67 - },  
68 -  
69 - /**  
70 - * 生命周期函数--监听页面隐藏  
71 - */  
72 - onHide: function() {  
73 -  
74 - }, 5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + card_info: {},
  10 + student_list: {},
  11 + picker_list: {},
  12 + is_agree: true,
  13 + userlist: ['张三', '里斯'],
  14 + index: -1,
  15 + pay_success: false,
  16 + },
  17 + //选择成员
  18 + changeStudent(e) {
  19 + if(this.data.student_list.length === 0) {
  20 +
  21 + }
  22 + this.setData({
  23 + index: e.detail.value,
  24 + })
  25 + },
  26 + //添加学员
  27 + addUser() {
  28 + wx.navigateTo({
  29 + url: '../../index/confirm-appointment-info/add-student/add-student?is_back=' + true,
  30 + })
  31 + },
  32 + //服务协议
  33 + serviceProtocol() {
  34 + wx.navigateTo({
  35 + url: '../protocol/protocol',
  36 + })
  37 + },
  38 + //确认支付
  39 + confirmPay() {
  40 + if(this.data.index !== -1) {
  41 + if(this.data.is_agree) {
  42 + let url = '/portal/Order/order_add';
  43 + let header = {
  44 + "XX-token": wx.getStorageSync('token')
  45 + };
  46 + let params = {
  47 + id: this.data.student_list[this.data.index].id
  48 + };
  49 + app.post(url, params,header).then((res) => {
  50 + console.log('支付换参',res);
  51 + this.wxPay(res.pay)
  52 + })
  53 + }else {
  54 + wx.showToast({title:'请同意协议!',icon:'none'})
  55 + }
  56 + }else {
  57 + wx.showToast({title:'请绑定学员!',icon:'none'})
  58 + }
  59 +
  60 + },
  61 + //微信支付
  62 + wxPay(data) {
  63 + const self = this;
  64 + wx.requestPayment({
  65 + 'timeStamp': data.timeStamp,
  66 + 'nonceStr': data.nonceStr,
  67 + 'package': data.package,
  68 + 'signType': data.signType,
  69 + 'paySign': data.paySign,
  70 + 'success': function(res) {
  71 + console.log('支付成功',res);
  72 + wx.showToast({
  73 + title: '支付成功',
  74 + icon: 'success',
  75 + success: function () {
  76 + setTimeout(function () {
  77 + if(self.data.is_back) {//如果从首页购买的,成功后返回首页
  78 + wx.navigateBack({delta: 1})
  79 + }else {//否则进入预约订单详情页
  80 + wx.redirectTo({
  81 + url: '/pages/my/order-detail/order-detail'
  82 + })
  83 + }
  84 + // self.setData({
  85 + // ifshowmold: true,
  86 + // })
  87 + },500)
  88 + }
  89 + });
  90 + },
  91 + 'fail': function(res) {
  92 + // console.log('支付失败', res);
  93 + }
  94 + })
  95 + },
  96 + //更新上一页面的购买状态
  97 + changeState() {
  98 + var pages = getCurrentPages();
  99 + if (pages.length > 1) {
  100 + var beforePage = pages[pages.length - 2]//获取上一页面实例
  101 + if (this.data.pay_success) {
  102 + beforePage.refreshModal()
  103 + }
  104 + }
  105 + },
  106 + //畅玩卡说明
  107 + getArcCard() {
  108 + let url = '/wxapp/public/arc_card';
  109 + let header = {
  110 + "XX-token": wx.getStorageSync('token')
  111 + };
  112 + app.post(url, {},header).then((res) => {
  113 + console.log(res);
  114 + this.setData({
  115 + card_info: res
  116 + })
  117 + })
  118 + },
  119 + //获取学员列表
  120 + getStudentList() {
  121 + let url = '/user/Student/student_list';
  122 + let header = {
  123 + "XX-token": wx.getStorageSync('token')
  124 + };
  125 + let params = {
  126 + page: 1,
  127 + };
  128 + var list = [];
  129 + app.post(url,params,header).then((res) => {
  130 + console.log('学员列表',res);
  131 + res.list.forEach((item) => {
  132 + list.push(item.name)
  133 + });
  134 + console.log('list', list);
  135 + this.setData({student_list: res.list,picker_list: list})
  136 + })
  137 + },
  138 + //同意协议按钮
  139 + agree() {
  140 + this.setData({is_agree: !this.data.is_agree})
  141 + },
  142 + /**
  143 + * 生命周期函数--监听页面加载
  144 + */
  145 + onLoad: function (options) {
  146 + console.log('options',options);
  147 + const self =this;
  148 + self.getArcCard();
  149 + self.setData({is_back: options.is_back?options.is_back:''})
  150 + },
  151 +
  152 + /**
  153 + * 生命周期函数--监听页面初次渲染完成
  154 + */
  155 + onReady: function () {
  156 +
  157 + },
  158 +
  159 + /**
  160 + * 生命周期函数--监听页面显示
  161 + */
  162 + onShow: function () {
  163 + const self =this;
  164 + self.getStudentList();
  165 +
  166 + },
  167 +
  168 + /**
  169 + * 生命周期函数--监听页面隐藏
  170 + */
  171 + onHide: function () {
  172 +
  173 + },
  174 +
  175 + /**
  176 + * 生命周期函数--监听页面卸载
  177 + */
  178 + onUnload: function () {
  179 +
  180 + },
  181 +
  182 + /**
  183 + * 页面相关事件处理函数--监听用户下拉动作
  184 + */
  185 + onPullDownRefresh: function () {
  186 +
  187 + },
  188 +
  189 + /**
  190 + * 页面上拉触底事件的处理函数
  191 + */
  192 + onReachBottom: function () {
  193 +
  194 + },
  195 +
  196 + /**
  197 + * 用户点击右上角分享
  198 + */
  199 + onShareAppMessage: function () {
75 200
76 - /**  
77 - * 生命周期函数--监听页面卸载  
78 - */  
79 - onUnload: function() {  
80 -  
81 - },  
82 -  
83 - /**  
84 - * 页面相关事件处理函数--监听用户下拉动作  
85 - */  
86 - onPullDownRefresh: function() {  
87 -  
88 - },  
89 -  
90 - /**  
91 - * 页面上拉触底事件的处理函数  
92 - */  
93 - onReachBottom: function() {  
94 -  
95 - },  
96 -  
97 - /**  
98 - * 用户点击右上角分享  
99 - */  
100 - onShareAppMessage: function() {  
101 -  
102 - } 201 + }
103 }) 202 })
1 <!--pages/buyCard/buyCard.wxml--> 1 <!--pages/buyCard/buyCard.wxml-->
2 -<view class='long_img'>这是一个可以滑动的长图</view> 2 +<view class='long_img'>
  3 + <view class="title">{{card_info.title}}</view>
  4 + <!--<view class="bg"></view>-->
  5 + <view class="image">
  6 + <image src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1544071979008&di=b42f6a2bbd46902841d0c060ac144d15&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3708452181%2C3226163538%26fm%3D214%26gp%3D0.jpg" mode="aspectFill"></image>
  7 + </view>
  8 +</view>
3 <view class='service_box'> 9 <view class='service_box'>
4 <view class='add_person_box'> 10 <view class='add_person_box'>
5 <view class='list_input'> 11 <view class='list_input'>
6 <view>绑定学员:</view> 12 <view>绑定学员:</view>
7 - <picker value='{{index}}' range='{{userlist}}' bindchange='userList'> 13 + <view class="tips" wx:if="{{student_list.length === 0}}">点击右侧添加学员</view>
  14 + <picker value='{{index}}' range='{{picker_list}}' bindchange="changeStudent" wx:else>
8 <block wx:if='{{index==-1}}'> 15 <block wx:if='{{index==-1}}'>
9 - <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'></input> 16 + <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'/>
10 </block> 17 </block>
11 - <block wx:else>  
12 - <text>{{userlist[index]}}</text> 18 + <block wx:else class="text">
  19 + <text>{{picker_list[index]}}</text>
13 </block> 20 </block>
14 </picker> 21 </picker>
15 <view class='iconfont icon-daosanjiao'></view> 22 <view class='iconfont icon-daosanjiao'></view>
@@ -19,13 +26,14 @@ @@ -19,13 +26,14 @@
19 <text>添加学员</text> 26 <text>添加学员</text>
20 </view> 27 </view>
21 </view> 28 </view>
22 - <view class='service_info_box'>  
23 - <text class='iconfont icon-xuanzhong'></text> 29 + <view class='service_info_box' bindtap="agree">
  30 + <text class='iconfont icon-xuanze1' wx:if="{{!is_agree}}"></text>
  31 + <text class='iconfont icon-xuanzhong' wx:if="{{is_agree}}"></text>
24 <text>我已阅读并同意畅玩卡</text> 32 <text>我已阅读并同意畅玩卡</text>
25 - <text class='service_info' bindtap='serviceProtocol'>服务协议</text> 33 + <text class='service_info' catchtap='serviceProtocol'>服务协议</text>
26 </view> 34 </view>
27 <view class='service_btn_box'> 35 <view class='service_btn_box'>
28 - <view>需支付:¥288.00</view> 36 + <view>需支付:¥{{card_info.price}}</view>
29 <view class='pay_btn' bindtap='confirmPay'>确定</view> 37 <view class='pay_btn' bindtap='confirmPay'>确定</view>
30 </view> 38 </view>
31 </view> 39 </view>
@@ -4,6 +4,53 @@ @@ -4,6 +4,53 @@
4 .long_img{ 4 .long_img{
5 width: 100%; 5 width: 100%;
6 min-height: 1500rpx; 6 min-height: 1500rpx;
  7 + display: flex;
  8 + flex-direction: column;
  9 + align-items: center;
  10 +}
  11 +.long_img .title {
  12 + color: #666666;
  13 + font-size: 30rpx;
  14 + margin: 32rpx;
  15 +}
  16 +.bg {
  17 + width: 90%;
  18 + flex: 1;
  19 + background-image: url('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1544071979008&di=b42f6a2bbd46902841d0c060ac144d15&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3708452181%2C3226163538%26fm%3D214%26gp%3D0.jpg');
  20 + -webkit-background-size: cover;
  21 + background-size: cover;
  22 +}
  23 +.long_img .image {
  24 + width: 100%;
  25 + min-height: 1500rpx;
  26 + overflow-y: scroll;
  27 + display: -webkit-box;
  28 + -webkit-overflow-scrolling: touch;
  29 +}
  30 +.long_img image {
  31 + width: 100%;
  32 + min-height: 1500rpx;
  33 + flex:1;
  34 +}
  35 +.list_input {
  36 + height: 50rpx;
  37 + line-height: 50rpx;
  38 +}
  39 +.list_input picker, .tips {
  40 + width: 65%;
  41 +}
  42 +.list_input picker input, .list_input picker .text{
  43 + height: 50rpx;
  44 + font-size: 32rpx;
  45 +}
  46 +.tips {
  47 + font-size: 32rpx;
  48 + height: 50rpx;
  49 + color: #cccccc;
  50 +}
  51 +.icon-xuanze1 {
  52 + font-size:24rpx;
  53 + margin-right:18rpx;
7 } 54 }
8 .add_person_box { 55 .add_person_box {
9 display: flex; 56 display: flex;
  1 +// pages/index/confirm-appointment-info/confirm-appointment-info.js
  2 +const app = getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + show: false,
  10 + modal_data: {
  11 + is_showModal: false,
  12 + currentBtn: null,
  13 + },
  14 + state_data: {
  15 + is_showSuccessModal: false,
  16 + },
  17 + student_list: [{id:1,name:'张三',checked: false},
  18 + {id:2,name:'李思思', checked: false},
  19 + {id:3,name:'王五', checked: false},
  20 + {id:4,name:'赵柳', checked: false},
  21 + {id:5,name:'迪丽热巴-迪力木拉提',checked: false}],
  22 + is_choose: false,
  23 + num_arr: [],
  24 + session_info: {},
  25 + student_num: 5,
  26 + },
  27 + formSubmit(e) {
  28 + console.log(e.detail);
  29 + this.setData({'modal_data.is_showModal': true})
  30 + // if(this.data.student_list.length === 0) {
  31 + // wx.showToast({title: '请添加学员!',icon:'none'})
  32 + // }else {
  33 + // // this.setData({'modal_data.is_showModal': true})
  34 + // let url = '/portal/Experiment/confirm_session_submit';
  35 + // let header = {
  36 + // "XX-token": wx.getStorageSync('token')
  37 + // };
  38 + // let params = {
  39 + // _type: 2,
  40 + // formId: e.detail.formId,
  41 + // experiment_id: this.data.experiment_id,
  42 + // session_id: this.data.session_id,
  43 + // reservation_id: this.data.reservation_id,
  44 + // students: this.data.student_id,
  45 + // };
  46 + // app.post(url,params,header).then((res) => {
  47 + // console.log('提交预约信息',res);
  48 + // })
  49 + // }
  50 + },
  51 + chooseNo(e) {
  52 + this.setData({
  53 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  54 + 'modal_data.is_showModal': false
  55 + });
  56 + // wx.switchTab({url: '/pages/index/index'})
  57 + wx.navigateBack({delta: 1})
  58 + },
  59 + chooseYes(e) {
  60 + this.setData({
  61 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  62 + 'modal_data.is_showModal': false,
  63 + 'state_data.is_showSuccessModal': true
  64 + });
  65 + wx.navigateTo({url: '/pages/my/buyCard/buyCard'})
  66 + },
  67 + modalConfirm() {
  68 + this.setData({'state_data.is_showSuccessModal': false})
  69 + },
  70 + disableScroll() {},
  71 + addStudent() {
  72 + wx.navigateTo({url: './add-student/add-student?is_back=' + true})
  73 + },
  74 + //获取预约信息
  75 + getAppointmentInfo() {
  76 + let url = '/portal/Experiment/confirm_session';
  77 + let header = {
  78 + "XX-token": wx.getStorageSync('token')
  79 + };
  80 + let params = {
  81 + experiment_id: this.data.experiment_id,
  82 + session_id: this.data.session_id,
  83 + reservation_id: this.data.reservation_id,
  84 + };
  85 + app.post(url,params,header).then((res) => {
  86 + console.log('预约信息',res);
  87 + var arr = [];
  88 + for (let i in res.list) {
  89 + arr.push(res.list[i]); //属性
  90 + //arr.push(obj[i]); //值
  91 + }//对象转数组
  92 + console.log('arr',arr);
  93 + var new_arr = [];
  94 + arr.forEach((item) => {
  95 + new_arr.push({ ...item, checked: false })
  96 + });//给每一项添加checked属性
  97 + console.log(new_arr);
  98 + this.setData({
  99 + student_list: new_arr,
  100 + new_arr:new_arr,
  101 + session_info: res.session_info,
  102 + })
  103 + console.log('student_list', this.data.student_list);
  104 + })
  105 + },
  106 + //获取学员列表
  107 + // getStudentList() {
  108 + // let url = '/user/Student/student_list';
  109 + // let header = {
  110 + // "XX-token": wx.getStorageSync('token')
  111 + // };
  112 + // let params = {
  113 + // page: 1,
  114 + // };
  115 + // app.post(url,params,header).then((res) => {
  116 + // console.log('学员列表',res);
  117 + // this.setData({student_list: res.list})
  118 + // })
  119 + // },
  120 + /**
  121 + * 生命周期函数--监听页面加载
  122 + */
  123 + onLoad: function (options) {
  124 + const self =this;
  125 + console.log('load');
  126 + console.log(options);
  127 + self.setData({
  128 + currentTab: +options.currentTab?+options.currentTab:'',
  129 + });
  130 + },
  131 +
  132 + /**
  133 + * 生命周期函数--监听页面初次渲染完成
  134 + */
  135 + onReady: function() {
  136 +
  137 + },
  138 +
  139 + /**
  140 + * 生命周期函数--监听页面显示
  141 + */
  142 + onShow: function() {
  143 + console.log('show');
  144 + const self = this;
  145 + // self.getStudentList();
  146 + self.getAppointmentInfo();
  147 +
  148 + setTimeout(function() {
  149 + self.setData({
  150 + show: true
  151 + })
  152 + }, 500)
  153 + },
  154 +
  155 + /**
  156 + * 生命周期函数--监听页面隐藏
  157 + */
  158 + onHide: function() {
  159 +
  160 + },
  161 +
  162 + /**
  163 + * 生命周期函数--监听页面卸载
  164 + */
  165 + onUnload: function() {
  166 +
  167 + },
  168 +
  169 + /**
  170 + * 页面相关事件处理函数--监听用户下拉动作
  171 + */
  172 + onPullDownRefresh: function() {
  173 +
  174 + },
  175 +
  176 + /**
  177 + * 页面上拉触底事件的处理函数
  178 + */
  179 + onReachBottom: function() {
  180 +
  181 + },
  182 +
  183 + /**
  184 + * 用户点击右上角分享
  185 + */
  186 + onShareAppMessage: function() {
  187 +
  188 + }
  189 +})
  1 +{
  2 + "navigationBarTitleText": "预约单详情"
  3 +}
  1 +<!--pages/index/confirm-appointment-info/confirm-appointment-info.wxml-->
  2 +<view class="content">
  3 + <view class="tips {{show?'active':''}}" wx:if="{{currentTab === 1}}">
  4 + <!--<view>-->
  5 + <view class="iconfont icon-jinggao"></view>
  6 + <text>请在15分钟内确认预约,超时系统将自动取消!</text>
  7 + <!--</view>-->
  8 + </view>
  9 + <view class="time">
  10 + <view class="line"></view>
  11 + <text>预约时间 : </text>
  12 + <text class="date-time">{{session_info.time}}</text>
  13 + </view>
  14 +
  15 + <view class="address">
  16 + <view class="time">
  17 + <view class="line"></view>
  18 + <text>预约地址 :</text>
  19 + </view>
  20 + <view class="address-detail">
  21 + <!--<text>-->
  22 + {{session_info.address}}
  23 + <!--</text>-->
  24 + </view>
  25 + </view>
  26 + <view class="phone-num">
  27 + <view class="line"></view>
  28 + <text>预约电话 :</text>
  29 + <text class="phone">188****8888</text>
  30 + </view>
  31 + <view class="children-name">
  32 + <view class="left-name">
  33 + <view class="line"></view>
  34 + <text>学员姓名</text>
  35 + </view>
  36 + <image src="../../../images/add_btn.png" bindtap="addStudent"></image>
  37 + </view>
  38 + <form bindsubmit="formSubmit" bindreset="formReset" report-submit="true">
  39 + <view class="name-box">
  40 + <!--<view class="check-box" wx:for="{{student_list}}" wx:key="index" bindtap="chooseChildren" data-index="{{index}}">-->
  41 + <!--<view class="name {{item.is_choose?'change-color':''}}">{{item.name}}</view>-->
  42 + <!--<image src="../../../images/choose_icon.png" wx:if="{{item.is_choose}}" class="check-icon"></image>-->
  43 + <!--</view>-->
  44 + <checkbox-group class="check-box" bindchange="chooseChildren">
  45 + <label class="checkbox" wx:for="{{student_list}}" wx:for-item="i" wx:key="index">
  46 + <view class="name {{i.checked?'change-color':''}}">{{i.name}}</view>
  47 + <checkbox value="{{index}}" checked="{{i.checked}}" id="{{i.id}}" name="student_id" class="checkbox"/>
  48 + </label>
  49 + </checkbox-group>
  50 + </view>
  51 +
  52 + <!--待确认-->
  53 + <view class="footer-box1" wx:if="{{currentTab === 1}}">
  54 + <view class="one_box" form-type="submit" bindtap="formSubmit">
  55 + <!--<view class="cancel_box" form-type="submit" bindtap="formSubmit">-->
  56 + <view class="cancel">取消</view>
  57 + <view class="confirm"><text class="text">确认</text></view>
  58 + </view>
  59 + </view>
  60 + <!--已预约-->
  61 + <view class="footer-box" wx:if="{{currentTab === 2}}">
  62 + <view class="cancel_box" form-type="submit" bindtap="formSubmit">
  63 + <text>注:活动开始前 x 小时可取消预约</text>
  64 + <view class="cancel_btn"><text class="text">取消预约</text></view>
  65 + </view>
  66 + </view>
  67 + <!--已取消-->
  68 + <view class="footer-box2" wx:if="{{currentTab === 3}}">
  69 + <view class="two_box" form-type="submit" bindtap="formSubmit">
  70 + <view>预约已取消</view>
  71 + </view>
  72 + </view>
  73 + <!--已结束-->
  74 + <view class="footer-box2" wx:if="{{currentTab === 4}}">
  75 + <view class="two_box" form-type="submit" bindtap="formSubmit">
  76 + <view>预约已结束</view>
  77 + </view>
  78 + </view>
  79 + </form>
  80 + <import src="/templates/templates.wxml" />
  81 + <template is="modal" data="{{...modal_data}}"></template>
  82 + <template is="state-modal" data="{{...state_data}}"></template>
  83 +
  84 +
  85 +</view>
  1 +/* pages/my/order-detail/order-detail.wxss */
  2 +@import '../../index/confirm-appointment-info/confirm-appointment-info.wxss';
  3 +.footer-box {
  4 + width: 100%;
  5 + /* height: 50rpx; */
  6 + /* line-height: 50rpx; */
  7 + background-color: #FFFC5A63;
  8 + position: absolute;
  9 + bottom: 0;
  10 + left: 0;
  11 + z-index: 3;
  12 + padding: 0 20rpx;
  13 + -webkit-box-sizing: border-box;
  14 + -moz-box-sizing: border-box;
  15 + box-sizing: border-box;
  16 +}
  17 +.footer-box1, .footer-box2 {
  18 + width: 100%;
  19 + position: absolute;
  20 + bottom: 0;
  21 + left: 0;
  22 +}
  23 +.one_box {
  24 + display: flex;
  25 + align-items: center;
  26 + justify-content: space-between;
  27 +}
  28 +.one_box .cancel, .one_box .confirm{
  29 + width: 50%;
  30 + height: 94rpx;
  31 + color: #ffffff;
  32 + font-size: 36rpx;
  33 + display: flex;
  34 + align-items: center;
  35 + justify-content: center;
  36 +}
  37 +.one_box .cancel {
  38 + background-color: #FC5B63;
  39 +}
  40 +.one_box .confirm {
  41 + background-color: #3FA9F5;
  42 +}
  43 +.cancel_box {
  44 + width: 100%;
  45 + display: flex;
  46 + align-items: center;
  47 + justify-content: space-between;
  48 + line-height: 50rpx;
  49 +}
  50 +.cancel_box text {
  51 + color: #FC5A63;
  52 + font-size: 20rpx;
  53 +}
  54 +.cancel_btn {
  55 + background-color: #FC5B63;
  56 + border-radius: 10rpx;
  57 + height: 40rpx;
  58 + display: flex;
  59 + align-items: center;
  60 + /* padding: 10rpx; */
  61 +}
  62 +.cancel_btn .text {
  63 + color: #ffffff;
  64 + font-size: 24rpx;
  65 + margin: 0 10rpx;
  66 +}
  67 +.two_box {
  68 + background-color: #3FA9F5;
  69 + color: #ffffff;
  70 + font-size: 36rpx;
  71 + height: 94rpx;
  72 + display: flex;
  73 + align-items: center;
  74 + justify-content: center;
  75 +}
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 }, 12 },
13 "compileType": "miniprogram", 13 "compileType": "miniprogram",
14 "libVersion": "2.4.0", 14 "libVersion": "2.4.0",
15 - "appid": "wxaab44bbcfc0e5bc5", 15 + "appid": "wx267cf208ca289769",
16 "projectname": "science", 16 "projectname": "science",
17 "debugOptions": { 17 "debugOptions": {
18 "hidedInDevtools": [] 18 "hidedInDevtools": []