作者 吴孟雨

预约详情页接口,删除学员,添加formid

正在显示 45 个修改的文件 包含 1516 行增加913 行删除
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="确认预约信息,选择学员,优化单人预约,购买畅玩卡,添加预约详情页底部状态按钮,更换为客户appid"> 4 + <list default="true" id="632eecf6-91e3-4185-aea4-06d243e51935" name="Default" comment="申诉,打卡,编辑删除学员,更换手机号">
5 <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.js" beforeDir="false" afterPath="$PROJECT_DIR$/app.js" afterDir="false" />
6 <change beforePath="$PROJECT_DIR$/app.json" beforeDir="false" afterPath="$PROJECT_DIR$/app.json" afterDir="false" /> 7 <change beforePath="$PROJECT_DIR$/app.json" beforeDir="false" afterPath="$PROJECT_DIR$/app.json" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/app.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/app.wxss" afterDir="false" />
  9 + <change beforePath="$PROJECT_DIR$/images/success.jpg" beforeDir="false" />
7 <change beforePath="$PROJECT_DIR$/pages/clock/clock.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.js" afterDir="false" /> 10 <change beforePath="$PROJECT_DIR$/pages/clock/clock.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.js" afterDir="false" />
8 <change beforePath="$PROJECT_DIR$/pages/clock/clock.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.wxml" afterDir="false" /> 11 <change beforePath="$PROJECT_DIR$/pages/clock/clock.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.wxml" afterDir="false" />
9 - <change beforePath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.js" afterDir="false" />  
10 - <change beforePath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxml" afterDir="false" />  
11 - <change beforePath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxss" afterDir="false" /> 12 + <change beforePath="$PROJECT_DIR$/pages/clock/clock.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/clock/clock.wxss" afterDir="false" />
  13 + <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" />
  14 + <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" />
  15 + <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" />
  16 + <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" />
  17 + <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" />
12 <change beforePath="$PROJECT_DIR$/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.js" afterDir="false" /> 18 <change beforePath="$PROJECT_DIR$/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.js" afterDir="false" />
  19 + <change beforePath="$PROJECT_DIR$/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.wxml" afterDir="false" />
  20 + <change beforePath="$PROJECT_DIR$/pages/index/index.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/index/index.wxss" afterDir="false" />
13 <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" /> 21 <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" />
14 <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" /> 22 <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" />
15 <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" /> 23 <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" />
  24 + <change beforePath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxss" afterDir="false" />
  25 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" afterDir="false" />
  26 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" afterDir="false" />
  27 + <change beforePath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" afterDir="false" />
  28 + <change beforePath="$PROJECT_DIR$/pages/my/charge/charge.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/charge/charge.js" afterDir="false" />
  29 + <change beforePath="$PROJECT_DIR$/pages/my/charge/charge.json" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/charge/charge.json" afterDir="false" />
  30 + <change beforePath="$PROJECT_DIR$/pages/my/charge/charge.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/charge/charge.wxml" afterDir="false" />
  31 + <change beforePath="$PROJECT_DIR$/pages/my/charge/charge.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/charge/charge.wxss" afterDir="false" />
16 <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" afterDir="false" /> 32 <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" afterDir="false" />
  33 + <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json" afterDir="false" />
17 <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" afterDir="false" /> 34 <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" afterDir="false" />
  35 + <change beforePath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxss" afterDir="false" />
  36 + <change beforePath="$PROJECT_DIR$/pages/my/edit-student/edit-student.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/edit-student/edit-student.js" afterDir="false" />
18 <change beforePath="$PROJECT_DIR$/pages/my/my.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/my.js" afterDir="false" /> 37 <change beforePath="$PROJECT_DIR$/pages/my/my.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/my.js" afterDir="false" />
19 <change beforePath="$PROJECT_DIR$/pages/my/my.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/my.wxml" afterDir="false" /> 38 <change beforePath="$PROJECT_DIR$/pages/my/my.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/my.wxml" afterDir="false" />
20 <change beforePath="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" afterDir="false" /> 39 <change beforePath="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" afterDir="false" />
21 <change beforePath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" afterDir="false" /> 40 <change beforePath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" afterDir="false" />
  41 + <change beforePath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxss" afterDir="false" />
  42 + <change beforePath="$PROJECT_DIR$/pages/my/order-detail/order-detail.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/order-detail/order-detail.js" afterDir="false" />
  43 + <change beforePath="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml" afterDir="false" />
  44 + <change beforePath="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss" afterDir="false" />
  45 + <change beforePath="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.js" afterDir="false" />
  46 + <change beforePath="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.wxml" afterDir="false" />
  47 + <change beforePath="$PROJECT_DIR$/pages/start/start.js" beforeDir="false" afterPath="$PROJECT_DIR$/pages/start/start.js" afterDir="false" />
  48 + <change beforePath="$PROJECT_DIR$/templates/templates.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/templates/templates.wxml" afterDir="false" />
  49 + <change beforePath="$PROJECT_DIR$/templates/templates.wxss" beforeDir="false" afterPath="$PROJECT_DIR$/templates/templates.wxss" afterDir="false" />
22 </list> 50 </list>
23 <ignored path="$PROJECT_DIR$/.tmp/" /> 51 <ignored path="$PROJECT_DIR$/.tmp/" />
24 <ignored path="$PROJECT_DIR$/temp/" /> 52 <ignored path="$PROJECT_DIR$/temp/" />
@@ -33,45 +61,46 @@ @@ -33,45 +61,46 @@
33 <session id="-381596063"> 61 <session id="-381596063">
34 <usages-collector id="statistics.lifecycle.project"> 62 <usages-collector id="statistics.lifecycle.project">
35 <counts> 63 <counts>
36 - <entry key="project.closed" value="8" /> 64 + <entry key="project.closed" value="9" />
37 <entry key="project.open.time.0" value="5" /> 65 <entry key="project.open.time.0" value="5" />
38 <entry key="project.open.time.1" value="3" /> 66 <entry key="project.open.time.1" value="3" />
39 <entry key="project.open.time.2" value="1" /> 67 <entry key="project.open.time.2" value="1" />
40 - <entry key="project.opened" value="9" /> 68 + <entry key="project.open.time.8" value="1" />
  69 + <entry key="project.opened" value="10" />
41 </counts> 70 </counts>
42 </usages-collector> 71 </usages-collector>
43 <usages-collector id="statistics.file.extensions.open"> 72 <usages-collector id="statistics.file.extensions.open">
44 <counts> 73 <counts>
45 - <entry key="js" value="52" />  
46 - <entry key="json" value="18" />  
47 - <entry key="wxml" value="46" />  
48 - <entry key="wxss" value="15" /> 74 + <entry key="js" value="92" />
  75 + <entry key="json" value="25" />
  76 + <entry key="wxml" value="80" />
  77 + <entry key="wxss" value="34" />
49 </counts> 78 </counts>
50 </usages-collector> 79 </usages-collector>
51 <usages-collector id="statistics.file.types.open"> 80 <usages-collector id="statistics.file.types.open">
52 <counts> 81 <counts>
53 - <entry key="CSS" value="15" />  
54 - <entry key="HTML" value="46" />  
55 - <entry key="JSON" value="18" />  
56 - <entry key="JavaScript" value="52" /> 82 + <entry key="CSS" value="34" />
  83 + <entry key="HTML" value="80" />
  84 + <entry key="JSON" value="25" />
  85 + <entry key="JavaScript" value="92" />
57 </counts> 86 </counts>
58 </usages-collector> 87 </usages-collector>
59 <usages-collector id="statistics.file.extensions.edit"> 88 <usages-collector id="statistics.file.extensions.edit">
60 <counts> 89 <counts>
61 - <entry key="js" value="7079" />  
62 - <entry key="json" value="119" />  
63 - <entry key="txt" value="144" />  
64 - <entry key="wxml" value="1482" />  
65 - <entry key="wxss" value="805" /> 90 + <entry key="js" value="10172" />
  91 + <entry key="json" value="152" />
  92 + <entry key="txt" value="166" />
  93 + <entry key="wxml" value="2343" />
  94 + <entry key="wxss" value="1204" />
66 </counts> 95 </counts>
67 </usages-collector> 96 </usages-collector>
68 <usages-collector id="statistics.file.types.edit"> 97 <usages-collector id="statistics.file.types.edit">
69 <counts> 98 <counts>
70 - <entry key="CSS" value="805" />  
71 - <entry key="HTML" value="1482" />  
72 - <entry key="JSON" value="119" />  
73 - <entry key="JavaScript" value="7079" />  
74 - <entry key="PLAIN_TEXT" value="144" /> 99 + <entry key="CSS" value="1204" />
  100 + <entry key="HTML" value="2343" />
  101 + <entry key="JSON" value="152" />
  102 + <entry key="JavaScript" value="10172" />
  103 + <entry key="PLAIN_TEXT" value="166" />
75 </counts> 104 </counts>
76 </usages-collector> 105 </usages-collector>
77 </session> 106 </session>
@@ -79,86 +108,98 @@ @@ -79,86 +108,98 @@
79 <component name="FileEditorManager"> 108 <component name="FileEditorManager">
80 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> 109 <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
81 <file pinned="false" current-in-tab="false"> 110 <file pinned="false" current-in-tab="false">
82 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml"> 111 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js">
83 <provider selected="true" editor-type-id="text-editor"> 112 <provider selected="true" editor-type-id="text-editor">
84 - <state relative-caret-position="30">  
85 - <caret line="10" column="34" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="34" /> 113 + <state relative-caret-position="-3101">
  114 + <caret line="78" column="44" selection-start-line="78" selection-start-column="44" selection-end-line="78" selection-end-column="44" />
86 </state> 115 </state>
87 </provider> 116 </provider>
88 </entry> 117 </entry>
89 </file> 118 </file>
90 <file pinned="false" current-in-tab="false"> 119 <file pinned="false" current-in-tab="false">
91 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js"> 120 + <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js">
92 <provider selected="true" editor-type-id="text-editor"> 121 <provider selected="true" editor-type-id="text-editor">
93 - <state relative-caret-position="654">  
94 - <caret line="99" column="61" lean-forward="true" selection-start-line="99" selection-start-column="61" selection-end-line="99" selection-end-column="61" /> 122 + <state relative-caret-position="540">
  123 + <caret line="220" column="14" lean-forward="true" selection-start-line="220" selection-start-column="14" selection-end-line="220" selection-end-column="14" />
  124 + <folding>
  125 + <element signature="e#402#613#0" />
  126 + <element signature="e#621#832#0" />
  127 + <element signature="e#840#1052#0" />
  128 + <element signature="e#1060#1273#0" />
  129 + <element signature="e#1292#2413#0" />
  130 + </folding>
95 </state> 131 </state>
96 </provider> 132 </provider>
97 </entry> 133 </entry>
98 </file> 134 </file>
99 <file pinned="false" current-in-tab="false"> 135 <file pinned="false" current-in-tab="false">
100 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.js"> 136 + <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml">
101 <provider selected="true" editor-type-id="text-editor"> 137 <provider selected="true" editor-type-id="text-editor">
102 - <state relative-caret-position="308">  
103 - <caret line="14" column="34" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="34" /> 138 + <state relative-caret-position="110">
  139 + <caret line="5" column="51" selection-start-line="5" selection-start-column="51" selection-end-line="5" selection-end-column="51" />
104 </state> 140 </state>
105 </provider> 141 </provider>
106 </entry> 142 </entry>
107 </file> 143 </file>
108 - <file pinned="false" current-in-tab="true">  
109 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js"> 144 + <file pinned="false" current-in-tab="false">
  145 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js">
110 <provider selected="true" editor-type-id="text-editor"> 146 <provider selected="true" editor-type-id="text-editor">
111 - <state relative-caret-position="726">  
112 - <caret line="120" column="37" selection-start-line="120" selection-start-column="37" selection-end-line="120" selection-end-column="37" /> 147 + <state relative-caret-position="518">
  148 + <caret line="28" column="41" lean-forward="true" selection-start-line="28" selection-start-column="41" selection-end-line="28" selection-end-column="41" />
113 </state> 149 </state>
114 </provider> 150 </provider>
115 </entry> 151 </entry>
116 </file> 152 </file>
117 <file pinned="false" current-in-tab="false"> 153 <file pinned="false" current-in-tab="false">
118 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json">  
119 - <provider selected="true" editor-type-id="text-editor" /> 154 + <entry file="file://$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.wxml">
  155 + <provider selected="true" editor-type-id="text-editor">
  156 + <state relative-caret-position="220">
  157 + <caret line="10" column="54" selection-start-line="10" selection-start-column="47" selection-end-line="10" selection-end-column="54" />
  158 + </state>
  159 + </provider>
120 </entry> 160 </entry>
121 </file> 161 </file>
122 - <file pinned="false" current-in-tab="false">  
123 - <entry file="file://$PROJECT_DIR$/app.js"> 162 + <file pinned="false" current-in-tab="true">
  163 + <entry file="file://$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.js">
124 <provider selected="true" editor-type-id="text-editor"> 164 <provider selected="true" editor-type-id="text-editor">
125 - <state relative-caret-position="256">  
126 - <caret line="127" column="11" selection-start-line="127" selection-start-column="4" selection-end-line="127" selection-end-column="11" /> 165 + <state relative-caret-position="418">
  166 + <caret line="19" column="13" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="13" />
127 </state> 167 </state>
128 </provider> 168 </provider>
129 </entry> 169 </entry>
130 </file> 170 </file>
131 <file pinned="false" current-in-tab="false"> 171 <file pinned="false" current-in-tab="false">
132 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.json">  
133 - <provider selected="true" editor-type-id="text-editor" /> 172 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml">
  173 + <provider selected="true" editor-type-id="text-editor">
  174 + <state relative-caret-position="88">
  175 + <caret line="4" column="64" selection-start-line="4" selection-start-column="55" selection-end-line="4" selection-end-column="64" />
  176 + </state>
  177 + </provider>
134 </entry> 178 </entry>
135 </file> 179 </file>
136 <file pinned="false" current-in-tab="false"> 180 <file pinned="false" current-in-tab="false">
137 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml"> 181 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml">
138 <provider selected="true" editor-type-id="text-editor"> 182 <provider selected="true" editor-type-id="text-editor">
139 - <state relative-caret-position="638">  
140 - <caret line="29" column="23" selection-start-line="29" selection-start-column="15" selection-end-line="29" selection-end-column="23" /> 183 + <state relative-caret-position="1518">
  184 + <caret line="69" column="58" selection-start-line="69" selection-start-column="58" selection-end-line="69" selection-end-column="58" />
141 </state> 185 </state>
142 </provider> 186 </provider>
143 </entry> 187 </entry>
144 </file> 188 </file>
145 <file pinned="false" current-in-tab="false"> 189 <file pinned="false" current-in-tab="false">
146 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js"> 190 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.js">
147 <provider selected="true" editor-type-id="text-editor"> 191 <provider selected="true" editor-type-id="text-editor">
148 - <state relative-caret-position="369">  
149 - <caret line="65" selection-start-line="65" selection-end-line="104" selection-end-column="6" />  
150 - <folding>  
151 - <element signature="e#1785#3272#0" />  
152 - </folding> 192 + <state relative-caret-position="1056">
  193 + <caret line="183" column="20" lean-forward="true" selection-start-line="183" selection-start-column="20" selection-end-line="183" selection-end-column="20" />
153 </state> 194 </state>
154 </provider> 195 </provider>
155 </entry> 196 </entry>
156 </file> 197 </file>
157 <file pinned="false" current-in-tab="false"> 198 <file pinned="false" current-in-tab="false">
158 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml"> 199 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss">
159 <provider selected="true" editor-type-id="text-editor"> 200 <provider selected="true" editor-type-id="text-editor">
160 - <state relative-caret-position="330">  
161 - <caret line="15" column="25" lean-forward="true" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" /> 201 + <state relative-caret-position="500">
  202 + <caret line="154" column="21" selection-start-line="154" selection-start-column="21" selection-end-line="154" selection-end-column="21" />
162 </state> 203 </state>
163 </provider> 204 </provider>
164 </entry> 205 </entry>
@@ -167,29 +208,6 @@ @@ -167,29 +208,6 @@
167 </component> 208 </component>
168 <component name="FindInProjectRecents"> 209 <component name="FindInProjectRecents">
169 <findStrings> 210 <findStrings>
170 - <find>skin</find>  
171 - <find>verification_code</find>  
172 - <find>add</find>  
173 - <find>formSubmit</find>  
174 - <find>is_showModal</find>  
175 - <find>navigateBack</find>  
176 - <find>购买畅玩卡</find>  
177 - <find>chooseNo</find>  
178 - <find>input_style</find>  
179 - <find>confirmPay</find>  
180 - <find>goBuyCard</find>  
181 - <find>QQMapWX</find>  
182 - <find>picker</find>  
183 - <find>添加</find>  
184 - <find>addStudent</find>  
185 - <find>from</find>  
186 - <find>icon-xuanze1</find>  
187 - <find>list_input</find>  
188 - <find>icon-xuanzhong</find>  
189 - <find>pay_success</find>  
190 - <find>@import</find>  
191 - <find>tips</find>  
192 - <find>changeStudent</find>  
193 <find>getLocation</find> 211 <find>getLocation</find>
194 <find>punchState</find> 212 <find>punchState</find>
195 <find>upload_item</find> 213 <find>upload_item</find>
@@ -197,6 +215,29 @@ @@ -197,6 +215,29 @@
197 <find>is_bingding</find> 215 <find>is_bingding</find>
198 <find>punch</find> 216 <find>punch</find>
199 <find>checkMobile</find> 217 <find>checkMobile</find>
  218 + <find>save_btn</find>
  219 + <find>pay_btn</find>
  220 + <find>is_showModal</find>
  221 + <find>change-color</find>
  222 + <find>chargeBtn</find>
  223 + <find>is_showSuccessModal</find>
  224 + <find>modal</find>
  225 + <find>add_box</find>
  226 + <find>title_</find>
  227 + <find>dataset</find>
  228 + <find>confirm_btn</find>
  229 + <find>is_choose_student</find>
  230 + <find>shangwutubiao</find>
  231 + <find>blue</find>
  232 + <find>show</find>
  233 + <find>cancel_btn</find>
  234 + <find>e.detail.target</find>
  235 + <find>background-image</find>
  236 + <find>btn-box</find>
  237 + <find>checkbox</find>
  238 + <find>is_choose</find>
  239 + <find>formSubmit</find>
  240 + <find>changeTab</find>
200 </findStrings> 241 </findStrings>
201 </component> 242 </component>
202 <component name="Git.Settings"> 243 <component name="Git.Settings">
@@ -205,56 +246,57 @@ @@ -205,56 +246,57 @@
205 <component name="IdeDocumentHistory"> 246 <component name="IdeDocumentHistory">
206 <option name="CHANGED_PATHS"> 247 <option name="CHANGED_PATHS">
207 <list> 248 <list>
208 - <option value="$PROJECT_DIR$/templates/templates.wxss" />  
209 - <option value="$PROJECT_DIR$/templates/templates.wxml" />  
210 - <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js" />  
211 - <option value="$PROJECT_DIR$/pages/index/activity-detail/activity-detail.wxml" />  
212 - <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml" />  
213 - <option value="$PROJECT_DIR$/pages/my/protocol/protocol.js" />  
214 - <option value="$PROJECT_DIR$/pages/my/protocol/protocol.wxml" />  
215 - <option value="$PROJECT_DIR$/pages/my/my.wxss" />  
216 - <option value="$PROJECT_DIR$/pages/start/start.js" />  
217 - <option value="$PROJECT_DIR$/utils/util.js" />  
218 - <option value="$PROJECT_DIR$/app.js" />  
219 - <option value="$PROJECT_DIR$/pages/clock/clock.wxss" />  
220 - <option value="$PROJECT_DIR$/project.config.json" />  
221 - <option value="$PROJECT_DIR$/pages/index/index.wxml" />  
222 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml" />  
223 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" />  
224 - <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" />  
225 <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" /> 249 <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml" />
226 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" />  
227 - <option value="$PROJECT_DIR$/pages/my/charge/charge.wxss" />  
228 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" />  
229 - <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js" />  
230 - <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" />  
231 - <option value="$PROJECT_DIR$/app.wxss" />  
232 - <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" />  
233 <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.json" /> 250 <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.json" />
234 - <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.js" />  
235 - <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss" />  
236 - <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml" />  
237 - <option value="$PROJECT_DIR$/app.json" />  
238 - <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" />  
239 - <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js" />  
240 - <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml" />  
241 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxss" /> 251 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxss" />
242 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxml" /> 252 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxml" />
243 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.js" /> 253 <option value="$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.js" />
244 - <option value="$PROJECT_DIR$/pages/my/my.wxml" />  
245 - <option value="$PROJECT_DIR$/pages/index/index.js" />  
246 - <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" />  
247 - <option value="$PROJECT_DIR$/pages/clock/clock.wxml" />  
248 - <option value="$PROJECT_DIR$/pages/clock/clock.js" />  
249 - <option value="$PROJECT_DIR$/pages/my/my.js" />  
250 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.json" /> 254 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.json" />
251 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.wxml" /> 255 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.wxml" />
252 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.wxss" /> 256 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.wxss" />
  257 + <option value="$PROJECT_DIR$/pages/my/my.js" />
  258 + <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json" />
  259 + <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" />
  260 + <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxss" />
  261 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml" />
  262 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss" />
  263 + <option value="$PROJECT_DIR$/pages/index/phone-code/phone-code.js" />
253 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.js" /> 264 <option value="$PROJECT_DIR$/pages/my/edit-student/edit-student.js" />
  265 + <option value="$PROJECT_DIR$/pages/my/charge/charge.json" />
  266 + <option value="$PROJECT_DIR$/pages/my/charge/charge.wxss" />
  267 + <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" />
  268 + <option value="$PROJECT_DIR$/pages/index/index.js" />
  269 + <option value="$PROJECT_DIR$/pages/start/start.js" />
  270 + <option value="$PROJECT_DIR$/pages/clock/clock.wxml" />
  271 + <option value="$PROJECT_DIR$/pages/clock/clock.wxss" />
254 <option value="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" /> 272 <option value="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml" />
  273 + <option value="$PROJECT_DIR$/pages/my/myProfile/myProfile.wxss" />
  274 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js" />
  275 + <option value="$PROJECT_DIR$/pages/my/charge/charge.wxml" />
  276 + <option value="$PROJECT_DIR$/pages/my/charge/charge.js" />
  277 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss" />
  278 + <option value="$PROJECT_DIR$/app.js" />
  279 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml" />
  280 + <option value="$PROJECT_DIR$/app.json" />
  281 + <option value="$PROJECT_DIR$/pages/my/buyCard/buyCard.js" />
  282 + <option value="$PROJECT_DIR$/app.wxss" />
  283 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss" />
  284 + <option value="$PROJECT_DIR$/pages/my/my.wxml" />
255 <option value="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" /> 285 <option value="$PROJECT_DIR$/pages/my/myProfile/myProfile.js" />
256 - <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml" />  
257 - <option value="$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js" /> 286 + <option value="$PROJECT_DIR$/templates/templates.wxml" />
  287 + <option value="$PROJECT_DIR$/templates/templates.wxss" />
  288 + <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml" />
  289 + <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxss" />
  290 + <option value="$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js" />
  291 + <option value="$PROJECT_DIR$/pages/index/index.wxml" />
  292 + <option value="$PROJECT_DIR$/pages/index/index.wxss" />
  293 + <option value="$PROJECT_DIR$/pages/clock/clock.js" />
  294 + <option value="$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js" />
  295 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.js" />
  296 + <option value="$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js" />
  297 + <option value="$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml" />
  298 + <option value="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.wxml" />
  299 + <option value="$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.js" />
258 </list> 300 </list>
259 </option> 301 </option>
260 </component> 302 </component>
@@ -265,8 +307,8 @@ @@ -265,8 +307,8 @@
265 <sorting>DEFINITION_ORDER</sorting> 307 <sorting>DEFINITION_ORDER</sorting>
266 </component> 308 </component>
267 <component name="ProjectFrameBounds" extendedState="6"> 309 <component name="ProjectFrameBounds" extendedState="6">
268 - <option name="x" value="-3" />  
269 - <option name="y" value="1" /> 310 + <option name="x" value="34" />
  311 + <option name="y" value="17" />
270 <option name="width" value="1936" /> 312 <option name="width" value="1936" />
271 <option name="height" value="1047" /> 313 <option name="height" value="1047" />
272 </component> 314 </component>
@@ -292,14 +334,13 @@ @@ -292,14 +334,13 @@
292 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 334 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
293 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 335 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
294 <item name="pages" type="462c0819:PsiDirectoryNode" /> 336 <item name="pages" type="462c0819:PsiDirectoryNode" />
295 - <item name="index" type="462c0819:PsiDirectoryNode" /> 337 + <item name="clock" type="462c0819:PsiDirectoryNode" />
296 </path> 338 </path>
297 <path> 339 <path>
298 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 340 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
299 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 341 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
300 <item name="pages" type="462c0819:PsiDirectoryNode" /> 342 <item name="pages" type="462c0819:PsiDirectoryNode" />
301 <item name="index" type="462c0819:PsiDirectoryNode" /> 343 <item name="index" type="462c0819:PsiDirectoryNode" />
302 - <item name="confirm-appointment-info" type="462c0819:PsiDirectoryNode" />  
303 </path> 344 </path>
304 <path> 345 <path>
305 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 346 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
@@ -307,34 +348,26 @@ @@ -307,34 +348,26 @@
307 <item name="pages" type="462c0819:PsiDirectoryNode" /> 348 <item name="pages" type="462c0819:PsiDirectoryNode" />
308 <item name="index" type="462c0819:PsiDirectoryNode" /> 349 <item name="index" type="462c0819:PsiDirectoryNode" />
309 <item name="confirm-appointment-info" type="462c0819:PsiDirectoryNode" /> 350 <item name="confirm-appointment-info" type="462c0819:PsiDirectoryNode" />
310 - <item name="add-student" type="462c0819:PsiDirectoryNode" />  
311 </path> 351 </path>
312 <path> 352 <path>
313 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 353 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
314 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 354 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
315 <item name="pages" type="462c0819:PsiDirectoryNode" /> 355 <item name="pages" type="462c0819:PsiDirectoryNode" />
316 <item name="index" type="462c0819:PsiDirectoryNode" /> 356 <item name="index" type="462c0819:PsiDirectoryNode" />
317 - <item name="phone-code" type="462c0819:PsiDirectoryNode" />  
318 - </path>  
319 - <path>  
320 - <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />  
321 - <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />  
322 - <item name="pages" type="462c0819:PsiDirectoryNode" />  
323 - <item name="my" type="462c0819:PsiDirectoryNode" /> 357 + <item name="go-appointment" type="462c0819:PsiDirectoryNode" />
324 </path> 358 </path>
325 <path> 359 <path>
326 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 360 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
327 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 361 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
328 <item name="pages" type="462c0819:PsiDirectoryNode" /> 362 <item name="pages" type="462c0819:PsiDirectoryNode" />
329 <item name="my" type="462c0819:PsiDirectoryNode" /> 363 <item name="my" type="462c0819:PsiDirectoryNode" />
330 - <item name="chargePhoneNum" type="462c0819:PsiDirectoryNode" />  
331 </path> 364 </path>
332 <path> 365 <path>
333 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 366 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
334 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 367 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
335 <item name="pages" type="462c0819:PsiDirectoryNode" /> 368 <item name="pages" type="462c0819:PsiDirectoryNode" />
336 <item name="my" type="462c0819:PsiDirectoryNode" /> 369 <item name="my" type="462c0819:PsiDirectoryNode" />
337 - <item name="myProfile" type="462c0819:PsiDirectoryNode" /> 370 + <item name="all-appointment" type="462c0819:PsiDirectoryNode" />
338 </path> 371 </path>
339 <path> 372 <path>
340 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 373 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
@@ -347,7 +380,8 @@ @@ -347,7 +380,8 @@
347 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 380 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
348 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> 381 <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" />
349 <item name="pages" type="462c0819:PsiDirectoryNode" /> 382 <item name="pages" type="462c0819:PsiDirectoryNode" />
350 - <item name="start" type="462c0819:PsiDirectoryNode" /> 383 + <item name="my" type="462c0819:PsiDirectoryNode" />
  384 + <item name="serviceWeChat" type="462c0819:PsiDirectoryNode" />
351 </path> 385 </path>
352 <path> 386 <path>
353 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> 387 <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" />
@@ -367,7 +401,7 @@ @@ -367,7 +401,7 @@
367 </component> 401 </component>
368 <component name="PropertiesComponent"> 402 <component name="PropertiesComponent">
369 <property name="WebServerToolWindowFactoryState" value="false" /> 403 <property name="WebServerToolWindowFactoryState" value="false" />
370 - <property name="last_opened_file_path" value="$PROJECT_DIR$" /> 404 + <property name="last_opened_file_path" value="D:/info/informationPlatform" />
371 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> 405 <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
372 <property name="nodejs_npm_path_reset_for_default_project" value="true" /> 406 <property name="nodejs_npm_path_reset_for_default_project" value="true" />
373 <property name="settings.editor.selected.configurable" value="project.propDebugger" /> 407 <property name="settings.editor.selected.configurable" value="project.propDebugger" />
@@ -409,7 +443,8 @@ @@ -409,7 +443,8 @@
409 <workItem from="1543975238201" duration="27150000" /> 443 <workItem from="1543975238201" duration="27150000" />
410 <workItem from="1544059385784" duration="3563000" /> 444 <workItem from="1544059385784" duration="3563000" />
411 <workItem from="1544062971616" duration="25513000" /> 445 <workItem from="1544062971616" duration="25513000" />
412 - <workItem from="1544145384377" duration="6854000" /> 446 + <workItem from="1544145384377" duration="29454000" />
  447 + <workItem from="1544231015193" duration="23369000" />
413 </task> 448 </task>
414 <task id="LOCAL-00001" summary="modal 模板"> 449 <task id="LOCAL-00001" summary="modal 模板">
415 <created>1542274356914</created> 450 <created>1542274356914</created>
@@ -446,11 +481,18 @@ @@ -446,11 +481,18 @@
446 <option name="project" value="LOCAL" /> 481 <option name="project" value="LOCAL" />
447 <updated>1544079539745</updated> 482 <updated>1544079539745</updated>
448 </task> 483 </task>
449 - <option name="localTasksCounter" value="6" /> 484 + <task id="LOCAL-00006" summary="申诉,打卡,编辑删除学员,更换手机号">
  485 + <created>1544152458854</created>
  486 + <option name="number" value="00006" />
  487 + <option name="presentableId" value="LOCAL-00006" />
  488 + <option name="project" value="LOCAL" />
  489 + <updated>1544152458854</updated>
  490 + </task>
  491 + <option name="localTasksCounter" value="7" />
450 <servers /> 492 <servers />
451 </component> 493 </component>
452 <component name="TimeTrackingManager"> 494 <component name="TimeTrackingManager">
453 - <option name="totallyTimeSpent" value="81701000" /> 495 + <option name="totallyTimeSpent" value="127670000" />
454 </component> 496 </component>
455 <component name="ToolWindowManager"> 497 <component name="ToolWindowManager">
456 <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> 498 <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
@@ -513,360 +555,369 @@ @@ -513,360 +555,369 @@
513 <MESSAGE value="登录注册,绑定手机号,获取验证码,轮播图,本周实验,往期实验,立即预约,实验详情" /> 555 <MESSAGE value="登录注册,绑定手机号,获取验证码,轮播图,本周实验,往期实验,立即预约,实验详情" />
514 <MESSAGE value="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市" /> 556 <MESSAGE value="更换appid和密钥,添加绑定手机后跳转到首页隐藏蒙层,添加解析文件,优化去预约显示的城市" />
515 <MESSAGE value="确认预约信息,选择学员,优化单人预约,购买畅玩卡,添加预约详情页底部状态按钮,更换为客户appid" /> 557 <MESSAGE value="确认预约信息,选择学员,优化单人预约,购买畅玩卡,添加预约详情页底部状态按钮,更换为客户appid" />
516 - <option name="LAST_COMMIT_MESSAGE" value="确认预约信息,选择学员,优化单人预约,购买畅玩卡,添加预约详情页底部状态按钮,更换为客户appid" /> 558 + <MESSAGE value="申诉,打卡,编辑删除学员,更换手机号" />
  559 + <option name="LAST_COMMIT_MESSAGE" value="申诉,打卡,编辑删除学员,更换手机号" />
517 </component> 560 </component>
518 <component name="editorHistoryManager"> 561 <component name="editorHistoryManager">
519 - <entry file="file://$PROJECT_DIR$/utils/util.js"> 562 + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.json">
520 <provider selected="true" editor-type-id="text-editor"> 563 <provider selected="true" editor-type-id="text-editor">
521 - <state relative-caret-position="286">  
522 - <caret line="13" column="27" selection-start-line="13" selection-start-column="27" selection-end-line="13" selection-end-column="27" /> 564 + <state relative-caret-position="22">
  565 + <caret line="1" selection-start-line="1" selection-end-line="2" />
523 </state> 566 </state>
524 </provider> 567 </provider>
525 </entry> 568 </entry>
526 - <entry file="file://$PROJECT_DIR$/utils/qqmap-wx-jssdk.min.js"> 569 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml">
527 <provider selected="true" editor-type-id="text-editor"> 570 <provider selected="true" editor-type-id="text-editor">
528 - <state relative-caret-position="22">  
529 - <caret line="1" column="110" lean-forward="true" selection-start-line="1" selection-start-column="110" selection-end-line="1" selection-end-column="110" /> 571 + <state relative-caret-position="440">
  572 + <caret line="20" column="40" selection-start-line="20" selection-start-column="40" selection-end-line="20" selection-end-column="40" />
530 </state> 573 </state>
531 </provider> 574 </provider>
532 </entry> 575 </entry>
533 - <entry file="file://$PROJECT_DIR$/project.config.json"> 576 + <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml">
534 <provider selected="true" editor-type-id="text-editor"> 577 <provider selected="true" editor-type-id="text-editor">
535 - <state relative-caret-position="308">  
536 - <caret line="14" column="32" selection-start-line="14" selection-start-column="32" selection-end-line="14" selection-end-column="32" /> 578 + <state relative-caret-position="440">
  579 + <caret line="20" column="39" lean-forward="true" selection-start-line="20" selection-start-column="39" selection-end-line="20" selection-end-column="39" />
537 </state> 580 </state>
538 </provider> 581 </provider>
539 </entry> 582 </entry>
540 - <entry file="file://$PROJECT_DIR$/pages/index/activity-detail/activity-detail.js"> 583 + <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxss">
541 <provider selected="true" editor-type-id="text-editor"> 584 <provider selected="true" editor-type-id="text-editor">
542 - <state relative-caret-position="462">  
543 - <caret line="21" column="22" selection-start-line="21" selection-start-column="22" selection-end-line="21" selection-end-column="22" /> 585 + <state relative-caret-position="597">
  586 + <caret line="67" column="21" lean-forward="true" selection-start-line="67" selection-start-column="21" selection-end-line="67" selection-end-column="21" />
544 </state> 587 </state>
545 </provider> 588 </provider>
546 </entry> 589 </entry>
547 - <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.json"> 590 + <entry file="file://$PROJECT_DIR$/pages/my/groupBuy/groupBuy.js">
  591 + <provider selected="true" editor-type-id="text-editor" />
  592 + </entry>
  593 + <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml">
548 <provider selected="true" editor-type-id="text-editor"> 594 <provider selected="true" editor-type-id="text-editor">
549 - <state relative-caret-position="22">  
550 - <caret line="1" column="29" selection-start-line="1" selection-start-column="29" selection-end-line="1" selection-end-column="29" /> 595 + <state relative-caret-position="44">
  596 + <caret line="8" selection-start-line="8" selection-end-line="9" />
551 </state> 597 </state>
552 </provider> 598 </provider>
553 </entry> 599 </entry>
554 - <entry file="file://$PROJECT_DIR$/templates/templates.wxml"> 600 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss">
555 <provider selected="true" editor-type-id="text-editor"> 601 <provider selected="true" editor-type-id="text-editor">
556 - <state relative-caret-position="1254">  
557 - <caret line="57" column="43" selection-start-line="57" selection-start-column="35" selection-end-line="57" selection-end-column="43" /> 602 + <state relative-caret-position="555">
  603 + <caret line="68" column="19" lean-forward="true" selection-start-line="68" selection-start-column="19" selection-end-line="68" selection-end-column="19" />
558 </state> 604 </state>
559 </provider> 605 </provider>
560 </entry> 606 </entry>
561 - <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.wxss"> 607 + <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js">
562 <provider selected="true" editor-type-id="text-editor"> 608 <provider selected="true" editor-type-id="text-editor">
563 - <state relative-caret-position="330">  
564 - <caret line="15" column="35" selection-start-line="15" selection-start-column="35" selection-end-line="15" selection-end-column="35" /> 609 + <state relative-caret-position="484">
  610 + <caret line="76" column="36" selection-start-line="76" selection-start-column="36" selection-end-line="76" selection-end-column="36" />
565 </state> 611 </state>
566 </provider> 612 </provider>
567 </entry> 613 </entry>
568 - <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml"> 614 + <entry file="file://$PROJECT_DIR$/pages/my/edit-student/edit-student.js">
569 <provider selected="true" editor-type-id="text-editor"> 615 <provider selected="true" editor-type-id="text-editor">
570 - <state relative-caret-position="1314">  
571 - <caret line="60" column="15" lean-forward="true" selection-start-line="60" selection-start-column="15" selection-end-line="60" selection-end-column="15" /> 616 + <state relative-caret-position="660">
  617 + <caret line="122" selection-start-line="122" selection-end-line="122" />
572 </state> 618 </state>
573 </provider> 619 </provider>
574 </entry> 620 </entry>
575 - <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js"> 621 + <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json">
576 <provider selected="true" editor-type-id="text-editor"> 622 <provider selected="true" editor-type-id="text-editor">
577 - <state relative-caret-position="852">  
578 - <caret line="227" selection-start-line="227" selection-end-line="245" selection-end-column="8" /> 623 + <state relative-caret-position="22">
  624 + <caret line="1" selection-start-line="1" selection-end-line="2" />
579 </state> 625 </state>
580 </provider> 626 </provider>
581 </entry> 627 </entry>
582 - <entry file="file://$PROJECT_DIR$/app.wxss"> 628 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.json">
583 <provider selected="true" editor-type-id="text-editor"> 629 <provider selected="true" editor-type-id="text-editor">
584 - <state relative-caret-position="1188">  
585 - <caret line="54" lean-forward="true" selection-start-line="54" selection-end-line="54" /> 630 + <state relative-caret-position="22">
  631 + <caret line="1" column="29" selection-start-line="1" selection-start-column="29" selection-end-line="1" selection-end-column="29" />
586 </state> 632 </state>
587 </provider> 633 </provider>
588 </entry> 634 </entry>
589 - <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxss"> 635 + <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.json">
590 <provider selected="true" editor-type-id="text-editor"> 636 <provider selected="true" editor-type-id="text-editor">
591 - <state relative-caret-position="533">  
592 - <caret line="56" column="19" selection-start-line="56" selection-start-column="19" selection-end-line="56" selection-end-column="19" /> 637 + <state relative-caret-position="22">
  638 + <caret line="1" column="31" selection-start-line="1" selection-start-column="31" selection-end-line="1" selection-end-column="31" />
593 </state> 639 </state>
594 </provider> 640 </provider>
595 </entry> 641 </entry>
596 - <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml"> 642 + <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.wxss">
597 <provider selected="true" editor-type-id="text-editor"> 643 <provider selected="true" editor-type-id="text-editor">
598 - <state relative-caret-position="522">  
599 - <caret line="30" column="40" selection-start-line="30" selection-start-column="26" selection-end-line="30" selection-end-column="40" /> 644 + <state relative-caret-position="462">
  645 + <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
600 </state> 646 </state>
601 </provider> 647 </provider>
602 </entry> 648 </entry>
603 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml"> 649 + <entry file="file://$PROJECT_DIR$/pages/start/start.wxml">
604 <provider selected="true" editor-type-id="text-editor"> 650 <provider selected="true" editor-type-id="text-editor">
605 - <state relative-caret-position="674">  
606 - <caret line="35" column="64" selection-end-line="62" selection-end-column="7" /> 651 + <state relative-caret-position="198">
  652 + <caret line="9" column="75" selection-start-line="9" selection-start-column="60" selection-end-line="9" selection-end-column="75" />
607 </state> 653 </state>
608 </provider> 654 </provider>
609 </entry> 655 </entry>
610 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.json"> 656 + <entry file="file://$PROJECT_DIR$/pages/start/start.js">
611 <provider selected="true" editor-type-id="text-editor"> 657 <provider selected="true" editor-type-id="text-editor">
612 - <state>  
613 - <caret selection-end-line="2" selection-end-column="1" /> 658 + <state relative-caret-position="638">
  659 + <caret line="83" column="21" selection-start-line="83" selection-start-column="21" selection-end-line="83" selection-end-column="21" />
614 </state> 660 </state>
615 </provider> 661 </provider>
616 </entry> 662 </entry>
617 - <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.js"> 663 + <entry file="file://$PROJECT_DIR$/pages/index/index.js">
618 <provider selected="true" editor-type-id="text-editor"> 664 <provider selected="true" editor-type-id="text-editor">
619 - <state relative-caret-position="498">  
620 - <caret line="127" column="67" lean-forward="true" selection-start-line="127" selection-start-column="67" selection-end-line="127" selection-end-column="67" /> 665 + <state relative-caret-position="396">
  666 + <caret line="33" column="19" lean-forward="true" selection-start-line="33" selection-start-column="19" selection-end-line="33" selection-end-column="19" />
  667 + <folding>
  668 + <element signature="n#!!doc" expanded="true" />
  669 + </folding>
621 </state> 670 </state>
622 </provider> 671 </provider>
623 </entry> 672 </entry>
624 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss"> 673 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.json">
  674 + <provider selected="true" editor-type-id="text-editor" />
  675 + </entry>
  676 + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxss">
625 <provider selected="true" editor-type-id="text-editor"> 677 <provider selected="true" editor-type-id="text-editor">
626 - <state relative-caret-position="308">  
627 - <caret line="35" selection-start-line="35" selection-end-line="38" selection-end-column="1" /> 678 + <state relative-caret-position="1606">
  679 + <caret line="73" column="7" selection-start-line="73" selection-start-column="7" selection-end-line="73" selection-end-column="7" />
628 </state> 680 </state>
629 </provider> 681 </provider>
630 </entry> 682 </entry>
631 - <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.json"> 683 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js">
632 <provider selected="true" editor-type-id="text-editor"> 684 <provider selected="true" editor-type-id="text-editor">
633 - <state relative-caret-position="22">  
634 - <caret line="1" column="35" lean-forward="true" selection-start-line="1" selection-start-column="35" selection-end-line="1" selection-end-column="35" /> 685 + <state relative-caret-position="594">
  686 + <caret line="27" column="3" selection-start-line="27" selection-start-column="3" selection-end-line="27" selection-end-column="3" />
635 </state> 687 </state>
636 </provider> 688 </provider>
637 </entry> 689 </entry>
638 - <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss"> 690 + <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxss">
639 <provider selected="true" editor-type-id="text-editor"> 691 <provider selected="true" editor-type-id="text-editor">
640 - <state relative-caret-position="806">  
641 - <caret line="73" column="28" selection-start-line="73" selection-start-column="28" selection-end-line="73" selection-end-column="28" /> 692 + <state relative-caret-position="352">
  693 + <caret line="16" column="6" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="6" />
642 </state> 694 </state>
643 </provider> 695 </provider>
644 </entry> 696 </entry>
645 - <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml"> 697 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.wxml">
646 <provider selected="true" editor-type-id="text-editor"> 698 <provider selected="true" editor-type-id="text-editor">
647 - <state relative-caret-position="1364">  
648 - <caret line="62" selection-start-line="62" selection-end-line="62" /> 699 + <state relative-caret-position="674">
  700 + <caret line="38" column="54" lean-forward="true" selection-start-line="38" selection-start-column="36" selection-end-line="38" selection-end-column="54" />
649 </state> 701 </state>
650 </provider> 702 </provider>
651 </entry> 703 </entry>
652 - <entry file="file://$PROJECT_DIR$/app.json"> 704 + <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.wxml">
653 <provider selected="true" editor-type-id="text-editor"> 705 <provider selected="true" editor-type-id="text-editor">
654 - <state relative-caret-position="88">  
655 - <caret line="4" column="40" selection-start-line="4" selection-start-column="40" selection-end-line="4" selection-end-column="40" /> 706 + <state relative-caret-position="-140">
  707 + <caret line="2" column="4" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
656 </state> 708 </state>
657 </provider> 709 </provider>
658 </entry> 710 </entry>
659 - <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml"> 711 + <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.js">
660 <provider selected="true" editor-type-id="text-editor"> 712 <provider selected="true" editor-type-id="text-editor">
661 - <state relative-caret-position="630">  
662 - <caret line="37" column="41" selection-start-line="37" selection-start-column="41" selection-end-line="37" selection-end-column="41" /> 713 + <state relative-caret-position="572">
  714 + <caret line="59" column="30" lean-forward="true" selection-start-line="59" selection-start-column="30" selection-end-line="59" selection-end-column="30" />
663 </state> 715 </state>
664 </provider> 716 </provider>
665 </entry> 717 </entry>
666 - <entry file="file://$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxss"> 718 + <entry file="file://$PROJECT_DIR$/app.js">
667 <provider selected="true" editor-type-id="text-editor"> 719 <provider selected="true" editor-type-id="text-editor">
668 - <state relative-caret-position="499">  
669 - <caret line="104" column="15" selection-start-line="104" selection-start-column="15" selection-end-line="104" selection-end-column="15" /> 720 + <state relative-caret-position="322">
  721 + <caret line="70" column="40" selection-start-line="70" selection-start-column="40" selection-end-line="70" selection-end-column="40" />
670 </state> 722 </state>
671 </provider> 723 </provider>
672 </entry> 724 </entry>
673 - <entry file="file://$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.wxml"> 725 + <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js">
674 <provider selected="true" editor-type-id="text-editor"> 726 <provider selected="true" editor-type-id="text-editor">
675 - <state relative-caret-position="698">  
676 - <caret line="50" column="27" lean-forward="true" selection-start-line="50" selection-start-column="27" selection-end-line="50" selection-end-column="27" /> 727 + <state relative-caret-position="440">
  728 + <caret line="173" column="48" lean-forward="true" selection-start-line="173" selection-start-column="48" selection-end-line="173" selection-end-column="48" />
677 </state> 729 </state>
678 </provider> 730 </provider>
679 </entry> 731 </entry>
680 - <entry file="file://$PROJECT_DIR$/pages/clock/punchAppeal/punchAppeal.js"> 732 + <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.js">
681 <provider selected="true" editor-type-id="text-editor"> 733 <provider selected="true" editor-type-id="text-editor">
682 - <state relative-caret-position="506">  
683 - <caret line="104" column="37" lean-forward="true" selection-start-line="104" selection-start-column="37" selection-end-line="104" selection-end-column="37" /> 734 + <state relative-caret-position="484">
  735 + <caret line="130" column="50" selection-start-line="130" selection-start-column="50" selection-end-line="130" selection-end-column="50" />
684 </state> 736 </state>
685 </provider> 737 </provider>
686 </entry> 738 </entry>
687 - <entry file="file://$PROJECT_DIR$/pages/index/index.wxml"> 739 + <entry file="file://$PROJECT_DIR$/app.json">
688 <provider selected="true" editor-type-id="text-editor"> 740 <provider selected="true" editor-type-id="text-editor">
689 - <state relative-caret-position="66">  
690 - <caret line="3" column="45" selection-start-line="3" selection-start-column="34" selection-end-line="3" selection-end-column="45" /> 741 + <state relative-caret-position="88">
  742 + <caret line="4" column="54" selection-start-line="4" selection-start-column="54" selection-end-line="4" selection-end-column="54" />
691 </state> 743 </state>
692 </provider> 744 </provider>
693 </entry> 745 </entry>
694 - <entry file="file://$PROJECT_DIR$/pages/start/start.js"> 746 + <entry file="file://$PROJECT_DIR$/app.wxss">
695 <provider selected="true" editor-type-id="text-editor"> 747 <provider selected="true" editor-type-id="text-editor">
696 - <state relative-caret-position="1116">  
697 - <caret line="53" column="31" selection-start-line="53" selection-start-column="31" selection-end-line="53" selection-end-column="31" /> 748 + <state relative-caret-position="377">
  749 + <caret line="39" column="19" selection-start-line="39" selection-start-column="19" selection-end-line="39" selection-end-column="19" />
698 </state> 750 </state>
699 </provider> 751 </provider>
700 </entry> 752 </entry>
701 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js"> 753 + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml">
702 <provider selected="true" editor-type-id="text-editor"> 754 <provider selected="true" editor-type-id="text-editor">
703 - <state relative-caret-position="1496">  
704 - <caret line="68" column="61" selection-start-line="68" selection-start-column="61" selection-end-line="68" selection-end-column="61" /> 755 + <state relative-caret-position="286">
  756 + <caret line="13" column="19" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" />
705 </state> 757 </state>
706 </provider> 758 </provider>
707 </entry> 759 </entry>
708 - <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js"> 760 + <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxml">
709 <provider selected="true" editor-type-id="text-editor"> 761 <provider selected="true" editor-type-id="text-editor">
710 - <state relative-caret-position="836">  
711 - <caret line="38" column="47" selection-start-line="38" selection-start-column="47" selection-end-line="38" selection-end-column="47" /> 762 + <state relative-caret-position="66">
  763 + <caret line="3" column="76" lean-forward="true" selection-start-line="3" selection-start-column="76" selection-end-line="3" selection-end-column="76" />
712 </state> 764 </state>
713 </provider> 765 </provider>
714 </entry> 766 </entry>
715 - <entry file="file://$PROJECT_DIR$/pages/index/index.js"> 767 + <entry file="file://$PROJECT_DIR$/templates/templates.wxss">
716 <provider selected="true" editor-type-id="text-editor"> 768 <provider selected="true" editor-type-id="text-editor">
717 - <state relative-caret-position="2662">  
718 - <caret line="122" column="24" selection-start-line="122" selection-start-column="13" selection-end-line="122" selection-end-column="24" />  
719 - <folding>  
720 - <element signature="n#!!doc" expanded="true" />  
721 - </folding> 769 + <state relative-caret-position="775">
  770 + <caret line="180" column="29" selection-start-line="180" selection-start-column="29" selection-end-line="180" selection-end-column="29" />
722 </state> 771 </state>
723 </provider> 772 </provider>
724 </entry> 773 </entry>
725 - <entry file="file://$PROJECT_DIR$/pages/clock/clock.js"> 774 + <entry file="file://$PROJECT_DIR$/templates/templates.wxml">
726 <provider selected="true" editor-type-id="text-editor"> 775 <provider selected="true" editor-type-id="text-editor">
727 - <state relative-caret-position="4290">  
728 - <caret line="195" column="24" selection-start-line="195" selection-start-column="24" selection-end-line="195" selection-end-column="24" /> 776 + <state relative-caret-position="665">
  777 + <caret line="79" column="19" lean-forward="true" selection-start-line="79" selection-start-column="19" selection-end-line="79" selection-end-column="19" />
729 </state> 778 </state>
730 </provider> 779 </provider>
731 </entry> 780 </entry>
732 - <entry file="file://$PROJECT_DIR$/pages/my/buyCard/buyCard.js"> 781 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxss">
733 <provider selected="true" editor-type-id="text-editor"> 782 <provider selected="true" editor-type-id="text-editor">
734 - <state relative-caret-position="1870">  
735 - <caret line="118" selection-start-line="118" selection-end-line="136" selection-end-column="6" />  
736 - <folding>  
737 - <element signature="e#1497#2725#0" />  
738 - </folding> 783 + <state relative-caret-position="110">
  784 + <caret line="5" column="15" selection-start-line="5" selection-start-column="15" selection-end-line="5" selection-end-column="15" />
739 </state> 785 </state>
740 </provider> 786 </provider>
741 </entry> 787 </entry>
742 - <entry file="file://$PROJECT_DIR$/pages/clock/clock.wxml"> 788 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxml">
743 <provider selected="true" editor-type-id="text-editor"> 789 <provider selected="true" editor-type-id="text-editor">
744 - <state relative-caret-position="66">  
745 - <caret line="3" column="43" selection-start-line="3" selection-start-column="43" selection-end-line="3" selection-end-column="43" /> 790 + <state relative-caret-position="337">
  791 + <caret line="43" column="66" selection-start-line="43" selection-start-column="52" selection-end-line="43" selection-end-column="66" />
746 </state> 792 </state>
747 </provider> 793 </provider>
748 </entry> 794 </entry>
749 - <entry file="file://$PROJECT_DIR$/pages/my/my.js"> 795 + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.js">
750 <provider selected="true" editor-type-id="text-editor"> 796 <provider selected="true" editor-type-id="text-editor">
751 - <state relative-caret-position="1738">  
752 - <caret line="79" selection-start-line="79" selection-end-line="89" selection-end-column="6" /> 797 + <state relative-caret-position="264">
  798 + <caret line="138" selection-start-line="138" selection-end-line="152" selection-end-column="6" />
753 </state> 799 </state>
754 </provider> 800 </provider>
755 </entry> 801 </entry>
756 - <entry file="file://$PROJECT_DIR$/pages/my/my.wxml"> 802 + <entry file="file://$PROJECT_DIR$/pages/index/index.wxss">
757 <provider selected="true" editor-type-id="text-editor"> 803 <provider selected="true" editor-type-id="text-editor">
758 - <state relative-caret-position="66">  
759 - <caret line="3" column="76" selection-start-line="3" selection-start-column="76" selection-end-line="3" selection-end-column="76" /> 804 + <state relative-caret-position="516">
  805 + <caret line="103" column="21" selection-start-line="103" selection-start-column="21" selection-end-line="103" selection-end-column="21" />
760 </state> 806 </state>
761 </provider> 807 </provider>
762 </entry> 808 </entry>
763 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.wxml"> 809 + <entry file="file://$PROJECT_DIR$/pages/index/index.wxml">
764 <provider selected="true" editor-type-id="text-editor"> 810 <provider selected="true" editor-type-id="text-editor">
765 - <state relative-caret-position="396">  
766 - <caret line="18" column="19" lean-forward="true" selection-end-line="50" selection-end-column="7" /> 811 + <state relative-caret-position="-831">
  812 + <caret line="13" column="88" lean-forward="true" selection-start-line="13" selection-start-column="88" selection-end-line="13" selection-end-column="88" />
767 </state> 813 </state>
768 </provider> 814 </provider>
769 </entry> 815 </entry>
770 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.json"> 816 + <entry file="file://$PROJECT_DIR$/pages/clock/clock.js">
771 <provider selected="true" editor-type-id="text-editor"> 817 <provider selected="true" editor-type-id="text-editor">
772 - <state>  
773 - <caret selection-end-line="2" selection-end-column="1" /> 818 + <state relative-caret-position="396">
  819 + <caret line="65" column="12" lean-forward="true" selection-start-line="65" selection-start-column="12" selection-end-line="65" selection-end-column="48" />
  820 + <folding>
  821 + <element signature="e#152#1609#0" />
  822 + </folding>
774 </state> 823 </state>
775 </provider> 824 </provider>
776 </entry> 825 </entry>
777 - <entry file="file://$PROJECT_DIR$/pages/my/edit-student/edit-student.json"> 826 + <entry file="file://$PROJECT_DIR$/pages/my/my.wxml">
778 <provider selected="true" editor-type-id="text-editor"> 827 <provider selected="true" editor-type-id="text-editor">
779 - <state relative-caret-position="22">  
780 - <caret line="1" column="31" selection-start-line="1" selection-start-column="31" selection-end-line="1" selection-end-column="31" /> 828 + <state relative-caret-position="704">
  829 + <caret line="50" column="51" selection-start-line="50" selection-start-column="51" selection-end-line="50" selection-end-column="51" />
781 </state> 830 </state>
782 </provider> 831 </provider>
783 </entry> 832 </entry>
784 - <entry file="file://$PROJECT_DIR$/pages/my/edit-student/edit-student.wxss"> 833 + <entry file="file://$PROJECT_DIR$/pages/my/my.js">
785 <provider selected="true" editor-type-id="text-editor"> 834 <provider selected="true" editor-type-id="text-editor">
786 - <state relative-caret-position="22">  
787 - <caret line="1" column="76" selection-start-line="1" selection-start-column="76" selection-end-line="1" selection-end-column="76" /> 835 + <state relative-caret-position="500">
  836 + <caret line="39" selection-start-line="39" selection-end-line="40" />
788 </state> 837 </state>
789 </provider> 838 </provider>
790 </entry> 839 </entry>
791 - <entry file="file://$PROJECT_DIR$/pages/my/edit-student/edit-student.js"> 840 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxss">
792 <provider selected="true" editor-type-id="text-editor"> 841 <provider selected="true" editor-type-id="text-editor">
793 - <state relative-caret-position="154">  
794 - <caret line="90" column="28" lean-forward="true" selection-start-line="90" selection-start-column="28" selection-end-line="90" selection-end-column="28" /> 842 + <state relative-caret-position="302">
  843 + <caret line="67" column="15" lean-forward="true" selection-start-line="67" selection-start-column="15" selection-end-line="67" selection-end-column="15" />
795 </state> 844 </state>
796 </provider> 845 </provider>
797 </entry> 846 </entry>
798 - <entry file="file://$PROJECT_DIR$/pages/my/edit-student/edit-student.wxml"> 847 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.wxss">
799 <provider selected="true" editor-type-id="text-editor"> 848 <provider selected="true" editor-type-id="text-editor">
800 - <state relative-caret-position="-30">  
801 - <caret line="15" column="69" selection-start-line="15" selection-start-column="69" selection-end-line="15" selection-end-column="69" /> 849 + <state relative-caret-position="500">
  850 + <caret line="154" column="21" selection-start-line="154" selection-start-column="21" selection-end-line="154" selection-end-column="21" />
802 </state> 851 </state>
803 </provider> 852 </provider>
804 </entry> 853 </entry>
805 - <entry file="file://$PROJECT_DIR$/pages/my/charge/charge.wxml">  
806 - <provider selected="true" editor-type-id="text-editor" />  
807 - </entry>  
808 - <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/add-student/add-student.js"> 854 + <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.wxml">
809 <provider selected="true" editor-type-id="text-editor"> 855 <provider selected="true" editor-type-id="text-editor">
810 - <state relative-caret-position="654">  
811 - <caret line="99" column="61" lean-forward="true" selection-start-line="99" selection-start-column="61" selection-end-line="99" selection-end-column="61" /> 856 + <state relative-caret-position="110">
  857 + <caret line="5" column="51" selection-start-line="5" selection-start-column="51" selection-end-line="5" selection-end-column="51" />
812 </state> 858 </state>
813 </provider> 859 </provider>
814 </entry> 860 </entry>
815 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.json">  
816 - <provider selected="true" editor-type-id="text-editor" />  
817 - </entry>  
818 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml"> 861 + <entry file="file://$PROJECT_DIR$/pages/index/go-appointment/go-appointment.js">
819 <provider selected="true" editor-type-id="text-editor"> 862 <provider selected="true" editor-type-id="text-editor">
820 - <state relative-caret-position="30">  
821 - <caret line="10" column="34" selection-start-line="10" selection-start-column="14" selection-end-line="10" selection-end-column="34" /> 863 + <state relative-caret-position="540">
  864 + <caret line="220" column="14" lean-forward="true" selection-start-line="220" selection-start-column="14" selection-end-line="220" selection-end-column="14" />
  865 + <folding>
  866 + <element signature="e#402#613#0" />
  867 + <element signature="e#621#832#0" />
  868 + <element signature="e#840#1052#0" />
  869 + <element signature="e#1060#1273#0" />
  870 + <element signature="e#1292#2413#0" />
  871 + </folding>
822 </state> 872 </state>
823 </provider> 873 </provider>
824 </entry> 874 </entry>
825 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.wxml"> 875 + <entry file="file://$PROJECT_DIR$/pages/index/confirm-appointment-info/confirm-appointment-info.js">
826 <provider selected="true" editor-type-id="text-editor"> 876 <provider selected="true" editor-type-id="text-editor">
827 - <state relative-caret-position="330">  
828 - <caret line="15" column="25" lean-forward="true" selection-start-line="15" selection-start-column="25" selection-end-line="15" selection-end-column="25" /> 877 + <state relative-caret-position="-3101">
  878 + <caret line="78" column="44" selection-start-line="78" selection-start-column="44" selection-end-line="78" selection-end-column="44" />
829 </state> 879 </state>
830 </provider> 880 </provider>
831 </entry> 881 </entry>
832 - <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.js"> 882 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.js">
833 <provider selected="true" editor-type-id="text-editor"> 883 <provider selected="true" editor-type-id="text-editor">
834 - <state relative-caret-position="308">  
835 - <caret line="14" column="34" selection-start-line="14" selection-start-column="18" selection-end-line="14" selection-end-column="34" /> 884 + <state relative-caret-position="1056">
  885 + <caret line="183" column="20" lean-forward="true" selection-start-line="183" selection-start-column="20" selection-end-line="183" selection-end-column="20" />
836 </state> 886 </state>
837 </provider> 887 </provider>
838 </entry> 888 </entry>
839 - <entry file="file://$PROJECT_DIR$/app.js"> 889 + <entry file="file://$PROJECT_DIR$/pages/my/order-detail/order-detail.wxml">
840 <provider selected="true" editor-type-id="text-editor"> 890 <provider selected="true" editor-type-id="text-editor">
841 - <state relative-caret-position="256">  
842 - <caret line="127" column="11" selection-start-line="127" selection-start-column="4" selection-end-line="127" selection-end-column="11" /> 891 + <state relative-caret-position="1518">
  892 + <caret line="69" column="58" selection-start-line="69" selection-start-column="58" selection-end-line="69" selection-end-column="58" />
843 </state> 893 </state>
844 </provider> 894 </provider>
845 </entry> 895 </entry>
846 - <entry file="file://$PROJECT_DIR$/pages/index/phone-code/phone-code.js"> 896 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml">
847 <provider selected="true" editor-type-id="text-editor"> 897 <provider selected="true" editor-type-id="text-editor">
848 - <state relative-caret-position="369">  
849 - <caret line="65" selection-start-line="65" selection-end-line="104" selection-end-column="6" />  
850 - <folding>  
851 - <element signature="e#1785#3272#0" />  
852 - </folding> 898 + <state relative-caret-position="88">
  899 + <caret line="4" column="64" selection-start-line="4" selection-start-column="55" selection-end-line="4" selection-end-column="64" />
853 </state> 900 </state>
854 </provider> 901 </provider>
855 </entry> 902 </entry>
856 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.json">  
857 - <provider selected="true" editor-type-id="text-editor" /> 903 + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.js">
  904 + <provider selected="true" editor-type-id="text-editor">
  905 + <state relative-caret-position="518">
  906 + <caret line="28" column="41" lean-forward="true" selection-start-line="28" selection-start-column="41" selection-end-line="28" selection-end-column="41" />
  907 + </state>
  908 + </provider>
858 </entry> 909 </entry>
859 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.wxml"> 910 + <entry file="file://$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.wxml">
860 <provider selected="true" editor-type-id="text-editor"> 911 <provider selected="true" editor-type-id="text-editor">
861 - <state relative-caret-position="638">  
862 - <caret line="29" column="23" selection-start-line="29" selection-start-column="15" selection-end-line="29" selection-end-column="23" /> 912 + <state relative-caret-position="220">
  913 + <caret line="10" column="54" selection-start-line="10" selection-start-column="47" selection-end-line="10" selection-end-column="54" />
863 </state> 914 </state>
864 </provider> 915 </provider>
865 </entry> 916 </entry>
866 - <entry file="file://$PROJECT_DIR$/pages/my/chargePhoneNum/chargePhoneNum.js"> 917 + <entry file="file://$PROJECT_DIR$/pages/my/serviceWeChat/serviceWeChat.js">
867 <provider selected="true" editor-type-id="text-editor"> 918 <provider selected="true" editor-type-id="text-editor">
868 - <state relative-caret-position="726">  
869 - <caret line="120" column="37" selection-start-line="120" selection-start-column="37" selection-end-line="120" selection-end-column="37" /> 919 + <state relative-caret-position="418">
  920 + <caret line="19" column="13" selection-start-line="19" selection-start-column="13" selection-end-line="19" selection-end-column="13" />
870 </state> 921 </state>
871 </provider> 922 </provider>
872 </entry> 923 </entry>
@@ -67,20 +67,23 @@ App({ @@ -67,20 +67,23 @@ App({
67 success: function (res) {//返回取得的数据 67 success: function (res) {//返回取得的数据
68 if (res.data.code == '20000') { 68 if (res.data.code == '20000') {
69 resolve(res.data.data); 69 resolve(res.data.data);
  70 + }else if(res.data.code == '30000') {
  71 + resolve(res.data);
70 } else if (res.data.code == '40001') {//返回错误提示信息 72 } else if (res.data.code == '40001') {//返回错误提示信息
71 wx.showModal({ 73 wx.showModal({
72 title: '提示', 74 title: '提示',
73 - content: '登录已过期请重新登录!', 75 + content: res.data.msg,
74 showCancel: false, 76 showCancel: false,
75 success: function (res) { 77 success: function (res) {
76 if (res.confirm) { 78 if (res.confirm) {
77 - wx.removeStorageSync('token');  
78 - wx.navigateTo({  
79 - url: '/pages/start/start',  
80 - }) 79 + // wx.removeStorageSync('token');
  80 + // wx.navigateTo({
  81 + // url: '/pages/start/start',
  82 + // })
81 } 83 }
82 } 84 }
83 - }) 85 + });
  86 + resolve(res.data.msg);
84 } else if (res.data.code == '40000') { 87 } else if (res.data.code == '40000') {
85 wx.showModal({ 88 wx.showModal({
86 title: '提示', 89 title: '提示',
@@ -2,9 +2,9 @@ @@ -2,9 +2,9 @@
2 "pages": [ 2 "pages": [
3 "pages/start/start", 3 "pages/start/start",
4 "pages/index/index", 4 "pages/index/index",
  5 + "pages/index/confirm-appointment-info/confirm-appointment-info",
5 "pages/my/order-detail/order-detail", 6 "pages/my/order-detail/order-detail",
6 "pages/my/buyCard/buyCard", 7 "pages/my/buyCard/buyCard",
7 - "pages/index/confirm-appointment-info/confirm-appointment-info",  
8 "pages/index/confirm-appointment-info/add-student/add-student", 8 "pages/index/confirm-appointment-info/add-student/add-student",
9 "pages/index/phone-code/phone-code", 9 "pages/index/phone-code/phone-code",
10 "pages/index/activity-detail/activity-detail", 10 "pages/index/activity-detail/activity-detail",
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 37
38 .icon-fenxiang:before { content: "\e696"; } 38 .icon-fenxiang:before { content: "\e696"; }
39 39
40 -.icon-shangwutubiao-:before { content: "\e644"; } 40 +.icon-shangwutubiao:before { content: "\e644"; }
41 41
42 .icon-xuanzhong:before { content: "\e604"; } 42 .icon-xuanzhong:before { content: "\e604"; }
43 43
@@ -61,6 +61,12 @@ Page({ @@ -61,6 +61,12 @@ Page({
61 punchState: true, 61 punchState: true,
62 test: {name: ''}, 62 test: {name: ''},
63 is_bingding: false, 63 is_bingding: false,
  64 + state_data: {
  65 + is_showSuccessModal: false,
  66 + icon: '../../../images/success.png',
  67 + title:'恭喜您',
  68 + content: '打卡成功!'
  69 + },
64 }, 70 },
65 //首次登录小程序,跳转到认证手机页面 71 //首次登录小程序,跳转到认证手机页面
66 goPhoneCode() { 72 goPhoneCode() {
@@ -72,11 +78,11 @@ Page({ @@ -72,11 +78,11 @@ Page({
72 let header = { 78 let header = {
73 "XX-token": wx.getStorageSync('token') 79 "XX-token": wx.getStorageSync('token')
74 }; 80 };
75 - app.post(url, {},header).then((res) => { 81 + app.post(url, {}, header).then((res) => {
76 console.log(res); 82 console.log(res);
77 - if(res.is_binding) { 83 + if (res.is_binding) {
78 this.setData({is_bingding: true}) 84 this.setData({is_bingding: true})
79 - }else { 85 + } else {
80 this.setData({is_bingding: false}) 86 this.setData({is_bingding: false})
81 } 87 }
82 }) 88 })
@@ -89,25 +95,38 @@ Page({ @@ -89,25 +95,38 @@ Page({
89 }, 95 },
90 //打卡 96 //打卡
91 punch() { 97 punch() {
92 - let url = '/portal/Experiment/user_sign';  
93 - let header = {  
94 - "XX-token": wx.getStorageSync('token')  
95 - };  
96 - let params = {  
97 - lab_id: this.data.test.id,//实验室id  
98 - lat: this.data.latitude,  
99 - lng: this.data.longitude,  
100 - };  
101 - app.post(url, params, header).then((res) => {  
102 - console.log('打卡结果',res);  
103 - if(res.is_success) {  
104 - this.setData({  
105 - punchState: false,  
106 - })  
107 - }  
108 - }) 98 + if (this.data.test.name !== '') {
  99 + let url = '/portal/Experiment/user_sign';
  100 + let header = {
  101 + "XX-token": wx.getStorageSync('token')
  102 + };
  103 + let params = {
  104 + lab_id: this.data.test.id,//实验室id
  105 + lat: this.data.latitude,
  106 + lng: this.data.longitude,
  107 + };
  108 + app.post(url, params, header).then((res) => {
  109 + console.log('打卡结果', res);
  110 + if (res.is_success) {
  111 + this.setData({
  112 + punchState: false,
  113 + 'state_data.is_showSuccessModal': true,
  114 + })
  115 + }
  116 + })
  117 + } else {
  118 + wx.showToast({
  119 + title: '未获取当前位置,无法打卡!',
  120 + icon: 'none',
  121 + duration: 2000
  122 + })
  123 + }
109 124
110 }, 125 },
  126 + //关闭打卡成功弹框
  127 + modalConfirm() {
  128 + this.setData({'state_data.is_showSuccessModal': false})
  129 + },
111 // 打卡页面获取用户所在实验室 130 // 打卡页面获取用户所在实验室
112 postPosition(params) { 131 postPosition(params) {
113 let url = '/portal/Experiment/user_session'; 132 let url = '/portal/Experiment/user_session';
@@ -115,7 +134,7 @@ Page({ @@ -115,7 +134,7 @@ Page({
115 "XX-token": wx.getStorageSync('token') 134 "XX-token": wx.getStorageSync('token')
116 }; 135 };
117 app.post(url, params, header).then((res) => { 136 app.post(url, params, header).then((res) => {
118 - console.log('获取用户所在实验室',res); 137 + console.log('获取用户所在实验室', res);
119 this.setData({ 138 this.setData({
120 test: res 139 test: res
121 }) 140 })
@@ -13,4 +13,6 @@ @@ -13,4 +13,6 @@
13 <view class='punch_info' wx:if="{{test.name==''}}">当前:未获取</view> 13 <view class='punch_info' wx:if="{{test.name==''}}">当前:未获取</view>
14 <view class='punch_info' wx:else>当前:{{test.name}}</view> 14 <view class='punch_info' wx:else>当前:{{test.name}}</view>
15 <view class='punch_btn' bindtap='punchApply'>打卡申诉</view> 15 <view class='punch_btn' bindtap='punchApply'>打卡申诉</view>
16 -</view>  
  16 +</view>
  17 +<import src="/templates/templates.wxml" />
  18 +<template is="state-modal" data="{{...state_data}}"></template>
1 /* pages/clock/clock.wxss */ 1 /* pages/clock/clock.wxss */
  2 +@import "../../templates/templates.wxss";
2 3
3 .content_box { 4 .content_box {
4 width: 100%; 5 width: 100%;
@@ -25,6 +25,7 @@ Page({ @@ -25,6 +25,7 @@ Page({
25 data: { 25 data: {
26 name: '', 26 name: '',
27 sex: ['男','女'], 27 sex: ['男','女'],
  28 + sex_index: 0,
28 default_sex: {id: 1,name: '男'}, 29 default_sex: {id: 1,name: '男'},
29 city: ['北京市', '天津市', '河北省'], 30 city: ['北京市', '天津市', '河北省'],
30 default_birth: '2008-11-11', 31 default_birth: '2008-11-11',
@@ -86,7 +87,7 @@ Page({ @@ -86,7 +87,7 @@ Page({
86 }; 87 };
87 let params = { 88 let params = {
88 name: this.data.name, 89 name: this.data.name,
89 - sex: this.data.default_sex || this.data.sex[this.data.sex_index] === '男'? 1: 2, 90 + sex: this.data.sex[this.data.sex_index] === '男'? 1: 2 || this.data.default_sex.id,
90 birthday: this.data.birth_date || this.data.default_birth, 91 birthday: this.data.birth_date || this.data.default_birth,
91 city: this.data.city[this.data.city_index] || this.data.default_city, 92 city: this.data.city[this.data.city_index] || this.data.default_city,
92 }; 93 };
@@ -10,9 +10,15 @@ Page({ @@ -10,9 +10,15 @@ Page({
10 modal_data: { 10 modal_data: {
11 is_showModal: false, 11 is_showModal: false,
12 currentBtn: null, 12 currentBtn: null,
  13 + title: '当前学员还没有购买/兑换畅玩卡,暂不能预约实验活动,是否马上购买/兑换?',
  14 + tab_left: '否',
  15 + tab_right: '是',
13 }, 16 },
14 state_data: { 17 state_data: {
15 is_showSuccessModal: false, 18 is_showSuccessModal: false,
  19 + icon: '../../../images/success.png',
  20 + title:'恭喜您!',
  21 + content: '您已经预约成功!'
16 }, 22 },
17 student_list: [{id:1,name:'张三',checked: false}, 23 student_list: [{id:1,name:'张三',checked: false},
18 {id:2,name:'李思思', checked: false}, 24 {id:2,name:'李思思', checked: false},
@@ -22,7 +28,8 @@ Page({ @@ -22,7 +28,8 @@ Page({
22 is_choose: false, 28 is_choose: false,
23 num_arr: [], 29 num_arr: [],
24 session_info: {}, 30 session_info: {},
25 - student_num: 5, 31 + student_num: 0,
  32 + is_choose_student: false,
26 }, 33 },
27 chooseChildren(e) { 34 chooseChildren(e) {
28 console.log(e.detail); 35 console.log(e.detail);
@@ -57,7 +64,7 @@ Page({ @@ -57,7 +64,7 @@ Page({
57 console.log('skin',index_arr); 64 console.log('skin',index_arr);
58 const id_arr = []; 65 const id_arr = [];
59 id_arr.push(new_itmes[key1].id,new_itmes[key2].id); 66 id_arr.push(new_itmes[key1].id,new_itmes[key2].id);
60 - that.setData({student_id: id_arr.join(',')}) 67 + that.setData({student_id: id_arr.join(','),is_choose_student:true});
61 console.log('student_id', that.data.student_id); 68 console.log('student_id', that.data.student_id);
62 } else { 69 } else {
63 //被选中少于两个,直接设置被选中 70 //被选中少于两个,直接设置被选中
@@ -66,7 +73,7 @@ Page({ @@ -66,7 +73,7 @@ Page({
66 console.log('key', key); 73 console.log('key', key);
67 new_itmes[key]['checked'] = true 74 new_itmes[key]['checked'] = true
68 } 75 }
69 - that.setData({student_id: new_itmes[key].id}) 76 + that.setData({student_id: new_itmes[key].id,is_choose_student:true});
70 console.log('student_id', that.data.student_id); 77 console.log('student_id', that.data.student_id);
71 } 78 }
72 }else if(that.data.student_num <2){//一个学员预约时 79 }else if(that.data.student_num <2){//一个学员预约时
@@ -86,7 +93,7 @@ Page({ @@ -86,7 +93,7 @@ Page({
86 //删除被选中的第一个值 93 //删除被选中的第一个值
87 index_arr.splice(0, 1); 94 index_arr.splice(0, 1);
88 console.log('skin',index_arr); 95 console.log('skin',index_arr);
89 - that.setData({student_id: new_itmes[key1].id}) 96 + that.setData({student_id: new_itmes[key1].id,is_choose_student:true});
90 console.log('student_id', that.data.student_id); 97 console.log('student_id', that.data.student_id);
91 } else { 98 } else {
92 //被选中少于1个,直接设置被选中 99 //被选中少于1个,直接设置被选中
@@ -95,7 +102,7 @@ Page({ @@ -95,7 +102,7 @@ Page({
95 console.log('key', key); 102 console.log('key', key);
96 new_itmes[key]['checked'] = true 103 new_itmes[key]['checked'] = true
97 } 104 }
98 - that.setData({student_id: new_itmes[key].id}) 105 + that.setData({student_id: new_itmes[key].id,is_choose_student:true});
99 console.log('student_id', that.data.student_id); 106 console.log('student_id', that.data.student_id);
100 } 107 }
101 } 108 }
@@ -110,27 +117,33 @@ Page({ @@ -110,27 +117,33 @@ Page({
110 }, 117 },
111 formSubmit(e) { 118 formSubmit(e) {
112 console.log(e.detail); 119 console.log(e.detail);
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 - // } 120 + if(this.data.student_list.length === 0) {
  121 + wx.showToast({title: '请添加学员!',icon:'none'})
  122 + }else if(!this.data.is_choose_student) {
  123 + wx.showToast({title: '请选择学员!',icon:'none'})
  124 + }else {
  125 + // this.setData({'modal_data.is_showModal': true})
  126 + let url = '/portal/Experiment/confirm_session_submit';
  127 + let header = {
  128 + "XX-token": wx.getStorageSync('token')
  129 + };
  130 + let params = {
  131 + _type: 2,//2,活动预约成功
  132 + formId: e.detail.formId,
  133 + experiment_id: this.data.experiment_id,
  134 + session_id: this.data.session_id,
  135 + reservation_id: this.data.reservation_id,
  136 + students: this.data.student_id,
  137 + };
  138 + app.post(url,params,header).then((res) => {
  139 + console.log('提交预约信息',res);
  140 + if(res.data.card_modal === 1) {
  141 + this.setData({'modal_data.is_showModal': true});
  142 + }else if(res.data.reservation_modal === 1) {
  143 + this.setData({'state_data.is_showSuccessModal': true});
  144 + }
  145 + })
  146 + }
134 }, 147 },
135 chooseNo(e) { 148 chooseNo(e) {
136 this.setData({ 149 this.setData({
@@ -144,12 +157,12 @@ Page({ @@ -144,12 +157,12 @@ Page({
144 this.setData({ 157 this.setData({
145 'modal_data.currentBtn': e.currentTarget.dataset.index, 158 'modal_data.currentBtn': e.currentTarget.dataset.index,
146 'modal_data.is_showModal': false, 159 'modal_data.is_showModal': false,
147 - 'state_data.is_showSuccessModal': true  
148 }); 160 });
149 - wx.navigateTo({url: '/pages/my/buyCard/buyCard'}) 161 + wx.navigateTo({url: '/pages/my/buyCard/buyCard?is_back=' + true})
150 }, 162 },
151 modalConfirm() { 163 modalConfirm() {
152 - this.setData({'state_data.is_showSuccessModal': false}) 164 + this.setData({'state_data.is_showSuccessModal': false});
  165 + wx.navigateTo({url: '/pages/my/all-appointment/all-appointment?currentTab=' + 2})
153 }, 166 },
154 disableScroll() {}, 167 disableScroll() {},
155 addStudent() { 168 addStudent() {
@@ -188,19 +201,30 @@ Page({ @@ -188,19 +201,30 @@ Page({
188 }) 201 })
189 }, 202 },
190 //获取学员列表 203 //获取学员列表
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 - // }, 204 + getStudentList() {
  205 + const self = this;
  206 + self.setData({is_choose_student: true})
  207 + console.log('返回时的学生列表', self.data.student_list);
  208 + let url = '/user/Student/student_list';
  209 + let header = {
  210 + "XX-token": wx.getStorageSync('token')
  211 + };
  212 + let params = {
  213 + page: 1,
  214 + };
  215 + app.post(url,params,header).then((res) => {
  216 + console.log('学员列表',res);
  217 + res.list.forEach((item) => {
  218 + if(item.time !== '') {
  219 + // self.data.student_list.forEach((item) => {
  220 + // new_arr.push({ ...item, checked: false })
  221 + // });//给每一项添加checked属性
  222 +
  223 + }
  224 + })
  225 + // this.setData({student_list: res.list})
  226 + })
  227 + },
204 /** 228 /**
205 * 生命周期函数--监听页面加载 229 * 生命周期函数--监听页面加载
206 */ 230 */
@@ -212,8 +236,9 @@ Page({ @@ -212,8 +236,9 @@ Page({
212 experiment_id: +options.experiment_id?+options.experiment_id:'', 236 experiment_id: +options.experiment_id?+options.experiment_id:'',
213 session_id: +options.session_id?+options.session_id:'', 237 session_id: +options.session_id?+options.session_id:'',
214 reservation_id: +options.reservation_id?+options.reservation_id:'', 238 reservation_id: +options.reservation_id?+options.reservation_id:'',
215 - // student_num: +options.student_num?+options.student_num:'', 239 + student_num: +options.student_num?+options.student_num:'',
216 }); 240 });
  241 + // self.getAppointmentInfo();
217 }, 242 },
218 243
219 /** 244 /**
@@ -229,9 +254,9 @@ Page({ @@ -229,9 +254,9 @@ Page({
229 onShow: function() { 254 onShow: function() {
230 console.log('show'); 255 console.log('show');
231 const self = this; 256 const self = this;
232 - // self.getStudentList(); 257 + self.getStudentList();
  258 + self.setData({is_choose_student: false});
233 self.getAppointmentInfo(); 259 self.getAppointmentInfo();
234 -  
235 setTimeout(function() { 260 setTimeout(function() {
236 self.setData({ 261 self.setData({
237 show: true 262 show: true
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <view class="phone-num"> 26 <view class="phone-num">
27 <view class="line"></view> 27 <view class="line"></view>
28 <text>预约电话 :</text> 28 <text>预约电话 :</text>
29 - <text class="phone">188****8888</text> 29 + <text class="phone">{{session_info.mobile}}</text>
30 </view> 30 </view>
31 <view class="children-name"> 31 <view class="children-name">
32 <view class="left-name"> 32 <view class="left-name">
@@ -50,9 +50,9 @@ @@ -50,9 +50,9 @@
50 </view> 50 </view>
51 51
52 <view class="footer"> 52 <view class="footer">
53 - <view class="confirm_btn" form-type="submit" bindtap="formSubmit"> 53 + <button class="confirm_btn" form-type="submit">
54 <text>确认预约</text> 54 <text>确认预约</text>
55 - </view> 55 + </button>
56 </view> 56 </view>
57 </form> 57 </form>
58 <import src="/templates/templates.wxml" /> 58 <import src="/templates/templates.wxml" />
@@ -152,6 +152,10 @@ checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{ @@ -152,6 +152,10 @@ checkbox .wx-checkbox-input.wx-checkbox-input-checked::before{
152 height: 98rpx; 152 height: 98rpx;
153 background-color: #3FA9F5; 153 background-color: #3FA9F5;
154 text-align: center; 154 text-align: center;
  155 + border-radius: 0;
  156 +}
  157 +.confirm_btn::after {
  158 + border: 0;
155 } 159 }
156 .confirm_btn text { 160 .confirm_btn text {
157 color: #ffffff; 161 color: #ffffff;
@@ -12,7 +12,8 @@ Page({ @@ -12,7 +12,8 @@ Page({
12 currentCity: '北京市', 12 currentCity: '北京市',
13 current_test_id: '', 13 current_test_id: '',
14 is_change: false, 14 is_change: false,
15 - is_choose: false, 15 + is_choose_session: false,
  16 + is_choose_test: false,
16 description: '', 17 description: '',
17 session_list: {}, 18 session_list: {},
18 show_submit_btn: false, 19 show_submit_btn: false,
@@ -127,7 +128,7 @@ Page({ @@ -127,7 +128,7 @@ Page({
127 this.setData({ 128 this.setData({
128 currentTest: current, 129 currentTest: current,
129 current_test_id: current_id, 130 current_test_id: current_id,
130 - is_choose: false,//恢复默认值 131 + is_choose_test: true,
131 // current_session_id: this.data.areaTest[current].lab_list ? this.data.areaTest[current].lab_list[0].session_list[0].id : '', 132 // current_session_id: this.data.areaTest[current].lab_list ? this.data.areaTest[current].lab_list[0].session_list[0].id : '',
132 // description: this.data.areaTest[current].lab_list[current].description 133 // description: this.data.areaTest[current].lab_list[current].description
133 }); 134 });
@@ -158,7 +159,7 @@ Page({ @@ -158,7 +159,7 @@ Page({
158 this.setData({ 159 this.setData({
159 currentTime: current, 160 currentTime: current,
160 current_session_id: current_id, 161 current_session_id: current_id,
161 - is_choose: true, 162 + is_choose_session: true,
162 }) 163 })
163 }else { 164 }else {
164 wx.showToast({title:'该场次名额不足!',icon:'none'}) 165 wx.showToast({title:'该场次名额不足!',icon:'none'})
@@ -167,7 +168,7 @@ Page({ @@ -167,7 +168,7 @@ Page({
167 168
168 //点击单人预约 169 //点击单人预约
169 singleAppointment() { 170 singleAppointment() {
170 - if(!this.data.is_choose) { 171 + if(!this.data.is_choose_session || !this.data.is_choose_test) {
171 wx.showToast({title: '请选择实验和场次!',icon: 'none'}) 172 wx.showToast({title: '请选择实验和场次!',icon: 'none'})
172 }else { 173 }else {
173 this.setData({ 174 this.setData({
@@ -182,7 +183,7 @@ Page({ @@ -182,7 +183,7 @@ Page({
182 183
183 //点击双人预约 184 //点击双人预约
184 doubleAppointment() { 185 doubleAppointment() {
185 - if(!this.data.is_choose) { 186 + if(!this.data.is_choose_session || !this.data.is_choose_test) {
186 wx.showToast({title: '请选择实验和场次!',icon: 'none'}) 187 wx.showToast({title: '请选择实验和场次!',icon: 'none'})
187 }else { 188 }else {
188 this.setData({ 189 this.setData({
@@ -196,7 +197,7 @@ Page({ @@ -196,7 +197,7 @@ Page({
196 }, 197 },
197 //提交 198 //提交
198 submit() { 199 submit() {
199 - if(this.data.is_choose) { 200 + if(this.data.is_choose_session && this.data.is_choose_test) {
200 let url = '/portal/Experiment/submit_session'; 201 let url = '/portal/Experiment/submit_session';
201 let header = { 202 let header = {
202 "XX-token": wx.getStorageSync('token') 203 "XX-token": wx.getStorageSync('token')
@@ -216,11 +217,11 @@ Page({ @@ -216,11 +217,11 @@ Page({
216 url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id 217 url: '/pages/index/confirm-appointment-info/confirm-appointment-info?experiment_id=' + this.data.experiment_id
217 + '&session_id=' + this.data.current_session_id 218 + '&session_id=' + this.data.current_session_id
218 + '&reservation_id=' + res.reservation_id 219 + '&reservation_id=' + res.reservation_id
219 - + '&student_num' + this.data.student_num 220 + + '&student_num=' + this.data.student_num
220 }) 221 })
221 }); 222 });
222 }else { 223 }else {
223 - wx.showToast({title: '请选择场次!',icon: 'none'}) 224 + wx.showToast({title: '请选择实验和场次!',icon: 'none'})
224 } 225 }
225 }, 226 },
226 //获取城市列表 227 //获取城市列表
@@ -118,9 +118,9 @@ Page({ @@ -118,9 +118,9 @@ Page({
118 const self = this; 118 const self = this;
119 console.log(options); 119 console.log(options);
120 self.setData({is_bingding: +options.is_bingding?+options.is_bingding:''}); 120 self.setData({is_bingding: +options.is_bingding?+options.is_bingding:''});
  121 + self.checkMobile();
121 self.getTheWeekTest(); 122 self.getTheWeekTest();
122 self.getPastWeekTest(); 123 self.getPastWeekTest();
123 - self.checkMobile();  
124 //获取当前城市 124 //获取当前城市
125 wx.getLocation({ 125 wx.getLocation({
126 type: 'wgs84', 126 type: 'wgs84',
@@ -28,6 +28,7 @@ @@ -28,6 +28,7 @@
28 <view class="btn-box" bindtap="goBuyCard"> 28 <view class="btn-box" bindtap="goBuyCard">
29 <view class="buy-btn"> 29 <view class="buy-btn">
30 <text>点击图片可跳转到购买页</text> 30 <text>点击图片可跳转到购买页</text>
  31 + <image src="../../images/taimiao@2x.png" mode="aspectFill"></image>
31 </view> 32 </view>
32 </view> 33 </view>
33 34
@@ -81,21 +81,32 @@ swiper { @@ -81,21 +81,32 @@ swiper {
81 .buy-btn { 81 .buy-btn {
82 width: 100%; 82 width: 100%;
83 height: 150rpx; 83 height: 150rpx;
  84 + position: relative;
84 /*padding: 22rpx 20rpx;*/ 85 /*padding: 22rpx 20rpx;*/
85 /*margin-top: 22rpx;*/ 86 /*margin-top: 22rpx;*/
86 /*margin-bottom: 22rpx;*/ 87 /*margin-bottom: 22rpx;*/
87 /*margin-left: 20rpx;*/ 88 /*margin-left: 20rpx;*/
88 /*margin-right: 20rpx;*/ 89 /*margin-right: 20rpx;*/
89 - box-sizing: border-box;  
90 - background: #5AB7F9;  
91 - border-radius: 20rpx; 90 + /*box-sizing: border-box;*/
  91 + /*background: #5AB7F9;*/
  92 + /*border-radius: 20rpx;*/
92 display: flex; 93 display: flex;
93 align-items: center; 94 align-items: center;
94 justify-content: center; 95 justify-content: center;
  96 + /*background-image: url('../../images/taimiao@2x.png');*/
  97 + /*background-repeat: no-repeat;*/
  98 + /*-webkit-background-size: cover;*/
  99 + /*background-size: cover;*/
95 } 100 }
96 .buy-btn text { 101 .buy-btn text {
97 color: #ffffff; 102 color: #ffffff;
98 font-size: 24rpx; 103 font-size: 24rpx;
  104 + position: absolute;
  105 +}
  106 +.buy-btn image {
  107 + width: 100%;
  108 + height: 100%;
  109 + border-radius: 20rpx;
99 } 110 }
100 .experiment_box:nth-child(2) { 111 .experiment_box:nth-child(2) {
101 margin-bottom: 0; 112 margin-bottom: 0;
@@ -74,7 +74,7 @@ Page({ @@ -74,7 +74,7 @@ Page({
74 }else { 74 }else {
75 let url = '/user/Profile/bindingMobile'; 75 let url = '/user/Profile/bindingMobile';
76 let params = { 76 let params = {
77 - _type: 1, 77 + _type: 1,//1,手机号绑定成功
78 formId: e.detail.formId, 78 formId: e.detail.formId,
79 mobile: e.detail.value.phone_number, 79 mobile: e.detail.value.phone_number,
80 verification_code: e.detail.value.verification_code, 80 verification_code: e.detail.value.verification_code,
@@ -39,8 +39,32 @@ Page({ @@ -39,8 +39,32 @@ Page({
39 self.setData({orderList: res.list}) 39 self.setData({orderList: res.list})
40 }) 40 })
41 }, 41 },
42 - goDetail() {  
43 - wx.navigateTo({url: '../order-detail/order-detail?currentTab=' + this.data.currentTab}) 42 + //查看预约详情
  43 + goDetail(e) {
  44 + const current = e.currentTarget.dataset.index;
  45 + wx.navigateTo({url: '../order-detail/order-detail?currentTab=' + this.data.currentTab
  46 + + '&reservation_id=' + this.data.orderList[current].id
  47 + })
  48 + },
  49 + //取消
  50 + clickCancel(e) {
  51 + console.log('取消',e);
  52 + const current = e.currentTarget.dataset.index;
  53 + wx.navigateTo({url: '../order-detail/order-detail?currentTab=' + this.data.currentTab
  54 + + '&reservation_id=' + this.data.orderList[current].id
  55 + })
  56 + // let url = '/user/Reservation/reservation_cancel';
  57 + // let header = {
  58 + // "XX-token": wx.getStorageSync('token')
  59 + // };
  60 + // let params = {
  61 + // reservation_id: this.data.orderList[e.detail.target.dataset.index].id,
  62 + // formId: e.detail.formId,
  63 + // };
  64 + // app.post(url, params,header).then((res) => {
  65 + // console.log('取消',res);
  66 + // // this.setData({orderList: res.list})
  67 + // })
44 }, 68 },
45 /** 69 /**
46 * 生命周期函数--监听页面加载 70 * 生命周期函数--监听页面加载
1 <!--pages/my/all-appointment/all-appointment.wxml--> 1 <!--pages/my/all-appointment/all-appointment.wxml-->
2 -<view class="content">  
3 - <!--tab-->  
4 - <view class="tab-box">  
5 - <view wx:for="{{tab}}" wx:key="index" bindtap="changeTab" data-index="{{index}}" class="{{currentTab == index?'change-color':''}}">{{item}}</view>  
6 - </view>  
7 -  
8 - <!--预约列表-->  
9 - <view class="list-box">  
10 - <view class="order-box" bindtap="goDetail" wx:for="{{orderList}}" wx:key="index">  
11 -  
12 - <view class="head">  
13 - <text class="number">预约单号:{{item.reservation_sn}}</text>  
14 - <text class="appointment-state" wx:if="{{currentTab === 1}}" style="color: #FC5B63;">待确认</text>  
15 - <text class="appointment-state" wx:if="{{currentTab === 2}}">已预约</text>  
16 - <text class="appointment-state" wx:if="{{currentTab === 3}}" style="color: #464646;">已取消</text>  
17 - <text class="appointment-state" wx:if="{{currentTab === 4}}" style="color: #C3C3C3;">已结束</text>  
18 - </view>  
19 -  
20 - <view class="section">  
21 - <image src="../../../images/red_line.png" wx:if="{{currentTab === 1}}" class="blue-line"></image>  
22 - <image src="../../../images/blue_line.png" wx:if="{{currentTab === 2}}" class="blue-line"></image>  
23 - <image src="../../../images/deep_grey_line.png" wx:if="{{currentTab === 3}}" class="blue-line"></image>  
24 - <image src="../../../images/grey_line.png" wx:if="{{currentTab === 4}}" class="blue-line"></image>  
25 -  
26 - <view class="right-box">  
27 - <view class="right-top-box">  
28 - <view class="iconfont icon-dingwei"></view>  
29 - <view class="address">{{item.address}}</view>  
30 - </view>  
31 -  
32 - <view class="right-bottom-box">  
33 - <view class="iconfont icon-shangwutubiao"></view>  
34 - <view class="date-box">  
35 - <view class="date">预约日期:{{item.time}}</view>  
36 -  
37 - <view class="not_confirm" wx:if="{{currentTab === 1}}">  
38 - <view class="go-cancel">取消</view>  
39 - <view class="go-confirm">去确认</view>  
40 - </view>  
41 - <view class="cancel" wx:if="{{currentTab === 2}}">取消</view>  
42 - <view class="iconfont icon-quxiao" wx:if="{{currentTab === 3}}"></view>  
43 - <view class="iconfont icon-jieshu" wx:if="{{currentTab === 4}}"></view>  
44 - </view>  
45 - </view> 2 +<view class="content {{orderList.length === 0?'change-content':''}}">
  3 + <!--tab-->
  4 + <view class="tab-box">
  5 + <view wx:for="{{tab}}" wx:key="index" bindtap="changeTab" data-index="{{index}}"
  6 + class="{{currentTab == index?'change-color':''}}">{{item}}
46 </view> 7 </view>
47 - </view> 8 + </view>
  9 +
  10 + <!--暂无订单-->
  11 + <view class="no-data-box" wx:if="{{orderList.length === 0}}">
  12 + <text>暂无订单</text>
  13 + </view>
  14 +
  15 + <!--预约列表-->
  16 + <view class="list-box">
  17 + <view class="order-box" bindtap="goDetail" wx:for="{{orderList}}" wx:key="index" data-index="{{index}}">
48 18
  19 + <view class="head">
  20 + <text class="number">预约单号:{{item.reservation_sn}}</text>
  21 + <text class="appointment-state" wx:if="{{item.status === 1}}" style="color: #FC5B63;">待确认</text>
  22 + <text class="appointment-state" wx:if="{{item.status === 2}}">已预约</text>
  23 + <text class="appointment-state" wx:if="{{item.status === 3}}" style="color: #464646;">已取消</text>
  24 + <text class="appointment-state" wx:if="{{item.status === 4}}" style="color: #C3C3C3;">已结束</text>
  25 + </view>
  26 +
  27 + <view class="section">
  28 + <image src="../../../images/red_line.png" wx:if="{{item.status === 1}}" class="blue-line"></image>
  29 + <image src="../../../images/blue_line.png" wx:if="{{item.status === 2}}" class="blue-line"></image>
  30 + <image src="../../../images/deep_grey_line.png" wx:if="{{item.status === 3}}"
  31 + class="blue-line"></image>
  32 + <image src="../../../images/grey_line.png" wx:if="{{item.status === 4}}" class="blue-line"></image>
  33 +
  34 + <view class="right-box">
  35 + <view class="right-top-box">
  36 + <view class="iconfont icon-dingwei"></view>
  37 + <view class="address">{{item.address}}</view>
  38 + </view>
  39 +
  40 + <view class="right-bottom-box">
  41 + <view class="iconfont icon-shangwutubiao"></view>
  42 + <view class="date-box">
  43 + <view class="date">预约日期:{{item.time}}</view>
  44 + <!--<form bindsubmit="clickCancel" bindreset="formReset" report-submit="true">-->
  45 + <view class="not_confirm" wx:if="{{item.status === 1}}">
  46 + <view class="go-cancel" data-index="{{index}}" bindtap="clickCancel">取消</view>
  47 + <view class="go-confirm" data-index="{{index}}" bindtap="clickConfirm">去确认</view>
  48 + </view>
  49 + <!--</form>-->
  50 + <view class="cancel" wx:if="{{item.status === 2}}">取消</view>
  51 + <view class="iconfont icon-quxiao" wx:if="{{item.status === 3}}"></view>
  52 + <view class="iconfont icon-jieshu" wx:if="{{item.status === 4}}"></view>
  53 + </view>
  54 + </view>
  55 + </view>
  56 + </view>
49 57
  58 +
  59 + </view>
50 </view> 60 </view>
51 - </view>  
52 </view> 61 </view>
1 /* pages/my/all-appointment/all-appointment.wxss */ 1 /* pages/my/all-appointment/all-appointment.wxss */
2 page { 2 page {
3 background-color: #f2f2f2; 3 background-color: #f2f2f2;
  4 + height: 100%;
  5 +}
  6 +.change-content {
  7 + height: 100%;
  8 + display: flex;
  9 + flex-direction: column;
  10 + justify-content: space-between;
  11 + align-items: center;
4 } 12 }
5 .tab-box { 13 .tab-box {
6 width: 100%; 14 width: 100%;
@@ -21,6 +29,15 @@ page { @@ -21,6 +29,15 @@ page {
21 line-height: 80rpx; 29 line-height: 80rpx;
22 position: relative; 30 position: relative;
23 } 31 }
  32 +.no-data-box {
  33 + display: flex;
  34 + align-items: center;
  35 + justify-content: center;
  36 +}
  37 +.no-data-box text {
  38 + font-size: 36rpx;
  39 + color: #cccccc;
  40 +}
24 .change-color { 41 .change-color {
25 color: #3FA9F5; 42 color: #3FA9F5;
26 border-bottom: 4rpx solid #3FA9F5; 43 border-bottom: 4rpx solid #3FA9F5;
@@ -64,12 +81,13 @@ page { @@ -64,12 +81,13 @@ page {
64 } 81 }
65 .blue-line { 82 .blue-line {
66 width: 12rpx; 83 width: 12rpx;
67 - height: 147rpx; 84 + height: 107rpx;
68 position: absolute; 85 position: absolute;
69 top: 0; 86 top: 0;
70 left: 0; 87 left: 0;
71 } 88 }
72 .right-box { 89 .right-box {
  90 + width: 100%;
73 margin-left: 20rpx; 91 margin-left: 20rpx;
74 padding-top: 16rpx; 92 padding-top: 16rpx;
75 } 93 }
@@ -112,7 +130,7 @@ page { @@ -112,7 +130,7 @@ page {
112 /*width: 130rpx;*/ 130 /*width: 130rpx;*/
113 /*height: 50rpx;*/ 131 /*height: 50rpx;*/
114 /*line-height: 50rpx;*/ 132 /*line-height: 50rpx;*/
115 - padding: 0rpx 44rpx; 133 + padding: 0rpx 32rpx;
116 border-radius: 20rpx; 134 border-radius: 20rpx;
117 background-color: #3FA9F5; 135 background-color: #3FA9F5;
118 color: #ffffff; 136 color: #ffffff;
@@ -124,7 +142,7 @@ page { @@ -124,7 +142,7 @@ page {
124 font-size: 126rpx; 142 font-size: 126rpx;
125 position: absolute; 143 position: absolute;
126 right: -34rpx; 144 right: -34rpx;
127 - bottom: -57rpx; 145 + bottom: -52rpx;
128 } 146 }
129 .not_confirm { 147 .not_confirm {
130 width: 130rpx; 148 width: 130rpx;
@@ -36,7 +36,7 @@ Page({ @@ -36,7 +36,7 @@ Page({
36 }) 36 })
37 }, 37 },
38 //确认支付 38 //确认支付
39 - confirmPay() { 39 + confirmPay(e) {
40 if(this.data.index !== -1) { 40 if(this.data.index !== -1) {
41 if(this.data.is_agree) { 41 if(this.data.is_agree) {
42 let url = '/portal/Order/order_add'; 42 let url = '/portal/Order/order_add';
@@ -44,6 +44,8 @@ Page({ @@ -44,6 +44,8 @@ Page({
44 "XX-token": wx.getStorageSync('token') 44 "XX-token": wx.getStorageSync('token')
45 }; 45 };
46 let params = { 46 let params = {
  47 + _type: 4,//4:成功购买畅玩卡
  48 + formId: e.detail.formId,
47 id: this.data.student_list[this.data.index].id 49 id: this.data.student_list[this.data.index].id
48 }; 50 };
49 app.post(url, params,header).then((res) => { 51 app.post(url, params,header).then((res) => {
@@ -74,7 +76,7 @@ Page({ @@ -74,7 +76,7 @@ Page({
74 icon: 'success', 76 icon: 'success',
75 success: function () { 77 success: function () {
76 setTimeout(function () { 78 setTimeout(function () {
77 - if(self.data.is_back) {//如果从首页购买的,成功后返回首 79 + if(self.data.is_back) {//如果从首页或预约时购买的,成功后返回上一
78 wx.navigateBack({delta: 1}) 80 wx.navigateBack({delta: 1})
79 }else {//否则进入预约订单详情页 81 }else {//否则进入预约订单详情页
80 wx.redirectTo({ 82 wx.redirectTo({
@@ -99,7 +101,7 @@ Page({ @@ -99,7 +101,7 @@ Page({
99 if (pages.length > 1) { 101 if (pages.length > 1) {
100 var beforePage = pages[pages.length - 2]//获取上一页面实例 102 var beforePage = pages[pages.length - 2]//获取上一页面实例
101 if (this.data.pay_success) { 103 if (this.data.pay_success) {
102 - beforePage.refreshModal() 104 + beforePage.refreshStudent()
103 } 105 }
104 } 106 }
105 }, 107 },
1 <!--pages/buyCard/buyCard.wxml--> 1 <!--pages/buyCard/buyCard.wxml-->
2 <view class='long_img'> 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>  
9 -<view class='service_box'>  
10 - <view class='add_person_box'>  
11 - <view class='list_input'>  
12 - <view>绑定学员:</view>  
13 - <view class="tips" wx:if="{{student_list.length === 0}}">点击右侧添加学员</view>  
14 - <picker value='{{index}}' range='{{picker_list}}' bindchange="changeStudent" wx:else>  
15 - <block wx:if='{{index==-1}}'>  
16 - <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'/>  
17 - </block>  
18 - <block wx:else class="text">  
19 - <text>{{picker_list[index]}}</text>  
20 - </block>  
21 - </picker>  
22 - <view class='iconfont icon-daosanjiao'></view> 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"
  7 + mode="aspectFill"></image>
23 </view> 8 </view>
24 - <view class='add_box' bindtap='addUser'>  
25 - <text class='iconfont icon-jia'></text>  
26 - <text>添加学员</text> 9 +</view>
  10 +<form bindsubmit="confirmPay" bindreset="formReset" report-submit="true">
  11 + <view class='service_box'>
  12 + <view class='add_person_box'>
  13 + <view class='list_input'>
  14 + <view>绑定学员:</view>
  15 + <view class="tips" wx:if="{{student_list.length === 0}}">点击右侧添加学员</view>
  16 + <picker value='{{index}}' range='{{picker_list}}' bindchange="changeStudent" wx:else>
  17 + <block wx:if='{{index==-1}}'>
  18 + <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'/>
  19 + </block>
  20 + <block wx:else class="text">
  21 + <text>{{picker_list[index]}}</text>
  22 + </block>
  23 + </picker>
  24 + <view class='iconfont icon-daosanjiao'></view>
  25 + </view>
  26 + <view class='add_box' bindtap='addUser'>
  27 + <text class='iconfont icon-jia'></text>
  28 + <text>添加学员</text>
  29 + </view>
  30 + </view>
  31 + <view class='service_info_box' bindtap="agree">
  32 + <text class='iconfont icon-xuanze1' wx:if="{{!is_agree}}"></text>
  33 + <text class='iconfont icon-xuanzhong' wx:if="{{is_agree}}"></text>
  34 + <text>我已阅读并同意畅玩卡</text>
  35 + <text class='service_info' catchtap='serviceProtocol'>服务协议</text>
  36 + </view>
  37 + <view class='service_btn_box'>
  38 + <view>需支付:¥{{card_info.price}}</view>
  39 + <button class='pay_btn' form-type="submit">确定</button>
  40 + </view>
27 </view> 41 </view>
28 - </view>  
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>  
32 - <text>我已阅读并同意畅玩卡</text>  
33 - <text class='service_info' catchtap='serviceProtocol'>服务协议</text>  
34 - </view>  
35 - <view class='service_btn_box'>  
36 - <view>需支付:¥{{card_info.price}}</view>  
37 - <view class='pay_btn' bindtap='confirmPay'>确定</view>  
38 - </view>  
39 -</view>  
  42 +</form>
@@ -63,4 +63,12 @@ @@ -63,4 +63,12 @@
63 font-size: 30rpx; 63 font-size: 30rpx;
64 color: #6E6E6E; 64 color: #6E6E6E;
65 } 65 }
  66 +.pay_btn {
  67 + margin: 0;
  68 + padding: 0;
  69 + border-radius: 0;
  70 +}
  71 +.pay_btn::after {
  72 + border: 0;
  73 +}
66 74
1 // pages/charge/charge.js 1 // pages/charge/charge.js
  2 +const app = getApp();
2 Page({ 3 Page({
3 4
4 - /**  
5 - * 页面的初始数据  
6 - */  
7 - data: {  
8 - userlist: ['张三', '里斯'],  
9 - index: -1,  
10 - },  
11 -  
12 - //选择成员  
13 - userList(e) {  
14 - this.setData({  
15 - index: e.detail.value  
16 - })  
17 - },  
18 -  
19 - //兑换并绑定按钮  
20 - chargeBtn() {  
21 - wx.showModal({  
22 - title: '',  
23 - content: '绑定后无法更改,确定绑定张三吗?',  
24 - cancelText: '取消',  
25 - confirmText: '确认',  
26 - })  
27 - },  
28 -  
29 - //添加学员  
30 - addUser() {  
31 - wx.navigateTo({  
32 - url: '../../index/confirm-appointment-info/add-student/add-student',  
33 - })  
34 - },  
35 -  
36 - /**  
37 - * 生命周期函数--监听页面加载  
38 - */  
39 - onLoad: function(options) {  
40 -  
41 - },  
42 -  
43 - /**  
44 - * 生命周期函数--监听页面初次渲染完成  
45 - */  
46 - onReady: function() {  
47 -  
48 - },  
49 -  
50 - /**  
51 - * 生命周期函数--监听页面显示  
52 - */  
53 - onShow: function() {  
54 -  
55 - },  
56 -  
57 - /**  
58 - * 生命周期函数--监听页面隐藏  
59 - */  
60 - onHide: function() {  
61 -  
62 - },  
63 -  
64 - /**  
65 - * 生命周期函数--监听页面卸载  
66 - */  
67 - onUnload: function() {  
68 -  
69 - },  
70 -  
71 - /**  
72 - * 页面相关事件处理函数--监听用户下拉动作  
73 - */  
74 - onPullDownRefresh: function() {  
75 -  
76 - },  
77 -  
78 - /**  
79 - * 页面上拉触底事件的处理函数  
80 - */  
81 - onReachBottom: function() {  
82 -  
83 - },  
84 -  
85 - /**  
86 - * 用户点击右上角分享  
87 - */  
88 - onShareAppMessage: function() {  
89 -  
90 - } 5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + code:'',
  10 + index: 0,
  11 + picker_list: [],
  12 + modal_data: {
  13 + is_showModal: false,
  14 + currentBtn: null,
  15 + title: '',
  16 + tab_left: '取消',
  17 + tab_right: '确认',
  18 + },
  19 + is_confirm: false,
  20 + },
  21 + //输入兑换码
  22 + codeInput(e) {
  23 + this.setData({code: e.detail.value})
  24 + },
  25 + //选择成员
  26 + changePicker(e) {
  27 + this.setData({
  28 + index: e.detail.value
  29 + })
  30 + },
  31 +
  32 + //兑换并绑定按钮
  33 + chargeBtn(e) {
  34 + // console.log('34',e.detail);
  35 + const self = this;
  36 + if(self.data.code === '') {
  37 + wx.showToast({title: '请输入兑换码!',icon: 'none'})
  38 + }else if(self.data.picker_list.length === 0) {
  39 + wx.showToast({title: '请添加学员!',icon: 'none'})
  40 + }else {
  41 + let url = '/user/Student/student_bind';
  42 + let header = {
  43 + "XX-token": wx.getStorageSync('token')
  44 + };
  45 + if(self.data.is_confirm) {
  46 + let params = {
  47 + id: self.data.student_list[self.data.index].id,
  48 + card: self.data.code,
  49 + formId: self.data.detail.formId,
  50 + };
  51 + app.post(url,params,header).then((res) => {
  52 + console.log('兑换并绑定',res);
  53 + this.setData({is_confirm: false});
  54 + if(res === '参数错误') {
  55 + }
  56 + // console.log('list', list);
  57 + // this.setData({picker_list: list})
  58 + })
  59 + }else {
  60 + self.setData({
  61 + detail: e.detail,
  62 + 'modal_data.is_showModal': true,
  63 + 'modal_data.title': '绑定后无法更改,确认绑定' + self.data.picker_list[self.data.index] + '吗?',
  64 + });
  65 + }
  66 + }
  67 + },
  68 +
  69 + //添加学员
  70 + addUser() {
  71 + wx.navigateTo({
  72 + url: '../../index/confirm-appointment-info/add-student/add-student?is_back=' + true,
  73 + })
  74 + },
  75 + chooseNo(e) {
  76 + this.setData({
  77 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  78 + 'modal_data.is_showModal': false
  79 + });
  80 + // wx.switchTab({url: '/pages/index/index'})
  81 + // wx.navigateBack({delta: 1})
  82 + },
  83 + chooseYes(e) {
  84 + this.setData({
  85 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  86 + 'modal_data.is_showModal': false,
  87 + 'state_data.is_showSuccessModal': true,
  88 + is_confirm: true,
  89 + });
  90 + if(this.data.is_confirm) {
  91 + this.chargeBtn();
  92 + }
  93 + },
  94 + modalConfirm() {
  95 + this.setData({'state_data.is_showSuccessModal': false})
  96 + },
  97 + disableScroll() {},
  98 + //获取学员列表
  99 + getStudentList() {
  100 + let url = '/user/Student/student_list';
  101 + let header = {
  102 + "XX-token": wx.getStorageSync('token')
  103 + };
  104 + let params = {
  105 + page: 1,
  106 + };
  107 + var list = [];
  108 + app.post(url,params,header).then((res) => {
  109 + console.log('学员列表',res);
  110 + res.list.forEach((item) => {
  111 + list.push(item.name)
  112 + });
  113 + console.log('list', list);
  114 + this.setData({picker_list: list,student_list: res.list})
  115 + })
  116 + },
  117 + /**
  118 + * 生命周期函数--监听页面加载
  119 + */
  120 + onLoad: function (options) {
  121 +
  122 + },
  123 +
  124 + /**
  125 + * 生命周期函数--监听页面初次渲染完成
  126 + */
  127 + onReady: function () {
  128 +
  129 + },
  130 +
  131 + /**
  132 + * 生命周期函数--监听页面显示
  133 + */
  134 + onShow: function () {
  135 + const self = this;
  136 + self.getStudentList();
  137 + },
  138 +
  139 + /**
  140 + * 生命周期函数--监听页面隐藏
  141 + */
  142 + onHide: function () {
  143 +
  144 + },
  145 +
  146 + /**
  147 + * 生命周期函数--监听页面卸载
  148 + */
  149 + onUnload: function () {
  150 +
  151 + },
  152 +
  153 + /**
  154 + * 页面相关事件处理函数--监听用户下拉动作
  155 + */
  156 + onPullDownRefresh: function () {
  157 +
  158 + },
  159 +
  160 + /**
  161 + * 页面上拉触底事件的处理函数
  162 + */
  163 + onReachBottom: function () {
  164 +
  165 + },
  166 +
  167 + /**
  168 + * 用户点击右上角分享
  169 + */
  170 + onShareAppMessage: function () {
  171 +
  172 + }
91 }) 173 })
1 -{}  
  1 +{
  2 + "navigationBarTitleText": "兑换"
  3 +}
1 <!--pages/charge/charge.wxml--> 1 <!--pages/charge/charge.wxml-->
2 -<view class='content_box'>  
3 - <view class='item_list_box'>  
4 - <view class='item_list'>  
5 - <view class='list_input'>  
6 - <view>兑换码:</view>  
7 - <input placeholder='请输入您的畅玩卡兑换码' placeholder-class='input_style'></input>  
8 - </view>  
9 - <view></view> 2 +<form bindsubmit="chargeBtn" bindreset="formReset" report-submit="true">
  3 + <view class='content_box'>
  4 + <view class='item_list_box'>
  5 + <view class='item_list'>
  6 + <view class='list_input'>
  7 + <view>兑换码:</view>
  8 + <input placeholder='请输入您的畅玩卡兑换码' placeholder-class='input_style' bindinput="codeInput"
  9 + value="{{code}}"/>
  10 + </view>
  11 + <view></view>
  12 + </view>
  13 + <view class='item_list'>
  14 + <view class='list_input'>
  15 + <view>绑定学员:</view>
  16 + <picker value='{{index}}' range='{{picker_list}}' bindchange='changePicker'>
  17 + <block wx:if='{{picker_list.length === 0}}'>
  18 + <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'/>
  19 + </block>
  20 + <block wx:else>
  21 + <text>{{picker_list[index]}}</text>
  22 + </block>
  23 + </picker>
  24 + <view class='iconfont icon-daosanjiao'></view>
  25 + </view>
  26 + <view class='add_box' bindtap='addUser'>
  27 + <text class='iconfont icon-jia'></text>
  28 + <text>添加学员</text>
  29 + </view>
  30 + </view>
  31 + </view>
10 </view> 32 </view>
11 - <view class='item_list'>  
12 - <view class='list_input'>  
13 - <view>绑定学员:</view>  
14 - <picker value='{{index}}' range='{{userlist}}' bindchange='userList'>  
15 - <block wx:if='{{index==-1}}'>  
16 - <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'></input>  
17 - </block>  
18 - <block wx:else>  
19 - <text>{{userlist[index]}}</text>  
20 - </block>  
21 - </picker>  
22 - <view class='iconfont icon-daosanjiao'></view>  
23 - </view>  
24 - <view class='add_box' bindtap='addUser'>  
25 - <text class='iconfont icon-jia'></text>  
26 - <text>添加学员</text>  
27 - </view> 33 + <view class='service_box'>
  34 + <view class='service_info_box'>
  35 + <text>注:如果还未添加学员,点击添加学员添加吧!</text>
  36 + </view>
  37 + <button class='service_btn_box' form-type="submit">
  38 + 兑换并绑定
  39 + </button>
28 </view> 40 </view>
29 - </view>  
30 -</view>  
31 -<view class='service_box'>  
32 - <view class='service_info_box'>  
33 - <text>注:如果还未添加学员,点击添加学员添加吧!</text>  
34 - </view>  
35 - <view class='service_btn_box' bindtap='chargeBtn'>  
36 - 兑换并绑定  
37 - </view>  
38 -</view>  
  41 +</form>
  42 +<import src="/templates/templates.wxml"/>
  43 +<template is="modal" data="{{...modal_data}}"></template>
1 /* pages/charge/charge.wxss */ 1 /* pages/charge/charge.wxss */
  2 +@import "../../../templates/templates.wxss";
  3 +.modalBackground {
  4 +
  5 +}
  6 +.modal {
  7 + height: 224rpx;
  8 + position: absolute;
  9 + top: 280rpx;
  10 + left: 50%;
  11 + transform: translate(-50%,0);
  12 +}
2 13
3 page { 14 page {
4 background: #f5f5fa; 15 background: #f5f5fa;
@@ -60,6 +71,7 @@ page { @@ -60,6 +71,7 @@ page {
60 padding: 5rpx; 71 padding: 5rpx;
61 box-sizing: border-box; 72 box-sizing: border-box;
62 margin-right: 8rpx; 73 margin-right: 8rpx;
  74 + font-size: 24rpx;
63 } 75 }
64 76
65 .add_box { 77 .add_box {
@@ -96,4 +108,8 @@ page { @@ -96,4 +108,8 @@ page {
96 display: flex; 108 display: flex;
97 align-items: center; 109 align-items: center;
98 justify-content: center; 110 justify-content: center;
  111 + border-radius:0;
99 } 112 }
  113 +.service_btn_box::after {
  114 + border: 0;
  115 +}
1 // pages/chargePhoneNum/chargePhoneNum.js 1 // pages/chargePhoneNum/chargePhoneNum.js
2 const app = getApp(); 2 const app = getApp();
3 var interval = null //倒计时函数 3 var interval = null //倒计时函数
  4 +var interval1 = null //倒计时函数
4 Page({ 5 Page({
5 6
6 /** 7 /**
@@ -8,17 +9,20 @@ Page({ @@ -8,17 +9,20 @@ Page({
8 */ 9 */
9 data: { 10 data: {
10 time: '获取验证码', //倒计时 11 time: '获取验证码', //倒计时
  12 + time1: '获取验证码', //倒计时
11 currentTime: 61, 13 currentTime: 61,
  14 + currentTime1: 61,
12 new_phone: '', 15 new_phone: '',
13 old_phone:'', 16 old_phone:'',
14 old_verification_code: '', 17 old_verification_code: '',
15 new_verification_code: '', 18 new_verification_code: '',
  19 + time_flag: '',
16 }, 20 },
17 phoneInput(e) { 21 phoneInput(e) {
18 this.setData({new_phone: e.detail.value}) 22 this.setData({new_phone: e.detail.value})
19 }, 23 },
20 codeInput(e) { 24 codeInput(e) {
21 - if(this.data.new_phone === '') { 25 + if(this.data.time_flag === '') {
22 this.setData({old_verification_code: e.detail.value}) 26 this.setData({old_verification_code: e.detail.value})
23 }else { 27 }else {
24 this.setData({new_verification_code: e.detail.value}) 28 this.setData({new_verification_code: e.detail.value})
@@ -27,22 +31,42 @@ Page({ @@ -27,22 +31,42 @@ Page({
27 //获取验证码 31 //获取验证码
28 getCode: function (options) { 32 getCode: function (options) {
29 var that = this; 33 var that = this;
30 - var currentTime = that.data.currentTime;  
31 - interval = setInterval(function () {  
32 - currentTime--;  
33 - that.setData({  
34 - time: currentTime + '秒'  
35 - })  
36 - if (currentTime <= 0) {  
37 - clearInterval(interval); 34 + if(that.data.time_flag === '') {
  35 + var currentTime = that.data.currentTime;
  36 + interval = setInterval(function () {
  37 + currentTime--;
38 that.setData({ 38 that.setData({
39 - time: '重新发送',  
40 - currentTime: 61,  
41 - disabled: false 39 + time: currentTime + '秒'
42 }) 40 })
43 - }  
44 - }, 1000);  
45 - if(this.data.new_phone === '') { 41 + if (currentTime <= 0) {
  42 + clearInterval(interval);
  43 + that.setData({
  44 + time: '重新发送',
  45 + currentTime: 61,
  46 + disabled: false
  47 + })
  48 + }
  49 + }, 1000);
  50 + console.log(that.data.disabled);
  51 + }else if(that.data.time_flag){
  52 + var currentTime1 = that.data.currentTime1;
  53 + interval1 = setInterval(function () {
  54 + currentTime1--;
  55 + that.setData({
  56 + time1: currentTime1 + '秒'
  57 + })
  58 + if (currentTime1 <= 0) {
  59 + clearInterval(interval1);
  60 + that.setData({
  61 + time1: '重新发送',
  62 + currentTime1: 61,
  63 + disabled1: false
  64 + })
  65 + }
  66 + }, 1000);
  67 + console.log(that.data.disabled1);
  68 + }
  69 + if(this.data.time_flag === '') {
46 let url = '/user/Profile/getOldCode'; 70 let url = '/user/Profile/getOldCode';
47 let params = { 71 let params = {
48 mobile: that.data.old_phone, 72 mobile: that.data.old_phone,
@@ -52,21 +76,30 @@ Page({ @@ -52,21 +76,30 @@ Page({
52 }; 76 };
53 app.post(url, params,header).then((res) => { 77 app.post(url, params,header).then((res) => {
54 console.log('旧验证码',res); 78 console.log('旧验证码',res);
55 - that.setData({old_verification_code: res.code}) 79 + that.setData({old_verification_code: res.code,old_time: res.time})
56 // console.log(this.data.this_week_test_info); 80 // console.log(this.data.this_week_test_info);
57 }) 81 })
58 }else { 82 }else {
59 let url = '/user/Profile/getNewCode'; 83 let url = '/user/Profile/getNewCode';
60 let params = { 84 let params = {
61 mobile: that.data.new_phone, 85 mobile: that.data.new_phone,
62 - time: app.nowDate(), 86 + time: that.data.time_flag,
63 }; 87 };
64 let header = { 88 let header = {
65 "XX-token": wx.getStorageSync('token') 89 "XX-token": wx.getStorageSync('token')
66 }; 90 };
67 app.post(url, params,header).then((res) => { 91 app.post(url, params,header).then((res) => {
68 console.log('新验证码',res); 92 console.log('新验证码',res);
69 - that.setData({new_verification_code: res.code}) 93 + if(res == '手机号已经存在!') {
  94 + clearInterval(interval1);
  95 + console.log('...',that.data.disabled1);
  96 + that.setData({
  97 + time1: '获取验证码',
  98 + disabled1:false,
  99 + })
  100 + }else {
  101 + that.setData({new_verification_code: res.code,new_time:res.time})
  102 + }
70 // console.log(this.data.this_week_test_info); 103 // console.log(this.data.this_week_test_info);
71 }) 104 })
72 } 105 }
@@ -74,51 +107,90 @@ Page({ @@ -74,51 +107,90 @@ Page({
74 //获取验证码 107 //获取验证码
75 getVerificationCode() { 108 getVerificationCode() {
76 var that = this; 109 var that = this;
77 - if(that.data.new_phone !== '' || that.data.old_phone) {  
78 - that.getCode();  
79 - that.setData({  
80 - disabled: true  
81 - }) 110 + if(that.data.time_flag === '') {
  111 + that.getCode();
  112 + that.setData({
  113 + disabled: true
  114 + })
82 }else { 115 }else {
83 - that.setData({  
84 - disabled: false  
85 - });  
86 - wx.showToast({title: '请输入手机号!',icon: 'none'}) 116 + if(that.data.new_phone === '') {
  117 + wx.showToast({title: '请输入手机号!',icon: 'none'})
  118 + }else {
  119 + that.getCode();
  120 + that.setData({
  121 + disabled1: true
  122 + });
  123 + }
87 } 124 }
88 }, 125 },
89 - //下一步/保存  
90 - save_btn() { 126 + //下一步
  127 + next() {
91 const self = this; 128 const self = this;
92 - if(self.data.new_phone === '' || self.data.old_phone === '') { 129 + console.log(0);
  130 + clearInterval(interval);
  131 + if(self.data.old_phone === '') {
  132 + console.log(1);
93 wx.showToast({title: '请输入手机号!',icon: 'none'}) 133 wx.showToast({title: '请输入手机号!',icon: 'none'})
94 - }else if(self.data.old_verification_code === '' || self.data.new_verification_code === '') { 134 + }else if(self.data.old_verification_code === '') {
  135 + console.log(2);
95 wx.showToast({title: '请输入验证码!',icon: 'none'}) 136 wx.showToast({title: '请输入验证码!',icon: 'none'})
96 }else { 137 }else {
97 - if(self.data.old_phone && self.data.new_phone === '') { 138 + console.log(3);
  139 + if(self.data.old_phone && self.data.old_verification_code) {
98 let url = '/user/Profile/checkOldMobile'; 140 let url = '/user/Profile/checkOldMobile';
99 let params = { 141 let params = {
100 mobile: self.data.old_phone, 142 mobile: self.data.old_phone,
101 verification_code: self.data.old_verification_code, 143 verification_code: self.data.old_verification_code,
102 - time: app.nowDate(), 144 + time: self.data.old_time,
103 }; 145 };
104 let header = { 146 let header = {
105 "XX-token": wx.getStorageSync('token') 147 "XX-token": wx.getStorageSync('token')
106 }; 148 };
107 app.post(url, params,header).then((res) => { 149 app.post(url, params,header).then((res) => {
108 console.log('原手机号验证结果',res); 150 console.log('原手机号验证结果',res);
  151 + self.setData({time_flag: res.time});
109 }); 152 });
110 - }else if(self.data.new_phone !== '' && self.data.new_verification_code !== '') { 153 + }
  154 + }
  155 + },
  156 + //保存
  157 + formSubmit(e) {
  158 + const self = this;
  159 + console.log(e,e.detail);
  160 + clearInterval(interval1);
  161 + if(self.data.new_phone === '') {
  162 + console.log(1);
  163 + wx.showToast({title: '请输入手机号!',icon: 'none'})
  164 + }else if(self.data.new_verification_code === '') {
  165 + console.log(2);
  166 + wx.showToast({title: '请输入验证码!',icon: 'none'})
  167 + }else {
  168 + console.log(3);
  169 + if(self.data.new_phone && self.data.new_verification_code) {
111 let url = '/user/Profile/bindingNewMobile'; 170 let url = '/user/Profile/bindingNewMobile';
112 let params = { 171 let params = {
  172 + _type: 7,//1,手机号绑定成功
  173 + formId: e.detail.formId,
113 mobile: self.data.new_phone, 174 mobile: self.data.new_phone,
114 verification_code: self.data.new_verification_code, 175 verification_code: self.data.new_verification_code,
115 - time: app.nowDate(), 176 + time: self.data.new_time,
116 }; 177 };
117 let header = { 178 let header = {
118 "XX-token": wx.getStorageSync('token') 179 "XX-token": wx.getStorageSync('token')
119 }; 180 };
120 - app.post(url, params,header).then((res) => {  
121 - console.log('新手机号绑定结果',res); 181 + app.post(url, params, header).then((res) => {
  182 + console.log('新手机号绑定结果', res);
  183 + if(res.is_bingding) {
  184 + wx.showToast({
  185 + title: '更换手机号成功!',
  186 + icon: 'success',
  187 + success: function () {
  188 + setTimeout(function () {
  189 + wx.navigateBack({delta: 1})
  190 + },500)
  191 + }
  192 + })
  193 + }
122 }); 194 });
123 } 195 }
124 196
@@ -132,6 +204,8 @@ Page({ @@ -132,6 +204,8 @@ Page({
132 this.setData({ 204 this.setData({
133 old_phone: options.old_phone?options.old_phone:'', 205 old_phone: options.old_phone?options.old_phone:'',
134 old_phone_hidden: options.old_phone_hidden?options.old_phone_hidden:'', 206 old_phone_hidden: options.old_phone_hidden?options.old_phone_hidden:'',
  207 + user_nickname: options.user_nickname?options.user_nickname:'',
  208 + avatar: options.avatar?options.avatar:'',
135 }) 209 })
136 }, 210 },
137 211
1 -{}  
  1 +{
  2 + "navigationBarTitleText": "更换手机号"
  3 +}
1 <!--pages/chargePhoneNum/chargePhoneNum.wxml--> 1 <!--pages/chargePhoneNum/chargePhoneNum.wxml-->
2 <view class='content_box'> 2 <view class='content_box'>
3 - <view class='banner_box'>  
4 - <view class='head_img'>  
5 - <image src='../../../images/head.png'></image>  
6 - </view>  
7 - <view>微信昵称</view>  
8 - </view>  
9 - <view class='list_box'>  
10 - <view class='item_list'>  
11 - <view class='info_box'>  
12 - <view wx:if="{{old_phone}}">原手机号:</view>  
13 - <view wx:if="{{new_phone !== ''}}">新手机号: </view>  
14 - <view class='list_input'>  
15 - <input placeholder='{{old_phone_hidden}}' value='{{new_phone}}' bindinput="phoneInput"/> 3 + <view class='banner_box'>
  4 + <view class='head_img'>
  5 + <image src='{{avatar}}'></image>
16 </view> 6 </view>
17 - </view> 7 + <view>{{user_nickname}}</view>
18 </view> 8 </view>
19 - <view class='item_list'>  
20 - <view class='info_box'>  
21 - <text>验证码: </text>  
22 - <view class='list_input'>  
23 - <input placeholder='输入验证码' value='{{old_verification_code}}' bindinput="codeInput" wx:if="{{new_phone === ''}}"/>  
24 - <input placeholder='输入验证码' value='{{new_verification_code}}' bindinput="codeInput" wx:if="{{new_phone !== ''}}"/> 9 + <form bindsubmit="formSubmit" bindreset="formReset" report-submit="true">
  10 + <view class='list_box'>
  11 + <view class='item_list'>
  12 + <view class='info_box'>
  13 + <view wx:if="{{time_flag === ''}}">原手机号:</view>
  14 + <view wx:if="{{time_flag !== ''}}">新手机号:</view>
  15 + <view class='list_input'>
  16 + <input wx:if="{{time_flag === ''}}" placeholder='{{old_phone_hidden}}' value='{{new_phone}}'
  17 + bindinput="phoneInput"/>
  18 + <input wx:if="{{time_flag !== ''}}" placeholder='输入新手机号' value='{{new_phone}}' name="new_phone"
  19 + bindinput="phoneInput"/>
  20 + </view>
  21 + </view>
  22 + </view>
  23 + <view class='item_list'>
  24 + <view class='info_box'>
  25 + <text>验证码:</text>
  26 + <view class='list_input'>
  27 + <input placeholder='输入验证码' value='{{old_verification_code}}' bindinput="codeInput"
  28 + wx:if="{{time_flag === ''}}"/>
  29 + <input placeholder='输入验证码' value='{{new_verification_code}}' bindinput="codeInput"
  30 + wx:if="{{time_flag !== ''}}"/>
  31 + </view>
  32 + </view>
  33 + <button class='get_code' disabled="{{disabled}}" data-id="2" bindtap="getVerificationCode"
  34 + wx:if="{{time_flag === ''}}">{{time}}
  35 + </button>
  36 + <button class='get_code' disabled="{{disabled1}}" data-id="2" bindtap="getVerificationCode"
  37 + wx:if="{{time_flag !== ''}}">{{time1}}
  38 + </button>
  39 + </view>
25 </view> 40 </view>
26 - </view>  
27 - <button class='get_code' disabled="{{disabled}}" data-id="2" bindtap="getVerificationCode">{{time}}</button>  
28 - </view>  
29 - </view>  
30 - <view class='save_btn' wx:if="{{new_phone === ''}}">下一步</view>  
31 - <view class='save_btn' wx:if="{{new_phone !== ''}}">保 存</view> 41 + <view class='save_btn' wx:if="{{time_flag === ''}}" bindtap="next">下一步</view>
  42 + <button class='save_btn' wx:if="{{time_flag !== ''}}" form-type="submit">保 存</button>
  43 + </form>
  44 +
32 </view> 45 </view>
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 line-height: normal!important; 57 line-height: normal!important;
58 } 58 }
59 59
60 -.get_code::after { 60 +.get_code::after,.save_btn::after {
61 border: 0; 61 border: 0;
62 } 62 }
63 .save_btn{ 63 .save_btn{
@@ -111,7 +111,7 @@ Page({ @@ -111,7 +111,7 @@ Page({
111 * 生命周期函数--监听页面加载 111 * 生命周期函数--监听页面加载
112 */ 112 */
113 onLoad: function(options) { 113 onLoad: function(options) {
114 - console.log('options', options); 114 + // console.log('options', options);
115 this.setData({ 115 this.setData({
116 is_back: options.is_back?options.is_back:'', 116 is_back: options.is_back?options.is_back:'',
117 current_student: options.current_student?JSON.parse(options.current_student):'', 117 current_student: options.current_student?JSON.parse(options.current_student):'',
@@ -120,7 +120,6 @@ Page({ @@ -120,7 +120,6 @@ Page({
120 const student = JSON.parse(options.current_student) 120 const student = JSON.parse(options.current_student)
121 this.setData({ 121 this.setData({
122 name: student.name, 122 name: student.name,
123 - // sex:  
124 }) 123 })
125 } 124 }
126 }, 125 },
@@ -93,7 +93,6 @@ Page({ @@ -93,7 +93,6 @@ Page({
93 */ 93 */
94 onLoad: function (options) { 94 onLoad: function (options) {
95 const self = this; 95 const self = this;
96 - self.getUser();  
97 self.checkMobile(); 96 self.checkMobile();
98 }, 97 },
99 98
@@ -108,7 +107,8 @@ Page({ @@ -108,7 +107,8 @@ Page({
108 * 生命周期函数--监听页面显示 107 * 生命周期函数--监听页面显示
109 */ 108 */
110 onShow: function () { 109 onShow: function () {
111 - 110 + const self =this;
  111 + self.getUser();
112 }, 112 },
113 113
114 /** 114 /**
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 </view> 9 </view>
10 <view> 10 <view>
11 <view>{{personal_info.user_nickname}}</view> 11 <view>{{personal_info.user_nickname}}</view>
12 - <view class='phone_num'>{{personal_info.mobile}}</view> 12 + <view class='phone_num'>{{personal_info.hidden_mobile}}</view>
13 </view> 13 </view>
14 </view> 14 </view>
15 <view class='my_info_box' bindtap='myProfile'> 15 <view class='my_info_box' bindtap='myProfile'>
@@ -30,25 +30,25 @@ @@ -30,25 +30,25 @@
30 <view class='list_tab_box'> 30 <view class='list_tab_box'>
31 <view class='tab_item' bindtap="goNotConfirm"> 31 <view class='tab_item' bindtap="goNotConfirm">
32 <view class='list_img'> 32 <view class='list_img'>
33 - <image src='../../images/my1.png'></image> 33 + <image src='../../images/icon_daiqueren@2x.png'></image>
34 </view> 34 </view>
35 <view>待确认</view> 35 <view>待确认</view>
36 </view> 36 </view>
37 <view class='tab_item' bindtap="goAppointed"> 37 <view class='tab_item' bindtap="goAppointed">
38 <view class='list_img'> 38 <view class='list_img'>
39 - <image src='../../images/my1.png'></image> 39 + <image src='../../images/icon_yiyuyue@2x.png'></image>
40 </view> 40 </view>
41 <view>已预约</view> 41 <view>已预约</view>
42 </view> 42 </view>
43 <view class='tab_item' bindtap="goCanceled"> 43 <view class='tab_item' bindtap="goCanceled">
44 <view class='list_img'> 44 <view class='list_img'>
45 - <image src='../../images/my1.png'></image> 45 + <image src='../../images/icon_yiquxiao@2x.png'></image>
46 </view> 46 </view>
47 <view>已取消</view> 47 <view>已取消</view>
48 </view> 48 </view>
49 <view class='tab_item' bindtap="goEnded"> 49 <view class='tab_item' bindtap="goEnded">
50 <view class='list_img'> 50 <view class='list_img'>
51 - <image src='../../images/my1.png'></image> 51 + <image src='../../images/icon_yijieshu@2x.png'></image>
52 </view> 52 </view>
53 <view>已结束</view> 53 <view>已结束</view>
54 </view> 54 </view>
@@ -5,14 +5,31 @@ Page({ @@ -5,14 +5,31 @@ Page({
5 /** 5 /**
6 * 页面的初始数据 6 * 页面的初始数据
7 */ 7 */
8 - data: {}, 8 + data: {
  9 + modal_data: {
  10 + is_showModal: false,
  11 + currentBtn: null,
  12 + title: '确认删除吗?',
  13 + tab_left: '再想想',
  14 + tab_right: '确认删除',
  15 + },
  16 + state_data: {
  17 + is_showSuccessModal: false,
  18 + icon: '../../../images/fail.png',
  19 + title:'提示',
  20 + content: '该学员已绑定畅玩卡,不可删除!'
  21 + },
  22 + is_delete: false,
  23 + },
9 24
10 //更换手机号 25 //更换手机号
11 chargePhoneNum() { 26 chargePhoneNum() {
12 wx.navigateTo({ 27 wx.navigateTo({
13 url: '../chargePhoneNum/chargePhoneNum?old_phone=' + 28 url: '../chargePhoneNum/chargePhoneNum?old_phone=' +
14 this.data.personal_info.mobile + 29 this.data.personal_info.mobile +
15 - '&old_phone_hidden=' + this.data.personal_info.hidden_mobile, 30 + '&old_phone_hidden=' + this.data.personal_info.hidden_mobile +
  31 + '&user_nickname=' + this.data.personal_info.user_nickname +
  32 + '&avatar=' + this.data.personal_info.avatar,
16 }) 33 })
17 }, 34 },
18 //添加学员 35 //添加学员
@@ -45,27 +62,68 @@ Page({ @@ -45,27 +62,68 @@ Page({
45 url: '../myCard/myCard', 62 url: '../myCard/myCard',
46 }) 63 })
47 }, 64 },
  65 + //再想想
  66 + chooseNo(e) {
  67 + this.setData({
  68 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  69 + 'modal_data.is_showModal': false
  70 + });
  71 + },
  72 + //确认删除
  73 + chooseYes(e) {
  74 + this.setData({
  75 + 'modal_data.currentBtn': e.currentTarget.dataset.index,
  76 + 'modal_data.is_showModal': false,
  77 + is_delete: true,
  78 + });
  79 + if(this.data.is_delete) {
  80 + console.log('diaoyong');
  81 + this.delStudent(this.data.current_student);
  82 + }
  83 + },
  84 + //关闭删除成功弹框
  85 + modalConfirm() {
  86 + this.setData({'state_data.is_showSuccessModal': false})
  87 + },
48 //删除学员 88 //删除学员
49 delStudent(e) { 89 delStudent(e) {
50 - const current = e.currentTarget.dataset.index;  
51 - let url = '/user/Student/student_delete';  
52 - let header = {  
53 - "XX-token": wx.getStorageSync('token')  
54 - };  
55 - let params = {  
56 - id: this.data.student_list[current].id,  
57 - };  
58 - app.post(url, params, header).then((res) => {  
59 - console.log('删除学员结果', res);  
60 - });  
61 - const arr = []  
62 - this.data.student_list.map((item) => {  
63 - if(item.id !== this.data.student_list[current].id) {  
64 - arr.push(item) 90 + console.log(e);
  91 + // var current = e.currentTarget.dataset.index;
  92 + if(typeof(e) === "number") {
  93 + this.setData({current_student: e});
  94 + }else {
  95 + this.setData({current_student: e.currentTarget.dataset.index});
  96 + }
  97 + console.log('current_student',this.data.current_student);
  98 + if(this.data.is_delete) {
  99 + if(this.data.student_list[this.data.current_student].is_end === 1) {//该学员已绑卡,不能删除
  100 + this.setData({'state_data.is_showSuccessModal': true,is_delete: false})
  101 + }else {//可删除
  102 + let url = '/user/Student/student_delete';
  103 + let header = {
  104 + "XX-token": wx.getStorageSync('token')
  105 + };
  106 + let params = {
  107 + id: this.data.student_list[this.data.current_student].id,
  108 + };
  109 + app.post(url, params, header).then((res) => {
  110 + console.log('删除学员结果', res);
  111 + });
  112 + const arr = []
  113 + this.data.student_list.map((item) => {
  114 + if(item.id !== this.data.student_list[this.data.current_student].id) {
  115 + arr.push(item)
  116 + }
  117 + });
  118 + console.log('arr', arr);
  119 + this.setData({student_list: arr,is_delete: false});
65 } 120 }
66 - });  
67 - console.log('arr', arr);  
68 - this.setData({student_list: arr}) 121 + }else {
  122 + this.setData({
  123 + 'modal_data.is_showModal': true,
  124 + // 'state_data.is_showSuccessModal': true
  125 + });
  126 + }
69 }, 127 },
70 //获取用户基本信息 128 //获取用户基本信息
71 getUser() { 129 getUser() {
@@ -98,7 +156,6 @@ Page({ @@ -98,7 +156,6 @@ Page({
98 */ 156 */
99 onLoad: function (options) { 157 onLoad: function (options) {
100 const self = this; 158 const self = this;
101 - self.getUser();  
102 }, 159 },
103 160
104 /** 161 /**
@@ -113,6 +170,7 @@ Page({ @@ -113,6 +170,7 @@ Page({
113 */ 170 */
114 onShow: function () { 171 onShow: function () {
115 const self = this; 172 const self = this;
  173 + self.getUser();
116 self.getStudentList(); 174 self.getStudentList();
117 }, 175 },
118 176
@@ -8,14 +8,14 @@ @@ -8,14 +8,14 @@
8 </view> 8 </view>
9 </view> 9 </view>
10 <view class='info_box'> 10 <view class='info_box'>
11 - <view>手机号:{{personal_info.mobile}}</view> 11 + <view>手机号:{{personal_info.hidden_mobile}}</view>
12 <view class='info_content' bindtap='chargePhoneNum'>更换手机号</view> 12 <view class='info_content' bindtap='chargePhoneNum'>更换手机号</view>
13 </view> 13 </view>
14 -<view class='title_box'> 14 +<view class='title-box'>
15 <view class='list_title'>我的学员</view> 15 <view class='list_title'>我的学员</view>
16 <view class='add_box' bindtap='addUser'> 16 <view class='add_box' bindtap='addUser'>
17 <text class='iconfont icon-jia'></text> 17 <text class='iconfont icon-jia'></text>
18 - <text>添加学员</text> 18 + <text class="text">添加学员</text>
19 </view> 19 </view>
20 </view> 20 </view>
21 <!-- 未绑定年卡,就需要显示为“购卡”;已有年卡就显示为“续卡” --> 21 <!-- 未绑定年卡,就需要显示为“购卡”;已有年卡就显示为“续卡” -->
@@ -39,4 +39,7 @@ @@ -39,4 +39,7 @@
39 <view class='hint_info' wx:if="{{item.is_end === 1}}">畅玩卡周期:{{item.time}}</view> 39 <view class='hint_info' wx:if="{{item.is_end === 1}}">畅玩卡周期:{{item.time}}</view>
40 <view class='hint_info' wx:if="{{item.is_end === 2}}">无绑定畅玩卡</view> 40 <view class='hint_info' wx:if="{{item.is_end === 2}}">无绑定畅玩卡</view>
41 </view> 41 </view>
42 -</view>  
  42 +</view>
  43 +<import src="/templates/templates.wxml" />
  44 +<template is="modal" data="{{...modal_data}}"></template>
  45 +<template is="state-modal" data="{{...state_data}}"></template>
1 /* pages/MyProfile/MyProfile.wxss */ 1 /* pages/MyProfile/MyProfile.wxss */
2 - 2 +@import "../../../templates/templates.wxss";
  3 +.yes-no-btn text:nth-child(1) {
  4 + color: #3FA9F5;
  5 +}
  6 +.yes-no-btn text:nth-child(2) {
  7 + color: #666666;
  8 +}
  9 +.tips-word {
  10 + text-align: center;
  11 +}
3 page { 12 page {
4 background: #f5f5fa; 13 background: #f5f5fa;
5 } 14 }
@@ -55,14 +64,14 @@ page { @@ -55,14 +64,14 @@ page {
55 color: #3fa9f5; 64 color: #3fa9f5;
56 } 65 }
57 66
58 -.title_box { 67 +.title-box {
59 display: flex; 68 display: flex;
60 align-items: center; 69 align-items: center;
61 justify-content: space-between; 70 justify-content: space-between;
62 padding: 20rpx 30rpx; 71 padding: 20rpx 30rpx;
63 } 72 }
64 73
65 -.icon-jia { 74 +.title-box .icon-jia {
66 display: flex; 75 display: flex;
67 align-items: center; 76 align-items: center;
68 justify-content: center; 77 justify-content: center;
@@ -74,6 +83,7 @@ page { @@ -74,6 +83,7 @@ page {
74 padding: 5rpx; 83 padding: 5rpx;
75 box-sizing: border-box; 84 box-sizing: border-box;
76 margin-right: 8rpx; 85 margin-right: 8rpx;
  86 + font-size: 24rpx;
77 } 87 }
78 88
79 .add_box { 89 .add_box {
@@ -83,7 +93,10 @@ page { @@ -83,7 +93,10 @@ page {
83 display: flex; 93 display: flex;
84 align-items: center; 94 align-items: center;
85 } 95 }
86 - 96 +.add_box .text {
  97 + color: #3FA9F5;
  98 + font-size: 24rpx;
  99 +}
87 .list_title { 100 .list_title {
88 position: relative; 101 position: relative;
89 padding-left: 17rpx; 102 padding-left: 17rpx;
@@ -10,9 +10,14 @@ Page({ @@ -10,9 +10,14 @@ Page({
10 modal_data: { 10 modal_data: {
11 is_showModal: false, 11 is_showModal: false,
12 currentBtn: null, 12 currentBtn: null,
  13 + title: '当前学员还没有购买/兑换畅玩卡,暂不能预约实验活动,是否马上购买/兑换?',
  14 + tab_left: '否',
  15 + tab_right: '是',
13 }, 16 },
14 state_data: { 17 state_data: {
15 is_showSuccessModal: false, 18 is_showSuccessModal: false,
  19 + title:'恭喜您!',
  20 + content: '您已经预约成功!'
16 }, 21 },
17 student_list: [{id:1,name:'张三',checked: false}, 22 student_list: [{id:1,name:'张三',checked: false},
18 {id:2,name:'李思思', checked: false}, 23 {id:2,name:'李思思', checked: false},
@@ -23,30 +28,115 @@ Page({ @@ -23,30 +28,115 @@ Page({
23 num_arr: [], 28 num_arr: [],
24 session_info: {}, 29 session_info: {},
25 student_num: 5, 30 student_num: 5,
  31 + is_choose_student: false,
26 }, 32 },
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 - // } 33 + //获取学员列表
  34 + getStudentList() {
  35 + let url = '/user/Student/student_list';
  36 + let header = {
  37 + "XX-token": wx.getStorageSync('token')
  38 + };
  39 + let params = {
  40 + page: 1,
  41 + };
  42 + app.post(url,params,header).then((res) => {
  43 + console.log('学员列表',res);
  44 + // console.log('list', list);
  45 + var new_arr = [];
  46 + res.list.forEach((item) => {
  47 + new_arr.push({ ...item, checked: false })
  48 + });//给每一项添加checked属性
  49 + console.log(new_arr);
  50 + this.setData({student_list: new_arr})
  51 + })
  52 + },
  53 + //选择学员(待确认可选)
  54 + chooseChildren(e) {
  55 + console.log('29------e', e);
  56 + // const current = e.currentTarget.dataset.index;
  57 + const that = this;
  58 + if(that.data.detail.status === 1) {//待确认可选择学员
  59 + console.log(e.detail);
  60 + var index_arr = e.detail.value;
  61 + console.log(index_arr);
  62 + //新建数组全部设置为没被选中
  63 + var new_arr = [];
  64 + that.data.student_list.forEach((item) => {
  65 + new_arr.push({ ...item, checked: false })
  66 + });//给每一项添加checked属性
  67 + console.log('new_arr',new_arr);
  68 + var new_itmes = new_arr;
  69 + console.log('new_itmes', new_itmes);
  70 + if(that.data.detail.num >=2) {//两个学员预约时
  71 + console.log('两个学员');
  72 + if (index_arr.length > 2) {
  73 + //取出倒数两个值
  74 + var key1 = index_arr[index_arr.length - 1];
  75 + var key2 = index_arr[index_arr.length - 2];
  76 + // var key3 = skin[skin.length - 3];
  77 + // console.log(key1, key2, key3);
  78 + console.log(key1, key2);
  79 + console.log(new_itmes[key1]['checked'],new_itmes[key1].id,new_itmes[key2].id);
  80 + //设置最后两个值为选中状态
  81 + new_itmes[key1]['checked'] = true
  82 + new_itmes[key2]['checked'] = true
  83 + // new_itmes[key3 - 1]['checked'] = 'true'
  84 + //删除被选中的第一个值
  85 + index_arr.splice(0, 1);
  86 + console.log('skin',index_arr);
  87 + const id_arr = [];
  88 + id_arr.push(new_itmes[key1].id,new_itmes[key2].id);
  89 + that.setData({student_id: id_arr.join(','),is_choose_student:true});
  90 + console.log('student_id', that.data.student_id);
  91 + } else {
  92 + //被选中少于两个,直接设置被选中
  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,is_choose_student:true});
  99 + console.log('student_id', that.data.student_id);
  100 + }
  101 + }else if(that.data.detail.num <2){//一个学员预约时
  102 + console.log('一个学员');
  103 + if (index_arr.length > 1) {
  104 + //取出倒数一个值
  105 + var key1 = index_arr[index_arr.length - 1];
  106 + // var key2 = skin[skin.length - 2];
  107 + // var key3 = skin[skin.length - 3];
  108 + // console.log(key1, key2, key3);
  109 + console.log(key1);
  110 + console.log(new_itmes[key1]['checked'],new_itmes[key1].id);
  111 + //设置最后一个值为选中状态
  112 + new_itmes[key1]['checked'] = true
  113 + // new_itmes[key2]['checked'] = true
  114 + // new_itmes[key3 - 1]['checked'] = 'true'
  115 + //删除被选中的第一个值
  116 + index_arr.splice(0, 1);
  117 + console.log('skin',index_arr);
  118 + that.setData({student_id: new_itmes[key1].id,is_choose_student:true});
  119 + console.log('student_id', that.data.student_id);
  120 + } else {
  121 + //被选中少于1个,直接设置被选中
  122 + for (var i = 0; i < index_arr.length; i++) {
  123 + var key = index_arr[i]
  124 + console.log('key', key);
  125 + new_itmes[key]['checked'] = true
  126 + }
  127 + that.setData({student_id: new_itmes[key].id,is_choose_student:true});
  128 + console.log('student_id', that.data.student_id);
  129 + }
  130 + }
  131 +
  132 + //存入
  133 + that.setData({
  134 + index_arr: index_arr,
  135 + // text: text,
  136 + student_list: new_itmes,
  137 + })
  138 + }
  139 +
50 }, 140 },
51 chooseNo(e) { 141 chooseNo(e) {
52 this.setData({ 142 this.setData({
@@ -69,54 +159,74 @@ Page({ @@ -69,54 +159,74 @@ Page({
69 }, 159 },
70 disableScroll() {}, 160 disableScroll() {},
71 addStudent() { 161 addStudent() {
72 - wx.navigateTo({url: './add-student/add-student?is_back=' + true}) 162 + wx.navigateTo({url: '../../index/confirm-appointment-info/add-student/add-student?is_back=' + true})
73 }, 163 },
74 - //获取预约信息 164 + //获取预约详情
75 getAppointmentInfo() { 165 getAppointmentInfo() {
76 - let url = '/portal/Experiment/confirm_session'; 166 + let url = '/user/Reservation/reservation_detail';
77 let header = { 167 let header = {
78 "XX-token": wx.getStorageSync('token') 168 "XX-token": wx.getStorageSync('token')
79 }; 169 };
80 let params = { 170 let params = {
81 - experiment_id: this.data.experiment_id,  
82 - session_id: this.data.session_id,  
83 reservation_id: this.data.reservation_id, 171 reservation_id: this.data.reservation_id,
84 }; 172 };
85 app.post(url,params,header).then((res) => { 173 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); 174 + console.log('预约详情',res);
98 this.setData({ 175 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); 176 + detail: res.info,
  177 + });
  178 + if(this.data.detail.status === 1) {
  179 + this.getStudentList();
  180 + }
  181 + });
  182 + },
  183 + //取消
  184 + clickCancel(e) {
  185 + console.log('取消',e);
  186 + let url = '/user/Reservation/reservation_cancel';
  187 + let header = {
  188 + "XX-token": wx.getStorageSync('token')
  189 + };
  190 + let params = {
  191 + reservation_id: this.data.reservation_id,
  192 + formId: e.detail.formId,
  193 + };
  194 + app.post(url, params,header).then((res) => {
  195 + console.log('取消',res);
  196 + // this.setData({orderList: res.list})
104 }) 197 })
105 }, 198 },
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 - // }, 199 + //确认
  200 + clickConfirm(e) {
  201 + console.log(e.detail);
  202 + if(this.data.student_list.length === 0) {
  203 + wx.showToast({title: '请添加学员!',icon:'none'})
  204 + }else if(!this.data.is_choose_student) {
  205 + wx.showToast({title: '请选择学员!',icon:'none'})
  206 + }else {
  207 + // this.setData({'modal_data.is_showModal': true})
  208 + let url = '/portal/Experiment/confirm_session_submit';
  209 + let header = {
  210 + "XX-token": wx.getStorageSync('token')
  211 + };
  212 + let params = {
  213 + _type: 2,//2,活动预约成功
  214 + formId: e.detail.formId,
  215 + experiment_id: this.data.detail.experiment_id,
  216 + session_id: this.data.detail.session_id,
  217 + reservation_id: this.data.reservation_id,
  218 + students: this.data.student_id,
  219 + };
  220 + app.post(url,params,header).then((res) => {
  221 + console.log('提交预约信息',res);
  222 + if(res.data.card_modal === 1) {
  223 + this.setData({'modal_data.is_showModal': true});
  224 + }else if(res.data.reservation_modal === 1) {
  225 + this.setData({'state_data.is_showSuccessModal': true});
  226 + }
  227 + })
  228 + }
  229 + },
120 /** 230 /**
121 * 生命周期函数--监听页面加载 231 * 生命周期函数--监听页面加载
122 */ 232 */
@@ -126,6 +236,7 @@ Page({ @@ -126,6 +236,7 @@ Page({
126 console.log(options); 236 console.log(options);
127 self.setData({ 237 self.setData({
128 currentTab: +options.currentTab?+options.currentTab:'', 238 currentTab: +options.currentTab?+options.currentTab:'',
  239 + reservation_id: +options.reservation_id?options.reservation_id:'',
129 }); 240 });
130 }, 241 },
131 242
@@ -142,9 +253,7 @@ Page({ @@ -142,9 +253,7 @@ Page({
142 onShow: function() { 253 onShow: function() {
143 console.log('show'); 254 console.log('show');
144 const self = this; 255 const self = this;
145 - // self.getStudentList();  
146 self.getAppointmentInfo(); 256 self.getAppointmentInfo();
147 -  
148 setTimeout(function() { 257 setTimeout(function() {
149 self.setData({ 258 self.setData({
150 show: true 259 show: true
1 <!--pages/index/confirm-appointment-info/confirm-appointment-info.wxml--> 1 <!--pages/index/confirm-appointment-info/confirm-appointment-info.wxml-->
2 <view class="content"> 2 <view class="content">
3 - <view class="tips {{show?'active':''}}" wx:if="{{currentTab === 1}}"> 3 + <view class="tips {{show?'active':''}}" wx:if="{{detail.status === 1}}">
4 <!--<view>--> 4 <!--<view>-->
5 <view class="iconfont icon-jinggao"></view> 5 <view class="iconfont icon-jinggao"></view>
6 <text>请在15分钟内确认预约,超时系统将自动取消!</text> 6 <text>请在15分钟内确认预约,超时系统将自动取消!</text>
@@ -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">{{session_info.time}}</text> 12 + <text class="date-time">{{detail.time}}</text>
13 </view> 13 </view>
14 14
15 <view class="address"> 15 <view class="address">
@@ -19,14 +19,14 @@ @@ -19,14 +19,14 @@
19 </view> 19 </view>
20 <view class="address-detail"> 20 <view class="address-detail">
21 <!--<text>--> 21 <!--<text>-->
22 - {{session_info.address}} 22 + {{detail.address}}
23 <!--</text>--> 23 <!--</text>-->
24 </view> 24 </view>
25 </view> 25 </view>
26 <view class="phone-num"> 26 <view class="phone-num">
27 <view class="line"></view> 27 <view class="line"></view>
28 <text>预约电话 :</text> 28 <text>预约电话 :</text>
29 - <text class="phone">188****8888</text> 29 + <text class="phone">{{detail.mobile}}</text>
30 </view> 30 </view>
31 <view class="children-name"> 31 <view class="children-name">
32 <view class="left-name"> 32 <view class="left-name">
@@ -35,48 +35,57 @@ @@ -35,48 +35,57 @@
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 - <form bindsubmit="formSubmit" bindreset="formReset" report-submit="true"> 38 + <!--<form bindsubmit="formSubmit" bindreset="formReset" report-submit="true">-->
39 <view class="name-box"> 39 <view class="name-box">
40 <!--<view class="check-box" wx:for="{{student_list}}" wx:key="index" bindtap="chooseChildren" data-index="{{index}}">--> 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>--> 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>--> 42 <!--<image src="../../../images/choose_icon.png" wx:if="{{item.is_choose}}" class="check-icon"></image>-->
43 <!--</view>--> 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"> 44 + <checkbox-group class="check-box" bindchange="{{detail.status === 1?'chooseChildren':''}}">
  45 + <label class="checkbox" wx:for="{{detail.status === 1?student_list:detail.reservation_student}}" wx:for-item="i" wx:key="index">
46 <view class="name {{i.checked?'change-color':''}}">{{i.name}}</view> 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"/> 47 + <checkbox wx:if="{{detail.status === 1}}" value="{{index}}" checked="{{i.checked}}" id="{{i.id}}" name="student_id" class="checkbox"/>
48 </label> 48 </label>
49 </checkbox-group> 49 </checkbox-group>
50 </view> 50 </view>
  51 + <!--</form>-->
51 52
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> 53 + <!--待确认-->
  54 + <view class="footer-box1" wx:if="{{detail.status === 1}}">
  55 + <view class="one_box">
  56 + <form bindsubmit="clickCancel" bindreset="formReset" report-submit="true">
  57 + <button class="cancel" form-type="submit">取消</button>
  58 + </form>
  59 + <form bindsubmit="clickConfirm" bindreset="formReset" report-submit="true">
  60 + <button class="confirm" form-type="submit">
  61 + <text class="text">确认</text>
  62 + </button>
  63 + </form>
  64 + </view>
58 </view> 65 </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> 66 + <!--已预约-->
  67 + <view class="footer-box" wx:if="{{detail.status === 2}}">
  68 + <form bindsubmit="clickCancel" bindreset="formReset" report-submit="true">
  69 + <view class="cancel_box">
  70 + <text>注:活动开始前 {{detail.active_time}} 小时可取消预约</text>
  71 + <button class="cancel_btn" form-type="submit">
  72 + <text class="text">取消预约</text>
  73 + </button>
  74 + </view>
  75 + </form>
65 </view> 76 </view>
66 - </view>  
67 <!--已取消--> 77 <!--已取消-->
68 - <view class="footer-box2" wx:if="{{currentTab === 3}}">  
69 - <view class="two_box" form-type="submit" bindtap="formSubmit"> 78 + <view class="footer-box2" wx:if="{{detail.status === 3}}">
  79 + <view class="two_box">
70 <view>预约已取消</view> 80 <view>预约已取消</view>
71 </view> 81 </view>
72 </view> 82 </view>
73 <!--已结束--> 83 <!--已结束-->
74 - <view class="footer-box2" wx:if="{{currentTab === 4}}">  
75 - <view class="two_box" form-type="submit" bindtap="formSubmit"> 84 + <view class="footer-box2" wx:if="{{detail.status === 4}}">
  85 + <view class="two_box">
76 <view>预约已结束</view> 86 <view>预约已结束</view>
77 </view> 87 </view>
78 </view> 88 </view>
79 - </form>  
80 <import src="/templates/templates.wxml" /> 89 <import src="/templates/templates.wxml" />
81 <template is="modal" data="{{...modal_data}}"></template> 90 <template is="modal" data="{{...modal_data}}"></template>
82 <template is="state-modal" data="{{...state_data}}"></template> 91 <template is="state-modal" data="{{...state_data}}"></template>
@@ -25,14 +25,18 @@ @@ -25,14 +25,18 @@
25 align-items: center; 25 align-items: center;
26 justify-content: space-between; 26 justify-content: space-between;
27 } 27 }
  28 +.one_box form {
  29 + width: 50%;
  30 +}
28 .one_box .cancel, .one_box .confirm{ 31 .one_box .cancel, .one_box .confirm{
29 - width: 50%; 32 + width: 100%;
30 height: 94rpx; 33 height: 94rpx;
31 color: #ffffff; 34 color: #ffffff;
32 font-size: 36rpx; 35 font-size: 36rpx;
33 display: flex; 36 display: flex;
34 align-items: center; 37 align-items: center;
35 justify-content: center; 38 justify-content: center;
  39 + border-radius: 0;
36 } 40 }
37 .one_box .cancel { 41 .one_box .cancel {
38 background-color: #FC5B63; 42 background-color: #FC5B63;
@@ -40,6 +44,9 @@ @@ -40,6 +44,9 @@
40 .one_box .confirm { 44 .one_box .confirm {
41 background-color: #3FA9F5; 45 background-color: #3FA9F5;
42 } 46 }
  47 +.one_box .cancel::after, .one_box .confirm::after {
  48 + border: 0;
  49 +}
43 .cancel_box { 50 .cancel_box {
44 width: 100%; 51 width: 100%;
45 display: flex; 52 display: flex;
@@ -57,7 +64,11 @@ @@ -57,7 +64,11 @@
57 height: 40rpx; 64 height: 40rpx;
58 display: flex; 65 display: flex;
59 align-items: center; 66 align-items: center;
60 - /* padding: 10rpx; */ 67 + margin: 0;
  68 + padding: 0;
  69 +}
  70 +.cancel_btn::after {
  71 + border: 0;
61 } 72 }
62 .cancel_btn .text { 73 .cancel_btn .text {
63 color: #ffffff; 74 color: #ffffff;
1 // pages/serviceWeChat/serviceWeChat.js 1 // pages/serviceWeChat/serviceWeChat.js
2 Page({ 2 Page({
3 3
4 - /**  
5 - * 页面的初始数据  
6 - */  
7 - data: {  
8 - imgsUrl: ['../../../images/head.png']  
9 - },  
10 - //长按保存图片  
11 - saveImg(e) {  
12 - console.log(e)  
13 - var current = e.target.dataset.src  
14 - wx.previewImage({  
15 - current: current,  
16 - urls: this.data.imgsUrl  
17 - })  
18 - },  
19 - /**  
20 - * 生命周期函数--监听页面加载  
21 - */  
22 - onLoad: function(options) {  
23 -  
24 - },  
25 -  
26 - /**  
27 - * 生命周期函数--监听页面初次渲染完成  
28 - */  
29 - onReady: function() {  
30 -  
31 - },  
32 -  
33 - /**  
34 - * 生命周期函数--监听页面显示  
35 - */  
36 - onShow: function() {  
37 -  
38 - },  
39 -  
40 - /**  
41 - * 生命周期函数--监听页面隐藏  
42 - */  
43 - onHide: function() {  
44 -  
45 - },  
46 -  
47 - /**  
48 - * 生命周期函数--监听页面卸载  
49 - */  
50 - onUnload: function() {  
51 -  
52 - },  
53 -  
54 - /**  
55 - * 页面相关事件处理函数--监听用户下拉动作  
56 - */  
57 - onPullDownRefresh: function() {  
58 -  
59 - },  
60 -  
61 - /**  
62 - * 页面上拉触底事件的处理函数  
63 - */  
64 - onReachBottom: function() {  
65 -  
66 - },  
67 -  
68 - /**  
69 - * 用户点击右上角分享  
70 - */  
71 - onShareAppMessage: function() {  
72 -  
73 - } 4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + imgsUrl: ['../../../images/head.png'],
  9 + wxn: '1111111'
  10 + },
  11 + //长按保存图片
  12 + saveImg(e) {
  13 + console.log(e)
  14 + var current = e.target.dataset.src
  15 + wx.previewImage({
  16 + current: current,
  17 + urls: this.data.imgsUrl
  18 + })
  19 + },
  20 + //复制客服微信号
  21 + clickCopy() {
  22 + wx.setClipboardData({
  23 + data: this.data.wxn,
  24 + success: function(res) {
  25 + console.log('复制微信号', res);
  26 + }
  27 + });
  28 + },
  29 + /**
  30 + * 生命周期函数--监听页面加载
  31 + */
  32 + onLoad: function (options) {
  33 +
  34 + },
  35 +
  36 + /**
  37 + * 生命周期函数--监听页面初次渲染完成
  38 + */
  39 + onReady: function () {
  40 +
  41 + },
  42 +
  43 + /**
  44 + * 生命周期函数--监听页面显示
  45 + */
  46 + onShow: function () {
  47 +
  48 + },
  49 +
  50 + /**
  51 + * 生命周期函数--监听页面隐藏
  52 + */
  53 + onHide: function () {
  54 +
  55 + },
  56 +
  57 + /**
  58 + * 生命周期函数--监听页面卸载
  59 + */
  60 + onUnload: function () {
  61 +
  62 + },
  63 +
  64 + /**
  65 + * 页面相关事件处理函数--监听用户下拉动作
  66 + */
  67 + onPullDownRefresh: function () {
  68 +
  69 + },
  70 +
  71 + /**
  72 + * 页面上拉触底事件的处理函数
  73 + */
  74 + onReachBottom: function () {
  75 +
  76 + },
  77 +
  78 + /**
  79 + * 用户点击右上角分享
  80 + */
  81 + onShareAppMessage: function () {
  82 +
  83 + }
74 }) 84 })
@@ -8,4 +8,4 @@ @@ -8,4 +8,4 @@
8 短的汉字以内的文字介绍还有简短的汉 8 短的汉字以内的文字介绍还有简短的汉
9 字以内的文字介绍还有简短的汉字以</view> 9 字以内的文字介绍还有简短的汉字以</view>
10 </view> 10 </view>
11 -<view class='bottom_btn'>点击复制客服微信号</view>  
  11 +<view class='bottom_btn' bindtap="clickCopy">点击复制客服微信号</view>
@@ -11,51 +11,49 @@ Page({ @@ -11,51 +11,49 @@ Page({
11 }, 11 },
12 // 获取用户信息 12 // 获取用户信息
13 start(e) { 13 start(e) {
14 - let that = this;  
15 - let url = '/wxapp/public/login';  
16 - let params = {  
17 - encrypted_data: e.detail.encryptedData,  
18 - iv: e.detail.iv,  
19 - raw_data: e.detail.rawData,  
20 - signature: e.detail.signature,  
21 - openid: that.data.openid,  
22 - session_key: that.data.session_key,  
23 - }  
24 - app.post(url, params).then((ret) => {  
25 - wx.setStorageSync('token', ret.token)  
26 - app.globalData.userInfo = ret.user_type  
27 - // console.log('userInfo',app.globalData.userInfo,ret);  
28 - wx.switchTab({  
29 - url: '/pages/index/index', 14 + let self = this;
  15 + wx.checkSession({
  16 + success: function(){
  17 + console.log('未过期');
  18 + //session_key 未过期,并且在本生命周期一直有效
  19 + let url = '/wxapp/public/login';
  20 + let params = {
  21 + encrypted_data: e.detail.encryptedData,
  22 + iv: e.detail.iv,
  23 + raw_data: e.detail.rawData,
  24 + signature: e.detail.signature,
  25 + openid: self.data.openid,
  26 + session_key: self.data.session_key,
  27 + };
  28 + app.post(url, params).then((ret) => {
  29 + wx.setStorageSync('token', ret.token);
  30 + app.globalData.userInfo = ret.user_type;
  31 + // console.log('userInfo',app.globalData.userInfo,ret);
  32 + wx.switchTab({
  33 + url: '/pages/index/index',
  34 + })
30 }) 35 })
  36 + },
  37 + fail: function(){
  38 + console.log('session_key 已经失效');
  39 + // session_key 已经失效,需要重新执行登录流程
  40 + self.login() //重新登录
  41 + }
31 }) 42 })
32 }, 43 },
33 - example() {  
34 - app.post(url, {  
35 - id: 1  
36 - }, {}).then((res) => {  
37 - this.setData({  
38 - code: res  
39 - })  
40 - }).catch((err) => {  
41 - })  
42 - },  
43 - /**  
44 - * 生命周期函数--监听页面加载  
45 - */  
46 - onLoad: function (options) {  
47 - let that = this  
48 - let url = '/wxapp/public/getSessionKey' 44 + login() {
  45 + let self = this;
  46 + let url = '/wxapp/public/getSessionKey';
49 wx.login({ 47 wx.login({
50 success: function (res) { 48 success: function (res) {
51 // console.log(res) 49 // console.log(res)
52 app.post(url, { 50 app.post(url, {
53 code: res.code 51 code: res.code
54 }, {}).then((ret) => { 52 }, {}).then((ret) => {
55 - that.setData({ 53 + self.setData({
56 openid: ret.openid, 54 openid: ret.openid,
57 session_key: ret.session_key 55 session_key: ret.session_key
58 - }) 56 + });
59 }) 57 })
60 }, 58 },
61 fail: function (res) { 59 fail: function (res) {
@@ -64,6 +62,12 @@ Page({ @@ -64,6 +62,12 @@ Page({
64 }, 62 },
65 }) 63 })
66 }, 64 },
  65 + /**
  66 + * 生命周期函数--监听页面加载
  67 + */
  68 + onLoad: function (options) {
  69 +
  70 + },
67 71
68 /** 72 /**
69 * 生命周期函数--监听页面初次渲染完成 73 * 生命周期函数--监听页面初次渲染完成
@@ -76,7 +80,8 @@ Page({ @@ -76,7 +80,8 @@ Page({
76 * 生命周期函数--监听页面显示 80 * 生命周期函数--监听页面显示
77 */ 81 */
78 onShow: function () { 82 onShow: function () {
79 - 83 + let self = this;
  84 + self.login();
80 }, 85 },
81 86
82 /** 87 /**
@@ -53,10 +53,10 @@ @@ -53,10 +53,10 @@
53 </view> 53 </view>
54 <view class="modalBackground Augly-bouncein"> 54 <view class="modalBackground Augly-bouncein">
55 <view class="modal"> 55 <view class="modal">
56 - <view class="tips-word">当前学员还没有购买/兑换畅玩卡,暂不能预约实验活动,是否马上购买/兑换?</view> 56 + <view class="tips-word">{{title}}</view>
57 <view class="yes-no-btn"> 57 <view class="yes-no-btn">
58 - <text bindtap="chooseNo" class="{{currentBtn == 0?'change-color':''}}" data-index="{{0}}">否</text>  
59 - <text bindtap="chooseYes" class="{{currentBtn == 1?'change-color':''}}" data-index="{{1}}">是</text> 58 + <text bindtap="chooseNo" data-index="{{0}}">{{tab_left}}</text>
  59 + <text bindtap="chooseYes" data-index="{{1}}" class="yes">{{tab_right}}</text>
60 </view> 60 </view>
61 </view> 61 </view>
62 </view> 62 </view>
@@ -73,10 +73,10 @@ @@ -73,10 +73,10 @@
73 </view> 73 </view>
74 <view class="modalBackground Augly-bouncein"> 74 <view class="modalBackground Augly-bouncein">
75 <view class="success-modal"> 75 <view class="success-modal">
76 - <image src="../../../images/success.jpg"></image>  
77 - <view class="congratulations">恭喜您</view>  
78 - <view class="appointment-success">您已经预约成功!</view>  
79 - <view class="confirm-btn" bindtap="modalConfirm">确定</view> 76 + <image src="{{icon}}"></image>
  77 + <view class="congratulations {{title==='提示'?'change-red':''}}">{{title}}</view>
  78 + <view class="appointment-success">{{content}}</view>
  79 + <view class="confirm-btn {{title==='提示'?'change-bg-red':''}}" bindtap="modalConfirm">确定</view>
80 </view> 80 </view>
81 </view> 81 </view>
82 </view> 82 </view>
@@ -101,7 +101,7 @@ @@ -101,7 +101,7 @@
101 } 101 }
102 .modal { 102 .modal {
103 width: 500rpx; 103 width: 500rpx;
104 - height: 260rpx; 104 + /*height: 260rpx;*/
105 /* height: 1100rpx; */ 105 /* height: 1100rpx; */
106 background: #ffffff; 106 background: #ffffff;
107 border-radius: 10rpx; 107 border-radius: 10rpx;
@@ -121,8 +121,8 @@ @@ -121,8 +121,8 @@
121 border-radius: 22rpx; 121 border-radius: 22rpx;
122 } 122 }
123 .success-modal image { 123 .success-modal image {
124 - width: 236rpx;  
125 - height: 170rpx; 124 + width: 200rpx;
  125 + height: 200rpx;
126 } 126 }
127 .congratulations { 127 .congratulations {
128 font-size: 28rpx; 128 font-size: 28rpx;
@@ -131,7 +131,7 @@ @@ -131,7 +131,7 @@
131 } 131 }
132 .appointment-success { 132 .appointment-success {
133 font-size: 24rpx; 133 font-size: 24rpx;
134 - margin-bottom: 60rpx; 134 + margin-bottom: 40rpx;
135 } 135 }
136 .confirm-btn { 136 .confirm-btn {
137 width: 80%; 137 width: 80%;
@@ -165,9 +165,18 @@ @@ -165,9 +165,18 @@
165 text-align: center; 165 text-align: center;
166 line-height: 68rpx; 166 line-height: 68rpx;
167 } 167 }
  168 +.yes-no-btn text:nth-child(2) {
  169 + color: #3FA9F5;
  170 +}
168 .yes-no-btn text:nth-child(1) { 171 .yes-no-btn text:nth-child(1) {
169 border-right: 1rpx solid #d3d3d3; 172 border-right: 1rpx solid #d3d3d3;
170 } 173 }
171 .change-color { 174 .change-color {
172 color: #3FA9F5; 175 color: #3FA9F5;
  176 +}
  177 +.change-red {
  178 + color: #FC5B63;
  179 +}
  180 +.change-bg-red {
  181 + background-color: #FC5B63;
173 } 182 }