正在显示
97 个修改的文件
包含
4505 行增加
和
0 行删除
.idea/ScienceCaptain.iml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<module type="WEB_MODULE" version="4"> | ||
3 | + <component name="NewModuleRootManager"> | ||
4 | + <content url="file://$MODULE_DIR$"> | ||
5 | + <excludeFolder url="file://$MODULE_DIR$/.tmp" /> | ||
6 | + <excludeFolder url="file://$MODULE_DIR$/temp" /> | ||
7 | + <excludeFolder url="file://$MODULE_DIR$/tmp" /> | ||
8 | + </content> | ||
9 | + <orderEntry type="inheritedJdk" /> | ||
10 | + <orderEntry type="sourceFolder" forTests="false" /> | ||
11 | + </component> | ||
12 | +</module> |
.idea/misc.xml
0 → 100644
.idea/modules.xml
0 → 100644
.idea/vcs.xml
0 → 100644
.idea/workspace.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project version="4"> | ||
3 | + <component name="ChangeListManager"> | ||
4 | + <list default="true" id="632eecf6-91e3-4185-aea4-06d243e51935" name="Default" comment="commit" /> | ||
5 | + <ignored path="$PROJECT_DIR$/.tmp/" /> | ||
6 | + <ignored path="$PROJECT_DIR$/temp/" /> | ||
7 | + <ignored path="$PROJECT_DIR$/tmp/" /> | ||
8 | + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | ||
9 | + <option name="TRACKING_ENABLED" value="true" /> | ||
10 | + <option name="SHOW_DIALOG" value="false" /> | ||
11 | + <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||
12 | + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||
13 | + <option name="LAST_RESOLUTION" value="IGNORE" /> | ||
14 | + </component> | ||
15 | + <component name="FileEditorManager"> | ||
16 | + <leaf> | ||
17 | + <file leaf-file-name="app.json" pinned="false" current-in-tab="true"> | ||
18 | + <entry file="file://$PROJECT_DIR$/app.json"> | ||
19 | + <provider selected="true" editor-type-id="text-editor"> | ||
20 | + <state relative-caret-position="270"> | ||
21 | + <caret line="19" column="36" lean-forward="true" selection-start-line="19" selection-start-column="36" selection-end-line="19" selection-end-column="36" /> | ||
22 | + </state> | ||
23 | + </provider> | ||
24 | + </entry> | ||
25 | + </file> | ||
26 | + <file leaf-file-name="myProfile.wxml" pinned="false" current-in-tab="false"> | ||
27 | + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml"> | ||
28 | + <provider selected="true" editor-type-id="text-editor" /> | ||
29 | + </entry> | ||
30 | + </file> | ||
31 | + <file leaf-file-name="all-appointment.json" pinned="false" current-in-tab="false"> | ||
32 | + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.json"> | ||
33 | + <provider selected="true" editor-type-id="text-editor" /> | ||
34 | + </entry> | ||
35 | + </file> | ||
36 | + <file leaf-file-name="all-appointment.wxml" pinned="false" current-in-tab="false"> | ||
37 | + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml"> | ||
38 | + <provider selected="true" editor-type-id="text-editor" /> | ||
39 | + </entry> | ||
40 | + </file> | ||
41 | + <file leaf-file-name="protocol.wxml" pinned="false" current-in-tab="false"> | ||
42 | + <entry file="file://$PROJECT_DIR$/pages/my/protocol/protocol.wxml"> | ||
43 | + <provider selected="true" editor-type-id="text-editor" /> | ||
44 | + </entry> | ||
45 | + </file> | ||
46 | + <file leaf-file-name="protocol.js" pinned="false" current-in-tab="false"> | ||
47 | + <entry file="file://$PROJECT_DIR$/pages/my/protocol/protocol.js"> | ||
48 | + <provider selected="true" editor-type-id="text-editor" /> | ||
49 | + </entry> | ||
50 | + </file> | ||
51 | + <file leaf-file-name="myCard.wxml" pinned="false" current-in-tab="false"> | ||
52 | + <entry file="file://$PROJECT_DIR$/pages/my/myCard/myCard.wxml"> | ||
53 | + <provider selected="true" editor-type-id="text-editor" /> | ||
54 | + </entry> | ||
55 | + </file> | ||
56 | + </leaf> | ||
57 | + </component> | ||
58 | + <component name="Git.Settings"> | ||
59 | + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||
60 | + </component> | ||
61 | + <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
62 | + <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> | ||
63 | + <component name="JsGulpfileManager"> | ||
64 | + <detection-done>true</detection-done> | ||
65 | + <sorting>DEFINITION_ORDER</sorting> | ||
66 | + </component> | ||
67 | + <component name="NodePackageJsonFileManager"> | ||
68 | + <packageJsonPaths /> | ||
69 | + </component> | ||
70 | + <component name="ProjectFrameBounds" extendedState="6"> | ||
71 | + <option name="x" value="339" /> | ||
72 | + <option name="y" value="30" /> | ||
73 | + <option name="width" value="1936" /> | ||
74 | + <option name="height" value="1047" /> | ||
75 | + </component> | ||
76 | + <component name="ProjectView"> | ||
77 | + <navigator proportions="" version="1"> | ||
78 | + <foldersAlwaysOnTop value="true" /> | ||
79 | + </navigator> | ||
80 | + <panes> | ||
81 | + <pane id="Scope" /> | ||
82 | + <pane id="ProjectPane"> | ||
83 | + <subPane> | ||
84 | + <expand> | ||
85 | + <path> | ||
86 | + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> | ||
87 | + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> | ||
88 | + </path> | ||
89 | + <path> | ||
90 | + <item name="ScienceCaptain" type="b2602c69:ProjectViewProjectNode" /> | ||
91 | + <item name="ScienceCaptain" type="462c0819:PsiDirectoryNode" /> | ||
92 | + <item name="pages" type="462c0819:PsiDirectoryNode" /> | ||
93 | + </path> | ||
94 | + </expand> | ||
95 | + <select /> | ||
96 | + </subPane> | ||
97 | + </pane> | ||
98 | + </panes> | ||
99 | + </component> | ||
100 | + <component name="PropertiesComponent"> | ||
101 | + <property name="WebServerToolWindowFactoryState" value="false" /> | ||
102 | + <property name="last_opened_file_path" value="D:/git_folder" /> | ||
103 | + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> | ||
104 | + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> | ||
105 | + </component> | ||
106 | + <component name="RunDashboard"> | ||
107 | + <option name="ruleStates"> | ||
108 | + <list> | ||
109 | + <RuleState> | ||
110 | + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> | ||
111 | + </RuleState> | ||
112 | + <RuleState> | ||
113 | + <option name="name" value="StatusDashboardGroupingRule" /> | ||
114 | + </RuleState> | ||
115 | + </list> | ||
116 | + </option> | ||
117 | + </component> | ||
118 | + <component name="SvnConfiguration"> | ||
119 | + <configuration /> | ||
120 | + </component> | ||
121 | + <component name="TaskManager"> | ||
122 | + <task active="true" id="Default" summary="Default task"> | ||
123 | + <changelist id="632eecf6-91e3-4185-aea4-06d243e51935" name="Default" comment="" /> | ||
124 | + <created>1542334789245</created> | ||
125 | + <option name="number" value="Default" /> | ||
126 | + <option name="presentableId" value="Default" /> | ||
127 | + <updated>1542334789245</updated> | ||
128 | + <workItem from="1542334792985" duration="236000" /> | ||
129 | + </task> | ||
130 | + <servers /> | ||
131 | + </component> | ||
132 | + <component name="TimeTrackingManager"> | ||
133 | + <option name="totallyTimeSpent" value="236000" /> | ||
134 | + </component> | ||
135 | + <component name="ToolWindowManager"> | ||
136 | + <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> | ||
137 | + <layout> | ||
138 | + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24973656" /> | ||
139 | + <window_info anchor="bottom" id="TODO" order="6" /> | ||
140 | + <window_info anchor="bottom" id="Docker" show_stripe_button="false" /> | ||
141 | + <window_info anchor="bottom" id="Event Log" side_tool="true" /> | ||
142 | + <window_info anchor="bottom" id="Version Control" visible="true" weight="0.3293348" /> | ||
143 | + <window_info anchor="bottom" id="Run" order="2" /> | ||
144 | + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> | ||
145 | + <window_info anchor="bottom" id="Terminal" /> | ||
146 | + <window_info id="Favorites" side_tool="true" /> | ||
147 | + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> | ||
148 | + <window_info anchor="bottom" id="Find" order="1" /> | ||
149 | + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> | ||
150 | + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | ||
151 | + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> | ||
152 | + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | ||
153 | + <window_info anchor="bottom" id="Message" order="0" /> | ||
154 | + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> | ||
155 | + </layout> | ||
156 | + </component> | ||
157 | + <component name="TypeScriptGeneratedFilesManager"> | ||
158 | + <option name="version" value="1" /> | ||
159 | + </component> | ||
160 | + <component name="Vcs.Log.Tabs.Properties"> | ||
161 | + <option name="TAB_STATES"> | ||
162 | + <map> | ||
163 | + <entry key="MAIN"> | ||
164 | + <value> | ||
165 | + <State> | ||
166 | + <option name="RECENTLY_FILTERED_USER_GROUPS"> | ||
167 | + <collection /> | ||
168 | + </option> | ||
169 | + <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> | ||
170 | + <collection /> | ||
171 | + </option> | ||
172 | + <option name="COLUMN_ORDER"> | ||
173 | + <list> | ||
174 | + <option value="0" /> | ||
175 | + <option value="1" /> | ||
176 | + <option value="2" /> | ||
177 | + <option value="3" /> | ||
178 | + </list> | ||
179 | + </option> | ||
180 | + </State> | ||
181 | + </value> | ||
182 | + </entry> | ||
183 | + </map> | ||
184 | + </option> | ||
185 | + </component> | ||
186 | + <component name="VcsContentAnnotationSettings"> | ||
187 | + <option name="myLimit" value="2678400000" /> | ||
188 | + </component> | ||
189 | + <component name="editorHistoryManager"> | ||
190 | + <entry file="file://$PROJECT_DIR$/pages/my/protocol/protocol.wxml"> | ||
191 | + <provider selected="true" editor-type-id="text-editor" /> | ||
192 | + </entry> | ||
193 | + <entry file="file://$PROJECT_DIR$/pages/my/protocol/protocol.js"> | ||
194 | + <provider selected="true" editor-type-id="text-editor" /> | ||
195 | + </entry> | ||
196 | + <entry file="file://$PROJECT_DIR$/pages/my/myCard/myCard.wxml"> | ||
197 | + <provider selected="true" editor-type-id="text-editor" /> | ||
198 | + </entry> | ||
199 | + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.json"> | ||
200 | + <provider selected="true" editor-type-id="text-editor" /> | ||
201 | + </entry> | ||
202 | + <entry file="file://$PROJECT_DIR$/pages/my/all-appointment/all-appointment.wxml"> | ||
203 | + <provider selected="true" editor-type-id="text-editor" /> | ||
204 | + </entry> | ||
205 | + <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.json"> | ||
206 | + <provider selected="true" editor-type-id="text-editor" /> | ||
207 | + </entry> | ||
208 | + <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.wxml"> | ||
209 | + <provider selected="true" editor-type-id="text-editor"> | ||
210 | + <state relative-caret-position="27"> | ||
211 | + <caret line="1" column="1" selection-start-line="1" selection-start-column="1" selection-end-line="1" selection-end-column="43" /> | ||
212 | + </state> | ||
213 | + </provider> | ||
214 | + </entry> | ||
215 | + <entry file="file://$PROJECT_DIR$/pages/myProfile/myProfile.wxss"> | ||
216 | + <provider selected="true" editor-type-id="text-editor" /> | ||
217 | + </entry> | ||
218 | + <entry file="file://$PROJECT_DIR$/pages/my/myProfile/myProfile.wxml"> | ||
219 | + <provider selected="true" editor-type-id="text-editor" /> | ||
220 | + </entry> | ||
221 | + <entry file="file://$PROJECT_DIR$/app.json"> | ||
222 | + <provider selected="true" editor-type-id="text-editor"> | ||
223 | + <state relative-caret-position="270"> | ||
224 | + <caret line="19" column="36" lean-forward="true" selection-start-line="19" selection-start-column="36" selection-end-line="19" selection-end-column="36" /> | ||
225 | + </state> | ||
226 | + </provider> | ||
227 | + </entry> | ||
228 | + </component> | ||
229 | +</project> |
app.js
0 → 100644
1 | +//app.js | ||
2 | +// import md5 from 'utils/md5.js'; | ||
3 | +App({ | ||
4 | + onLaunch: function () { | ||
5 | + // 展示本地存储能力 | ||
6 | + var logs = wx.getStorageSync('logs') || [] | ||
7 | + logs.unshift(Date.now()) | ||
8 | + wx.setStorageSync('logs', logs) | ||
9 | + // 登录 | ||
10 | + // wx.login({ | ||
11 | + // success: res => { | ||
12 | + // // 发送 res.code 到后台换取 openId, sessionKey, unionId | ||
13 | + // } | ||
14 | + // }) | ||
15 | + // 获取用户信息 | ||
16 | + // wx.getSetting({ | ||
17 | + // success: res => { | ||
18 | + // if (res.authSetting['scope.userInfo']) { | ||
19 | + // // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框 | ||
20 | + // wx.getUserInfo({ | ||
21 | + // success: res => { | ||
22 | + // // 可以将 res 发送给后台解码出 unionId | ||
23 | + // this.globalData.userInfo = res.userInfo | ||
24 | + // // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 | ||
25 | + // // 所以此处加入 callback 以防止这种情况 | ||
26 | + // if (this.userInfoReadyCallback) { | ||
27 | + // this.userInfoReadyCallback(res) | ||
28 | + // } | ||
29 | + // } | ||
30 | + // }) | ||
31 | + // } | ||
32 | + // } | ||
33 | + // }) | ||
34 | + }, | ||
35 | + post: function (url,data,headerParams) { | ||
36 | + /** | ||
37 | + * 自定义post函数,返回Promise | ||
38 | + * +------------------- | ||
39 | + * @param {String} url 接口网址 | ||
40 | + * @param {arrayObject} data 要传的数组对象 like: {name: 'name', age: 32} | ||
41 | + * +------------------- | ||
42 | + * @return {Promise} promise 返回promise供后续操作 | ||
43 | + */ | ||
44 | + // wx.showLoading({ | ||
45 | + // title: '加载中', | ||
46 | + // }) | ||
47 | + wx.showNavigationBarLoading() | ||
48 | + // wx.showToast({ | ||
49 | + // title: '加载中', | ||
50 | + // icon:'none', | ||
51 | + // }) | ||
52 | + var promise = new Promise((resolve, reject) => { | ||
53 | + //init | ||
54 | + let that = this; | ||
55 | + let postData = data; | ||
56 | + let baseUrl = 'http://informationxcx.w.bronet.cn/api'; | ||
57 | + //网络请求 | ||
58 | + let header = { | ||
59 | + 'content-type': 'application/x-www-form-urlencoded' | ||
60 | + } | ||
61 | + header = Object.assign(header, headerParams) | ||
62 | + wx.request({ | ||
63 | + url: baseUrl + url, | ||
64 | + data: postData, | ||
65 | + method: 'POST', | ||
66 | + header: header, | ||
67 | + success: function (res) {//返回取得的数据 | ||
68 | + if (res.data.code == '20000') { | ||
69 | + resolve(res.data.data); | ||
70 | + } else if (res.data.code == '40001') {//返回错误提示信息 | ||
71 | + wx.showModal({ | ||
72 | + title: '提示', | ||
73 | + content: '登录已过期请重新登录!', | ||
74 | + showCancel: false, | ||
75 | + success: function (res) { | ||
76 | + if (res.confirm) { | ||
77 | + wx.removeStorageSync('token'); | ||
78 | + wx.navigateTo({ | ||
79 | + url: '/pages/start/start', | ||
80 | + }) | ||
81 | + } | ||
82 | + } | ||
83 | + }) | ||
84 | + } else if (res.data.code == '40000') { | ||
85 | + wx.showModal({ | ||
86 | + title: '提示', | ||
87 | + content: res.data.msg, | ||
88 | + showCancel: false, | ||
89 | + success: function (res) { } | ||
90 | + }) | ||
91 | + } else { | ||
92 | + wx.showModal({ | ||
93 | + title: '提示', | ||
94 | + content: res.data.msg, | ||
95 | + showCancel: false, | ||
96 | + }) | ||
97 | + reject(res.data) | ||
98 | + } | ||
99 | + setTimeout(function () { | ||
100 | + // wx.hideLoading() | ||
101 | + // wx.hideToast() | ||
102 | + wx.hideNavigationBarLoading() | ||
103 | + }, 500) | ||
104 | + }, | ||
105 | + error: function (e) { | ||
106 | + reject('网络出错'); | ||
107 | + // wx.hideLoading() | ||
108 | + wx.hideNavigationBarLoading() | ||
109 | + } | ||
110 | + }) | ||
111 | + }); | ||
112 | + return promise; | ||
113 | + }, | ||
114 | + formCollect(id){ | ||
115 | + let url = '/sign/formid' | ||
116 | + let params = { | ||
117 | + formid: id, | ||
118 | + openid: wx.getStorageSync('openId') | ||
119 | + } | ||
120 | + this.post(url,params).then((res)=>{ | ||
121 | + console.log(res) | ||
122 | + }).catch((errMsg)=>{ | ||
123 | + | ||
124 | + }) | ||
125 | + }, | ||
126 | + nowDate() { | ||
127 | + let date = new Date(); | ||
128 | + let month = date.getMonth() + 1; | ||
129 | + let day = date.getDate(); | ||
130 | + let hours = date.getHours(); | ||
131 | + let minutes = date.getMinutes(); | ||
132 | + let Y = date.getFullYear() + '/' + (month > 9 ? month : ('0' + month)) + '/' + (day > 9 ? day : ('0' + day)); | ||
133 | + let H = (hours>9?hours:('0'+hours)) + ':' +(minutes>9?minutes:('0'+minutes)); | ||
134 | + let time = []; | ||
135 | + time.push(Y,H); | ||
136 | + let new_time = time.join(' '); | ||
137 | + return new_time; | ||
138 | + }, | ||
139 | + initDate(a){ | ||
140 | + let date1 = new Date(); | ||
141 | + let time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate(); | ||
142 | + let date2 = new Date(date1); | ||
143 | + date2.setDate(date1.getDate() + a); | ||
144 | + let time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate(); | ||
145 | + return time2; | ||
146 | + }, | ||
147 | + // 数组移除指定元素 | ||
148 | + arryRemove(arr, item){ | ||
149 | + return arr.filter(function (ele) { | ||
150 | + return ele != item; | ||
151 | + }) | ||
152 | + }, | ||
153 | + strTime(strtime){ | ||
154 | + let str = 'bronet' + strtime + 'beijing' | ||
155 | + return md5(md5(str)) | ||
156 | + }, | ||
157 | + globalData: { | ||
158 | + userInfo: null, | ||
159 | + baseUrl:'https://beijing.wx.broteam.cn' | ||
160 | + } | ||
161 | +}) |
app.json
0 → 100644
1 | +{ | ||
2 | + "pages": [ | ||
3 | + "pages/index/index", | ||
4 | + "pages/index/confirm-appointment-info/confirm-appointment-info", | ||
5 | + "pages/index/phone-code/phone-code", | ||
6 | + "pages/index/activity-detail/activity-detail", | ||
7 | + "pages/index/go-appointment/go-appointment", | ||
8 | + "pages/index/confirm-appointment-info/add-student/add-student", | ||
9 | + "pages/my/myProfile/myProfile", | ||
10 | + "pages/my/serviceWeChat/serviceWeChat", | ||
11 | + "pages/my/chargePhoneNum/chargePhoneNum", | ||
12 | + "pages/my/myCard/myCard", | ||
13 | + "pages/my/groupBuyDetail/groupBuyDetail", | ||
14 | + "pages/my/buyCard/buyCard", | ||
15 | + "pages/my/protocol/protocol", | ||
16 | + "pages/my/groupBupShare/groupBupShare", | ||
17 | + "pages/my/charge/charge", | ||
18 | + "pages/my/groupBuy/groupBuy", | ||
19 | + "pages/my/appointmentRecord/appointmentRecord", | ||
20 | + "pages/my/cardIntroduction/cardIntroduction", | ||
21 | + "pages/my/all-appointment/all-appointment", | ||
22 | + "pages/my/my", | ||
23 | + "pages/clock/punchAppealDetail2/punchAppealDetail2", | ||
24 | + "pages/clock/punchAppealDetail/punchAppealDetail", | ||
25 | + "pages/clock/punchAppeal/punchAppeal", | ||
26 | + "pages/clock/clock", | ||
27 | + "pages/start/start" | ||
28 | + ], | ||
29 | + "window": { | ||
30 | + "backgroundTextStyle": "light", | ||
31 | + "navigationBarBackgroundColor": "#3FA9F5", | ||
32 | + "navigationBarTitleText": "科学队长实验室", | ||
33 | + "navigationBarTextStyle": "white" | ||
34 | + }, | ||
35 | + "tabBar": { | ||
36 | + "color": "#6F6F6F", | ||
37 | + "selectedColor": "#5AB7F9", | ||
38 | + "borderStyle": "black", | ||
39 | + "backgroundColor": "#fff", | ||
40 | + "list": [ | ||
41 | + { | ||
42 | + "pagePath": "pages/index/index", | ||
43 | + "text": "首页", | ||
44 | + "iconPath": "/images/home0.png", | ||
45 | + "selectedIconPath": "/images/home1.png" | ||
46 | + }, | ||
47 | + { | ||
48 | + "pagePath": "pages/clock/clock", | ||
49 | + "text": "打卡", | ||
50 | + "iconPath": "/images/clock0.png", | ||
51 | + "selectedIconPath": "/images/clock1.png" | ||
52 | + }, | ||
53 | + { | ||
54 | + "pagePath": "pages/my/my", | ||
55 | + "text": "我的", | ||
56 | + "iconPath": "/images/my0.png", | ||
57 | + "selectedIconPath": "/images/my1.png" | ||
58 | + } | ||
59 | + ] | ||
60 | + } | ||
61 | +} |
app.wxss
0 → 100644
1 | +@font-face { | ||
2 | + font-family: 'iconfont'; /* project id 912375 */ | ||
3 | + src: url('//at.alicdn.com/t/font_912375_canfpux7i3.eot'); | ||
4 | + src: url('//at.alicdn.com/t/font_912375_canfpux7i3.eot?#iefix') format('embedded-opentype'), | ||
5 | + url('//at.alicdn.com/t/font_912375_canfpux7i3.woff') format('woff'), | ||
6 | + url('//at.alicdn.com/t/font_912375_canfpux7i3.ttf') format('truetype'), | ||
7 | + url('//at.alicdn.com/t/font_912375_canfpux7i3.svg#iconfont') format('svg'); | ||
8 | +} | ||
9 | + | ||
10 | +.iconfont { | ||
11 | + font-family:"iconfont" !important; | ||
12 | + font-size:16px; | ||
13 | + font-style:normal; | ||
14 | + -webkit-font-smoothing: antialiased; | ||
15 | + -moz-osx-font-smoothing: grayscale; | ||
16 | +} | ||
17 | + | ||
18 | +.icon-dianji:before { content: "\e600"; } | ||
19 | + | ||
20 | +.icon-dingwei:before { content: "\e7c4"; } | ||
21 | + | ||
22 | +.icon-jinggao:before { content: "\e605"; } | ||
23 | + | ||
24 | +.icon-yuan-copy-copy-copy-copy:before { content: "\e618"; } | ||
25 | + | ||
26 | +.icon-shouye:before { content: "\e6a5"; } | ||
27 | + | ||
28 | +.icon-quxiao:before { content: "\e60f"; } | ||
29 | + | ||
30 | +.icon-daosanjiao:before { content: "\e610"; } | ||
31 | + | ||
32 | +.icon-jia:before { content: "\e79f"; } | ||
33 | + | ||
34 | +.icon-zhongdian:before { content: "\e601"; } | ||
35 | + | ||
36 | +.icon-fenxiang:before { content: "\e696"; } | ||
37 | + | ||
38 | +.icon-shangwutubiao-:before { content: "\e644"; } | ||
39 | + | ||
40 | +.icon-xuanzhong:before { content: "\e604"; } | ||
41 | + | ||
42 | +.icon-jieshu:before { content: "\e602"; } | ||
43 | + | ||
44 | +.icon-fanhui:before { content: "\e619"; } | ||
45 | + | ||
46 | +.icon-bianji2:before { content: "\e656"; } | ||
47 | + | ||
48 | +.icon-dui:before { content: "\e648"; } | ||
49 | + | ||
50 | +.icon-wode:before { content: "\e67b"; } |
images/add_btn.png
0 → 100644
2.5 KB
images/banner.jpg
0 → 100644
20.8 KB
images/blue_line.png
0 → 100644
1.1 KB
images/choose_icon.png
0 → 100644
1.4 KB
images/clock0.png
0 → 100644
1.7 KB
images/clock1.png
0 → 100644
1.6 KB
images/deep_grey_line.png
0 → 100644
1.1 KB
images/grey_line.png
0 → 100644
1.1 KB
images/head.png
0 → 100644
58.4 KB
images/home0.png
0 → 100644
1.5 KB
images/home1.png
0 → 100644
1.5 KB
images/img1.png
0 → 100644
84.9 KB
images/logo.png
0 → 100644
72.2 KB
images/my0.png
0 → 100644
1.6 KB
images/my1.png
0 → 100644
1.6 KB
images/red_line.png
0 → 100644
1.1 KB
images/success.jpg
0 → 100644
3.7 KB
images/test_img.jpg
0 → 100644
14.1 KB
pages/clock/clock.js
0 → 100644
1 | +// pages/clock/clock.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + //打卡申诉 | ||
11 | + punchApply(){ | ||
12 | + wx.navigateTo({ | ||
13 | + url: 'punchAppeal/punchAppeal', | ||
14 | + }) | ||
15 | + }, | ||
16 | + | ||
17 | + /** | ||
18 | + * 生命周期函数--监听页面加载 | ||
19 | + */ | ||
20 | + onLoad: function (options) { | ||
21 | + | ||
22 | + }, | ||
23 | + | ||
24 | + /** | ||
25 | + * 生命周期函数--监听页面初次渲染完成 | ||
26 | + */ | ||
27 | + onReady: function () { | ||
28 | + | ||
29 | + }, | ||
30 | + | ||
31 | + /** | ||
32 | + * 生命周期函数--监听页面显示 | ||
33 | + */ | ||
34 | + onShow: function () { | ||
35 | + | ||
36 | + }, | ||
37 | + | ||
38 | + /** | ||
39 | + * 生命周期函数--监听页面隐藏 | ||
40 | + */ | ||
41 | + onHide: function () { | ||
42 | + | ||
43 | + }, | ||
44 | + | ||
45 | + /** | ||
46 | + * 生命周期函数--监听页面卸载 | ||
47 | + */ | ||
48 | + onUnload: function () { | ||
49 | + | ||
50 | + }, | ||
51 | + | ||
52 | + /** | ||
53 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
54 | + */ | ||
55 | + onPullDownRefresh: function () { | ||
56 | + | ||
57 | + }, | ||
58 | + | ||
59 | + /** | ||
60 | + * 页面上拉触底事件的处理函数 | ||
61 | + */ | ||
62 | + onReachBottom: function () { | ||
63 | + | ||
64 | + }, | ||
65 | + | ||
66 | + /** | ||
67 | + * 用户点击右上角分享 | ||
68 | + */ | ||
69 | + onShareAppMessage: function () { | ||
70 | + | ||
71 | + } | ||
72 | +}) |
pages/clock/clock.json
0 → 100644
pages/clock/clock.wxml
0 → 100644
1 | +<!--pages/clock/clock.wxml--> | ||
2 | +<view class='content_box'> | ||
3 | + <view class='circle_large'> | ||
4 | + <view class='circle_middle'> | ||
5 | + <view class='circle_small'> | ||
6 | + <text wx:if='{{}}'>一键打卡</text> | ||
7 | + <text class='iconfont icon-dui'></text> | ||
8 | + </view> | ||
9 | + </view> | ||
10 | + </view> | ||
11 | + <view class='punch_info'>当前:未获取</view> | ||
12 | + <view class='punch_btn' bindtap='punchApply'>打卡申诉</view> | ||
13 | +</view> |
pages/clock/clock.wxss
0 → 100644
1 | +/* pages/clock/clock.wxss */ | ||
2 | + | ||
3 | +.content_box { | ||
4 | + width: 100%; | ||
5 | + height: 100%; | ||
6 | + position: fixed; | ||
7 | + left: 0; | ||
8 | + top: 0; | ||
9 | + background: #3899e5; | ||
10 | + display: flex; | ||
11 | + /* justify-content: center; */ | ||
12 | + flex-direction: column; | ||
13 | + align-items: center; | ||
14 | + padding-top: 115rpx; | ||
15 | +} | ||
16 | + | ||
17 | +.circle_large, .circle_middle, .circle_small { | ||
18 | + width: 327rpx; | ||
19 | + height: 327rpx; | ||
20 | + background: rgba(255, 255, 255, 0.3); | ||
21 | + border-radius: 50%; | ||
22 | + display: flex; | ||
23 | + align-items: center; | ||
24 | + justify-content: center; | ||
25 | +} | ||
26 | + | ||
27 | +.circle_middle { | ||
28 | + width: 286rpx; | ||
29 | + height: 286rpx; | ||
30 | +} | ||
31 | + | ||
32 | +.circle_small { | ||
33 | + width: 251rpx; | ||
34 | + height: 251rpx; | ||
35 | + font-size: 36rpx; | ||
36 | + background: #fff; | ||
37 | + color: #fc5b63; | ||
38 | + padding: 80rpx; | ||
39 | + box-sizing: border-box; | ||
40 | +} | ||
41 | +.icon-dui{ | ||
42 | + font-size: 90rpx; | ||
43 | +} | ||
44 | +.punch_info{ | ||
45 | + font-size: 32rpx; | ||
46 | + color: #FFFFFF; | ||
47 | + margin-top: 60rpx; | ||
48 | +} | ||
49 | +.punch_btn { | ||
50 | + width: 200rpx; | ||
51 | + height: 80rpx; | ||
52 | + background: rgba(63, 169, 245, 1); | ||
53 | + border-radius: 10rpx; | ||
54 | + font-size: 36rpx; | ||
55 | + color: #fff; | ||
56 | + display: flex; | ||
57 | + align-items: center; | ||
58 | + justify-content: center; | ||
59 | + position: fixed; | ||
60 | + bottom: 70rpx; | ||
61 | + left: 50%; | ||
62 | + transform: translateX(-50%); | ||
63 | +} |
pages/clock/punchAppeal/punchAppeal.js
0 → 100644
1 | +// pages/punchAppeal/punchAppeal.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + current: 0, | ||
9 | + maxlength: 100, | ||
10 | + minlength: 0, | ||
11 | + currentnum: 0 | ||
12 | + }, | ||
13 | + //tab切换 | ||
14 | + tabCharge(e) { | ||
15 | + var index = e.currentTarget.dataset.current | ||
16 | + var current = this.data.current | ||
17 | + if (index == current) { | ||
18 | + return false | ||
19 | + } else { | ||
20 | + this.setData({ | ||
21 | + current: index | ||
22 | + }) | ||
23 | + } | ||
24 | + }, | ||
25 | + //申诉内容获取 | ||
26 | + appealContent(e) { | ||
27 | + var textcontent = e.detail.value | ||
28 | + var len = e.detail.cursor | ||
29 | + var maxlength = this.data.maxlength | ||
30 | + var minlength = this.data.minlength | ||
31 | + if (len > maxlength) { | ||
32 | + wx.showToast({ | ||
33 | + title: '超出最大限制', | ||
34 | + icon: 'none' | ||
35 | + }) | ||
36 | + return | ||
37 | + } else { | ||
38 | + this.setData({ | ||
39 | + currentnum: len | ||
40 | + }) | ||
41 | + } | ||
42 | + }, | ||
43 | + //上传图片 | ||
44 | + uploadImg() { | ||
45 | + wx.chooseImage({ | ||
46 | + success: function(res) { | ||
47 | + console.log(res) | ||
48 | + const tempFilePaths = res.tempFilePaths | ||
49 | + wx.uploadFile({ | ||
50 | + url: '', | ||
51 | + filePath: 'tempFilePaths[0]', | ||
52 | + name: 'file', | ||
53 | + }) | ||
54 | + }, | ||
55 | + }) | ||
56 | + }, | ||
57 | +//跳转申诉详情页 | ||
58 | + listDetail(){ | ||
59 | + wx.navigateTo({ | ||
60 | + url:'../punchAppealDetail/punchAppealDetail', | ||
61 | + }) | ||
62 | + }, | ||
63 | + /** | ||
64 | + * 生命周期函数--监听页面加载 | ||
65 | + */ | ||
66 | + onLoad: function(options) { | ||
67 | + | ||
68 | + }, | ||
69 | + | ||
70 | + /** | ||
71 | + * 生命周期函数--监听页面初次渲染完成 | ||
72 | + */ | ||
73 | + onReady: function() { | ||
74 | + | ||
75 | + }, | ||
76 | + | ||
77 | + /** | ||
78 | + * 生命周期函数--监听页面显示 | ||
79 | + */ | ||
80 | + onShow: function() { | ||
81 | + | ||
82 | + }, | ||
83 | + | ||
84 | + /** | ||
85 | + * 生命周期函数--监听页面隐藏 | ||
86 | + */ | ||
87 | + onHide: function() { | ||
88 | + | ||
89 | + }, | ||
90 | + | ||
91 | + /** | ||
92 | + * 生命周期函数--监听页面卸载 | ||
93 | + */ | ||
94 | + onUnload: function() { | ||
95 | + | ||
96 | + }, | ||
97 | + | ||
98 | + /** | ||
99 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
100 | + */ | ||
101 | + onPullDownRefresh: function() { | ||
102 | + | ||
103 | + }, | ||
104 | + | ||
105 | + /** | ||
106 | + * 页面上拉触底事件的处理函数 | ||
107 | + */ | ||
108 | + onReachBottom: function() { | ||
109 | + | ||
110 | + }, | ||
111 | + | ||
112 | + /** | ||
113 | + * 用户点击右上角分享 | ||
114 | + */ | ||
115 | + onShareAppMessage: function() { | ||
116 | + | ||
117 | + } | ||
118 | +}) |
pages/clock/punchAppeal/punchAppeal.json
0 → 100644
pages/clock/punchAppeal/punchAppeal.wxml
0 → 100644
1 | +<!--pages/punchAppeal/punchAppeal.wxml--> | ||
2 | +<view class='tab_box'> | ||
3 | + <view class="tab_item {{current==0?'tab_active':''}}" data-current='0' bindtap='tabCharge'>我要申诉</view> | ||
4 | + <view class="tab_item {{current==1?'tab_active':''}}" data-current='1' bindtap='tabCharge'>审核中</view> | ||
5 | + <view class="tab_item {{current==2?'tab_active':''}}" data-current='2' bindtap='tabCharge'>已通过</view> | ||
6 | + <view class="tab_item {{current==3?'tab_active':''}}" data-current='3' bindtap='tabCharge'>未通过</view> | ||
7 | +</view> | ||
8 | +<block wx:if='{{current==0}}'> | ||
9 | + <view class='content_box'> | ||
10 | + <view class='item_list'> | ||
11 | + <view class='list_title_info'> | ||
12 | + <view class='iconfont icon-zhongdian'> </view> | ||
13 | + <view> | ||
14 | + <view>如果因为环境网络问题或者其他原因导致无法打卡,请上传照 片及文字申诉内容,证明您已到场并已经参与活动。 | ||
15 | + </view> | ||
16 | + <view class='hint_info'>注:最多可上传3张照片</view> | ||
17 | + </view> | ||
18 | + </view> | ||
19 | + <view class='uoload_box'> | ||
20 | + <view class='upload_item' bindtap='uploadImg'> | ||
21 | + <text class='iconfont icon-jia'></text> | ||
22 | + </view> | ||
23 | + <view class='upload_item'> | ||
24 | + <text class='iconfont icon-jia'></text> | ||
25 | + </view> | ||
26 | + <view class='upload_item'> | ||
27 | + <text class='iconfont icon-jia'></text> | ||
28 | + </view> | ||
29 | + </view> | ||
30 | + </view> | ||
31 | + <view class='item_list'> | ||
32 | + <view class='list_title'>申诉内容</view> | ||
33 | + <view class='list_input'> | ||
34 | + <textarea placeholder='请输入您的申诉内容...' bindinput='appealContent' placeholder-style='color:#C3C3C3'> | ||
35 | + </textarea> | ||
36 | + <view class='word_num'>{{currentnum}}/{{maxlength}}</view> | ||
37 | + </view> | ||
38 | + <view class='appeal_info'> | ||
39 | + <text class='iconfont icon-yuan-copy-copy-copy-copy'></text> | ||
40 | + <text>当前:xxx实验室</text> | ||
41 | + </view> | ||
42 | + <view class='null_box'></view> | ||
43 | + <view class='submit_btn'>提 交</view> | ||
44 | + </view> | ||
45 | + </view> | ||
46 | +</block> | ||
47 | +<block wx:elif='{{current==1}}'> | ||
48 | + <view class='review_box'> | ||
49 | + <view class='review_item' bindtap='listDetail'> | ||
50 | + <view>提交时间:2018.10.21</view> | ||
51 | + <view class='review_content_box'> | ||
52 | + <view class='review_img'> | ||
53 | + <image src='../../../images/img1.png'></image> | ||
54 | + </view> | ||
55 | + <view class='review_content'> | ||
56 | + <view class='review_info'>卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦</view> | ||
57 | + <view class='review_btn'> | ||
58 | + <view class='cancle_btn'>取消申诉</view> | ||
59 | + <view class='review_state'>审核中</view> | ||
60 | + </view> | ||
61 | + </view> | ||
62 | + </view> | ||
63 | + </view> | ||
64 | + </view> | ||
65 | +</block> | ||
66 | +<block wx:elif='{{current==2}}'> | ||
67 | + <view class='review_box'> | ||
68 | + <view class='review_item' bindtap='listDetail'> | ||
69 | + <view>提交时间:2018.10.21</view> | ||
70 | + <view class='review_content_box'> | ||
71 | + <view class='review_img'> | ||
72 | + <image src='../../../images/img1.png'></image> | ||
73 | + </view> | ||
74 | + <view class='review_content'> | ||
75 | + <view class='review_info'>卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦</view> | ||
76 | + <view class='review_btn'> | ||
77 | + <view class='cancle_btn' style='border:1rpx solid #fff'></view> | ||
78 | + <view class='review_state'> | ||
79 | + <text class='iconfont icon-dui'></text> 已通过 | ||
80 | + </view> | ||
81 | + </view> | ||
82 | + </view> | ||
83 | + </view> | ||
84 | + </view> | ||
85 | + </view> | ||
86 | +</block> | ||
87 | +<block wx:elif='{{current==3}}'> | ||
88 | + <view class='review_box'> | ||
89 | + <view class='review_item' bindtap='listDetail'> | ||
90 | + <view>提交时间:2018.10.21</view> | ||
91 | + <view class='review_content_box'> | ||
92 | + <view class='review_img'> | ||
93 | + <image src='../../../images/img1.png'></image> | ||
94 | + </view> | ||
95 | + <view class='review_content'> | ||
96 | + <view class='review_info'>卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦卡上规范咖喱饭咖喱发放啦发货;阿 富汗阿里发布啦 —— 爱因斯坦</view> | ||
97 | + <view class='review_btn'> | ||
98 | + <view class='cancle_btn view_btn'>查看原因</view> | ||
99 | + <view class='review_state state3'>未通过</view> | ||
100 | + </view> | ||
101 | + </view> | ||
102 | + </view> | ||
103 | + </view> | ||
104 | + </view> | ||
105 | +</block> |
pages/clock/punchAppeal/punchAppeal.wxss
0 → 100644
1 | +/* pages/punchAppeal/punchAppeal.wxss */ | ||
2 | + | ||
3 | +page { | ||
4 | + background: #f5f5f5; | ||
5 | +} | ||
6 | + | ||
7 | +.tab_box { | ||
8 | + width: 100%; | ||
9 | + height: 100rpx; | ||
10 | + background: #fff; | ||
11 | + display: flex; | ||
12 | + align-items: center; | ||
13 | + justify-content: space-between; | ||
14 | + padding: 0 22rpx; | ||
15 | + font-size: 30rpx; | ||
16 | + color: #464646; | ||
17 | + text-align: center; | ||
18 | + box-sizing: border-box; | ||
19 | + border-bottom: 1rpx solid rgba(0, 0, 0, 0.08); | ||
20 | +} | ||
21 | + | ||
22 | +.tab_item { | ||
23 | + width: 25%; | ||
24 | + position: relative; | ||
25 | +} | ||
26 | + | ||
27 | +.tab_active { | ||
28 | + color: #3fa9f5; | ||
29 | +} | ||
30 | + | ||
31 | +.tab_active::after { | ||
32 | + content: ''; | ||
33 | + width: 100%; | ||
34 | + height: 4rpx; | ||
35 | + background: #3fa9f5; | ||
36 | + position: absolute; | ||
37 | + left: 0; | ||
38 | + bottom: -30rpx; | ||
39 | +} | ||
40 | + | ||
41 | +.item_list { | ||
42 | + padding: 20rpx; | ||
43 | + background: #fff; | ||
44 | + margin-bottom: 20rpx; | ||
45 | +} | ||
46 | + | ||
47 | +.list_input { | ||
48 | + width: 100%; | ||
49 | + min-height: 300rpx; | ||
50 | + border: 1rpx solid #3fa9f5; | ||
51 | + border-radius: 20rpx; | ||
52 | + background: #f5f5fa; | ||
53 | + margin-top: 30rpx; | ||
54 | + position: relative; | ||
55 | +} | ||
56 | + | ||
57 | +.list_input textarea { | ||
58 | + width: 100%; | ||
59 | + font-size: 28rpx; | ||
60 | + padding: 30rpx; | ||
61 | + color: #6e6e6e; | ||
62 | +} | ||
63 | + | ||
64 | +.word_num { | ||
65 | + position: absolute; | ||
66 | + right: 30rpx; | ||
67 | + bottom: 30rpx; | ||
68 | + font-size: 28rpx; | ||
69 | + color: #c3c3c3; | ||
70 | +} | ||
71 | + | ||
72 | +.list_title_info { | ||
73 | + font-size: 24rpx; | ||
74 | + color: #a3a3a3; | ||
75 | + display: flex; | ||
76 | + align-items: flex-start; | ||
77 | + margin-top: 23rpx; | ||
78 | +} | ||
79 | + | ||
80 | +.hint_info { | ||
81 | + color: #fc5b63; | ||
82 | + margin-top: 26rpx; | ||
83 | +} | ||
84 | + | ||
85 | +.uoload_box { | ||
86 | + margin-top: 50rpx; | ||
87 | + padding: 0 10rpx; | ||
88 | + display: flex; | ||
89 | + align-items: center; | ||
90 | + justify-content: space-between; | ||
91 | +} | ||
92 | + | ||
93 | +.upload_item { | ||
94 | + width: 200rpx; | ||
95 | + height: 200rpx; | ||
96 | + border: 1rpx dashed #6f6f6f; | ||
97 | + display: flex; | ||
98 | + align-items: center; | ||
99 | + justify-content: center; | ||
100 | +} | ||
101 | + | ||
102 | +.icon-jia { | ||
103 | + font-size: 40rpx; | ||
104 | + color: #a3a3a3; | ||
105 | +} | ||
106 | + | ||
107 | +.list_title { | ||
108 | + position: relative; | ||
109 | + padding-left: 24rpx; | ||
110 | + font-size: 30rpx; | ||
111 | + color: #393939; | ||
112 | +} | ||
113 | + | ||
114 | +.list_title::after { | ||
115 | + content: ""; | ||
116 | + width: 6rpx; | ||
117 | + height: 32rpx; | ||
118 | + background: #3fa9f5; | ||
119 | + border-radius: 40rpx; | ||
120 | + position: absolute; | ||
121 | + left: 0rpx; | ||
122 | + top: 50%; | ||
123 | + transform: translateY(-50%); | ||
124 | +} | ||
125 | + | ||
126 | +.icon-yuan-copy-copy-copy-copy { | ||
127 | + font-size: 18rpx; | ||
128 | + color: #fc5b63; | ||
129 | + margin-right: 15rpx; | ||
130 | +} | ||
131 | + | ||
132 | +.appeal_info { | ||
133 | + font-size: 30rpx; | ||
134 | + color: #fc5b63; | ||
135 | + margin-top: 50rpx; | ||
136 | +} | ||
137 | + | ||
138 | +.submit_btn { | ||
139 | + width: 100%; | ||
140 | + height: 98rpx; | ||
141 | + background: #3fa9f5; | ||
142 | + font-size: 36rpx; | ||
143 | + color: #fff; | ||
144 | + display: flex; | ||
145 | + align-items: center; | ||
146 | + justify-content: center; | ||
147 | + position: fixed; | ||
148 | + bottom: 0; | ||
149 | + left: 0; | ||
150 | +} | ||
151 | + | ||
152 | +.null_box { | ||
153 | + width: 100%; | ||
154 | + height: 110rpx; | ||
155 | +} | ||
156 | + | ||
157 | +/* 审核中 */ | ||
158 | + | ||
159 | +.review_box { | ||
160 | + padding: 20rpx; | ||
161 | +} | ||
162 | + | ||
163 | +.review_item { | ||
164 | + width: 100%; | ||
165 | + background: #fff; | ||
166 | + border-radius: 20rpx; | ||
167 | + padding: 20rpx; | ||
168 | + box-sizing: border-box; | ||
169 | + margin-bottom: 20rpx; | ||
170 | + font-size: 28rpx; | ||
171 | + color: #393939; | ||
172 | +} | ||
173 | + | ||
174 | +.review_item:last-child { | ||
175 | + margin-bottom: 0; | ||
176 | +} | ||
177 | + | ||
178 | +.review_img { | ||
179 | + width: 200rpx; | ||
180 | + height: 200rpx; | ||
181 | +} | ||
182 | + | ||
183 | +.review_img image { | ||
184 | + width: 100%; | ||
185 | + height: 100%; | ||
186 | +} | ||
187 | + | ||
188 | +.review_content_box { | ||
189 | + display: flex; | ||
190 | + align-items: center; | ||
191 | + margin-top: 30rpx; | ||
192 | +} | ||
193 | + | ||
194 | +.review_content { | ||
195 | + width: 65%; | ||
196 | + margin-left: 20rpx; | ||
197 | +} | ||
198 | + | ||
199 | +.review_info { | ||
200 | + color: #6f6f6f; | ||
201 | + display: -webkit-box; | ||
202 | + -webkit-box-orient: vertical; | ||
203 | + -webkit-line-clamp: 2; | ||
204 | + overflow: hidden; | ||
205 | +} | ||
206 | + | ||
207 | +.review_btn { | ||
208 | + display: flex; | ||
209 | + align-items: center; | ||
210 | + justify-content: space-between; | ||
211 | + margin-top: 43rpx; | ||
212 | +} | ||
213 | + | ||
214 | +.cancle_btn { | ||
215 | + width: 150rpx; | ||
216 | + height: 50rpx; | ||
217 | + border: 1rpx solid #fc5b63; | ||
218 | + border-radius: 20rpx; | ||
219 | + text-align: center; | ||
220 | + line-height: 50rpx; | ||
221 | + color: #fc5b63; | ||
222 | +} | ||
223 | + | ||
224 | +.review_state { | ||
225 | + font-size: 24rpx; | ||
226 | + color: #fc5b63; | ||
227 | +} | ||
228 | +.view_btn{ | ||
229 | + color: #3FA9F5; | ||
230 | + border: 1rpx solid #3FA9F5; | ||
231 | +} | ||
232 | +.state3{ | ||
233 | + color: #C3C3C3 | ||
234 | +} | ||
235 | +.icon-dui{ | ||
236 | + color: #FC5B63; | ||
237 | +} |
1 | +// pages/punchAppealDetail/punchAppealDetail.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | +//补充提交申诉 | ||
11 | + againSubmit(){ | ||
12 | + wx.navigateTo({ | ||
13 | + url: '../punchAppealDetail2/punchAppealDetail2', | ||
14 | + }) | ||
15 | + }, | ||
16 | + /** | ||
17 | + * 生命周期函数--监听页面加载 | ||
18 | + */ | ||
19 | + onLoad: function (options) { | ||
20 | + | ||
21 | + }, | ||
22 | + | ||
23 | + /** | ||
24 | + * 生命周期函数--监听页面初次渲染完成 | ||
25 | + */ | ||
26 | + onReady: function () { | ||
27 | + | ||
28 | + }, | ||
29 | + | ||
30 | + /** | ||
31 | + * 生命周期函数--监听页面显示 | ||
32 | + */ | ||
33 | + onShow: function () { | ||
34 | + | ||
35 | + }, | ||
36 | + | ||
37 | + /** | ||
38 | + * 生命周期函数--监听页面隐藏 | ||
39 | + */ | ||
40 | + onHide: function () { | ||
41 | + | ||
42 | + }, | ||
43 | + | ||
44 | + /** | ||
45 | + * 生命周期函数--监听页面卸载 | ||
46 | + */ | ||
47 | + onUnload: function () { | ||
48 | + | ||
49 | + }, | ||
50 | + | ||
51 | + /** | ||
52 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
53 | + */ | ||
54 | + onPullDownRefresh: function () { | ||
55 | + | ||
56 | + }, | ||
57 | + | ||
58 | + /** | ||
59 | + * 页面上拉触底事件的处理函数 | ||
60 | + */ | ||
61 | + onReachBottom: function () { | ||
62 | + | ||
63 | + }, | ||
64 | + | ||
65 | + /** | ||
66 | + * 用户点击右上角分享 | ||
67 | + */ | ||
68 | + onShareAppMessage: function () { | ||
69 | + | ||
70 | + } | ||
71 | +}) |
1 | +<!--pages/punchAppealDetail/punchAppealDetail.wxml--> | ||
2 | +<view class='content_box'> | ||
3 | + <view class='item_list'> | ||
4 | + <view class='uoload_box'> | ||
5 | + <view class='upload_item' bindtap='uploadImg'> | ||
6 | + <text class='iconfont icon-jia'></text> | ||
7 | + </view> | ||
8 | + <view class='upload_item'> | ||
9 | + <text class='iconfont icon-jia'></text> | ||
10 | + </view> | ||
11 | + <view class='upload_item'> | ||
12 | + <text class='iconfont icon-jia'></text> | ||
13 | + </view> | ||
14 | + </view> | ||
15 | + </view> | ||
16 | + <view class='item_list'> | ||
17 | + <view class='list_title'>申诉理由</view> | ||
18 | + <view class='list_input'> | ||
19 | + <view>朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳</view> | ||
20 | + <view class='word_num'>2018.10.10</view> | ||
21 | + </view> | ||
22 | + </view> | ||
23 | + <view class='item_list'> | ||
24 | + <view class='list_title'>未通过原因</view> | ||
25 | + <view class='list_input'> | ||
26 | + <view>朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳</view> | ||
27 | + <view class='word_num'>2018.10.10</view> | ||
28 | + </view> | ||
29 | + </view> | ||
30 | + <view class='null_box'></view> | ||
31 | + <view class='submit_btn' bindtap='againSubmit'>补充提交</view> | ||
32 | +</view> | ||
33 | + |
1 | +/* pages/punchAppealDetail/punchAppealDetail.wxss */ | ||
2 | +@import '../punchAppeal/punchAppeal.wxss'; | ||
3 | + | ||
4 | +.uoload_box { | ||
5 | + margin-top: 0; | ||
6 | +} | ||
7 | + | ||
8 | +.list_input { | ||
9 | + background: none; | ||
10 | + border: none; | ||
11 | + font-size: 28rpx; | ||
12 | + color: #6F6F6F; | ||
13 | + padding:0 20rpx; | ||
14 | + box-sizing: border-box; | ||
15 | +} | ||
16 | +.word_num{ | ||
17 | + font-size: 28rpx; | ||
18 | + color: #6F6F6F; | ||
19 | +} |
1 | +// pages/punchAppealDetail2/punchAppealDetail2.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + | ||
11 | + /** | ||
12 | + * 生命周期函数--监听页面加载 | ||
13 | + */ | ||
14 | + onLoad: function (options) { | ||
15 | + | ||
16 | + }, | ||
17 | + | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面初次渲染完成 | ||
20 | + */ | ||
21 | + onReady: function () { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面显示 | ||
27 | + */ | ||
28 | + onShow: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面隐藏 | ||
34 | + */ | ||
35 | + onHide: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面卸载 | ||
41 | + */ | ||
42 | + onUnload: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
48 | + */ | ||
49 | + onPullDownRefresh: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面上拉触底事件的处理函数 | ||
55 | + */ | ||
56 | + onReachBottom: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 用户点击右上角分享 | ||
62 | + */ | ||
63 | + onShareAppMessage: function () { | ||
64 | + | ||
65 | + } | ||
66 | +}) |
1 | +<!--pages/punchAppealDetail/punchAppealDetail.wxml--> | ||
2 | + | ||
3 | +<view class='content_box'> | ||
4 | + <view class='item_list'> | ||
5 | + <view class='uoload_box'> | ||
6 | + <view class='upload_item' bindtap='uploadImg'> | ||
7 | + <text class='iconfont icon-jia'></text> | ||
8 | + </view> | ||
9 | + <view class='upload_item'> | ||
10 | + <text class='iconfont icon-jia'></text> | ||
11 | + </view> | ||
12 | + <view class='upload_item'> | ||
13 | + <text class='iconfont icon-jia'></text> | ||
14 | + </view> | ||
15 | + </view> | ||
16 | + </view> | ||
17 | + <view class='item_list'> | ||
18 | + <view class='list_title'>未通过原因</view> | ||
19 | + <view class='list_input'> | ||
20 | + <view>朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳</view> | ||
21 | + <view class='word_num'>2018.10.10</view> | ||
22 | + </view> | ||
23 | + <view class='appeal_info'> | ||
24 | + <text class='iconfont icon-yuan-copy-copy-copy-copy'></text> | ||
25 | + <text>当前:xxx实验室</text> | ||
26 | + </view> | ||
27 | + </view> | ||
28 | +</view> |
1 | +/* pages/punchAppealDetail2/punchAppealDetail2.wxss */ | ||
2 | +@import '../punchAppeal/punchAppeal.wxss'; | ||
3 | +page{ | ||
4 | + background: #fff; | ||
5 | +} | ||
6 | +.content_box{ | ||
7 | + background: #f5f5f5; | ||
8 | +} | ||
9 | +.uoload_box { | ||
10 | + margin-top: 0; | ||
11 | +} | ||
12 | + | ||
13 | +.list_input { | ||
14 | + background: none; | ||
15 | + border: none; | ||
16 | + font-size: 28rpx; | ||
17 | + color: #6f6f6f; | ||
18 | + padding: 0 20rpx; | ||
19 | + box-sizing: border-box; | ||
20 | +} | ||
21 | + | ||
22 | +.word_num { | ||
23 | + font-size: 28rpx; | ||
24 | + color: #6f6f6f; | ||
25 | +} |
1 | +// pages/index/activity-detail/activity-detail.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + is_agree: true, | ||
9 | + }, | ||
10 | + clickAgreeBtn() { | ||
11 | + this.setData({is_agree: !this.data.is_agree}); | ||
12 | + console.log(this.data.is_agree); | ||
13 | + }, | ||
14 | + /** | ||
15 | + * 生命周期函数--监听页面加载 | ||
16 | + */ | ||
17 | + onLoad: function (options) { | ||
18 | + | ||
19 | + }, | ||
20 | + | ||
21 | + /** | ||
22 | + * 生命周期函数--监听页面初次渲染完成 | ||
23 | + */ | ||
24 | + onReady: function () { | ||
25 | + | ||
26 | + }, | ||
27 | + | ||
28 | + /** | ||
29 | + * 生命周期函数--监听页面显示 | ||
30 | + */ | ||
31 | + onShow: function () { | ||
32 | + | ||
33 | + }, | ||
34 | + | ||
35 | + /** | ||
36 | + * 生命周期函数--监听页面隐藏 | ||
37 | + */ | ||
38 | + onHide: function () { | ||
39 | + | ||
40 | + }, | ||
41 | + | ||
42 | + /** | ||
43 | + * 生命周期函数--监听页面卸载 | ||
44 | + */ | ||
45 | + onUnload: function () { | ||
46 | + | ||
47 | + }, | ||
48 | + | ||
49 | + /** | ||
50 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
51 | + */ | ||
52 | + onPullDownRefresh: function () { | ||
53 | + | ||
54 | + }, | ||
55 | + | ||
56 | + /** | ||
57 | + * 页面上拉触底事件的处理函数 | ||
58 | + */ | ||
59 | + onReachBottom: function () { | ||
60 | + | ||
61 | + }, | ||
62 | + | ||
63 | + /** | ||
64 | + * 用户点击右上角分享 | ||
65 | + */ | ||
66 | + onShareAppMessage: function () { | ||
67 | + | ||
68 | + } | ||
69 | +}) |
1 | +<!--pages/index/activity-detail/activity-detail.wxml--> | ||
2 | +<view class="content"> | ||
3 | + <view class="head"> | ||
4 | + <view class="img_box"> | ||
5 | + <image src="../../../images/test_img.jpg" class="activity_img"></image> | ||
6 | + </view> | ||
7 | + <view class="title"> | ||
8 | + <view class="line"></view> | ||
9 | + <view class="test_detail"> | ||
10 | + <text>科学队长实验室:雷电的产生!</text> | ||
11 | + <view class="describe">云和云摩擦碰撞发出的声音是雷声产生火花是闪电。</view> | ||
12 | + </view> | ||
13 | + </view> | ||
14 | + </view> | ||
15 | + | ||
16 | + <view class="jiexi">解析长图</view> | ||
17 | + <view class="footer"> | ||
18 | + <view class="service" bindtap="clickAgreeBtn"> | ||
19 | + <view class="agree_box"> | ||
20 | + <view class="agree_btn" wx:if="{{is_agree}}"></view> | ||
21 | + </view> | ||
22 | + <text>服务协议</text> | ||
23 | + </view> | ||
24 | + <view class="order_btn">去预约</view> | ||
25 | + </view> | ||
26 | +</view> |
1 | +/* pages/index/activity-detail/activity-detail.wxss */ | ||
2 | +.content { | ||
3 | + width: 100%; | ||
4 | + height: 100%; | ||
5 | + display: flex; | ||
6 | + flex-direction: column; | ||
7 | + justify-content: space-between; | ||
8 | +} | ||
9 | +.head { | ||
10 | + width: 100%; | ||
11 | + padding: 20rpx; | ||
12 | + -webkit-box-sizing: border-box; | ||
13 | + -moz-box-sizing: border-box; | ||
14 | + box-sizing: border-box; | ||
15 | + flex: 1; | ||
16 | +} | ||
17 | +.img_box { | ||
18 | + width: 100%; | ||
19 | + height: 400rpx; | ||
20 | +} | ||
21 | +.activity_img { | ||
22 | + width: 100%; | ||
23 | + height: 100%; | ||
24 | + border-radius: 20rpx; | ||
25 | +} | ||
26 | +.title { | ||
27 | + display: flex; | ||
28 | + justify-content: flex-start; | ||
29 | + align-items: flex-start; | ||
30 | + margin-top: 24rpx; | ||
31 | + position: relative; | ||
32 | +} | ||
33 | +.line { | ||
34 | + width: 6rpx; | ||
35 | + height: 32rpx; | ||
36 | + background-color: #3FA9F5; | ||
37 | + margin-right: 18rpx; | ||
38 | + position: absolute; | ||
39 | + top: 14rpx; | ||
40 | + left: 0; | ||
41 | +} | ||
42 | +.test_detail { | ||
43 | + margin-left: 24rpx; | ||
44 | +} | ||
45 | +.test_detail text { | ||
46 | + color: #464646; | ||
47 | + font-size: 32rpx; | ||
48 | +} | ||
49 | +.describe { | ||
50 | + font-size: 24rpx; | ||
51 | +} | ||
52 | +.jiexi { | ||
53 | + height: 800px; | ||
54 | +} | ||
55 | +.footer { | ||
56 | + width: 100%; | ||
57 | + display: flex; | ||
58 | + flex-direction: column; | ||
59 | + align-items: center; | ||
60 | + justify-content: center; | ||
61 | + position: fixed; | ||
62 | + bottom: 0; | ||
63 | + left: 0; | ||
64 | +} | ||
65 | +.service { | ||
66 | + width: 100%; | ||
67 | + height: 50rpx; | ||
68 | + background-color: #FDEFB5; | ||
69 | + font-size: 24rpx; | ||
70 | + color: #FC5B63; | ||
71 | + display: flex; | ||
72 | + align-items: center; | ||
73 | +} | ||
74 | +.agree_box { | ||
75 | + width: 24rpx; | ||
76 | + height: 24rpx; | ||
77 | + border: 1rpx solid #FC5B63; | ||
78 | + margin-right: 18rpx; | ||
79 | + margin-left: 20rpx; | ||
80 | + border-radius: 50%; | ||
81 | + display: flex; | ||
82 | + align-items: center; | ||
83 | + justify-content: center; | ||
84 | +} | ||
85 | +.agree_btn { | ||
86 | + width: 16rpx; | ||
87 | + height: 16rpx; | ||
88 | + border-radius: 50%; | ||
89 | + background-color: #FC5B63; | ||
90 | +} | ||
91 | +.order_btn { | ||
92 | + width: 100%; | ||
93 | + height: 98rpx; | ||
94 | + line-height: 98rpx; | ||
95 | + background-color: #3FA9F5; | ||
96 | + color: #ffffff; | ||
97 | + text-align: center; | ||
98 | + font-size: 36RPX; | ||
99 | +} |
1 | +// pages/index/confirm-appointment-info/add-student/add-student.js | ||
2 | +const date = new Date() | ||
3 | +const years = [] | ||
4 | +const months = [] | ||
5 | +const days = [] | ||
6 | + | ||
7 | +for (let i = 1990; i <= date.getFullYear(); i++) { | ||
8 | + years.push(i) | ||
9 | +} | ||
10 | + | ||
11 | +for (let i = 1 ; i <= 12; i++) { | ||
12 | + months.push(i) | ||
13 | +} | ||
14 | + | ||
15 | +for (let i = 1 ; i <= 31; i++) { | ||
16 | + days.push(i) | ||
17 | +} | ||
18 | + | ||
19 | +Page({ | ||
20 | + | ||
21 | + /** | ||
22 | + * 页面的初始数据 | ||
23 | + */ | ||
24 | + data: { | ||
25 | + name: '', | ||
26 | + sex: ['男','女'], | ||
27 | + city: ['北京市','天津市','河北省'], | ||
28 | + years: years, | ||
29 | + year: date.getFullYear(), | ||
30 | + months: months, | ||
31 | + month: 2, | ||
32 | + days: days, | ||
33 | + day: 2, | ||
34 | + value: [9999, 1, 1], | ||
35 | + }, | ||
36 | + inputName(e) { | ||
37 | + this.setData({name: e.detail.value}); | ||
38 | + }, | ||
39 | + //选择性别 | ||
40 | + sexPickerChange: function(e) { | ||
41 | + console.log('picker发送选择改变,携带值为', e.detail.value) | ||
42 | + this.setData({ | ||
43 | + sex_index: e.detail.value, | ||
44 | + is_sex_change: true, | ||
45 | + }) | ||
46 | + }, | ||
47 | + //选择生日 | ||
48 | + birthPickerChange: function(e) { | ||
49 | + console.log('picker发送选择改变,携带值为', e.detail.value) | ||
50 | + this.setData({ | ||
51 | + birth_date: e.detail.value, | ||
52 | + is_birth_change: true, | ||
53 | + }) | ||
54 | + // const val = e.detail.value; | ||
55 | + // this.setData({ | ||
56 | + // year: this.data.years[val[0]], | ||
57 | + // month: this.data.months[val[1]], | ||
58 | + // day: this.data.days[val[2]] | ||
59 | + // }) | ||
60 | + }, | ||
61 | + //选择城市 | ||
62 | + cityPickerChange: function(e) { | ||
63 | + console.log('picker发送选择改变,携带值为', e.detail.value) | ||
64 | + this.setData({ | ||
65 | + city_index: e.detail.value, | ||
66 | + is_city_change: true, | ||
67 | + }) | ||
68 | + }, | ||
69 | + //保存 | ||
70 | + clickSave() { | ||
71 | + if(this.data.name === '') { | ||
72 | + wx.showToast({ | ||
73 | + title: '请填写学员姓名', | ||
74 | + icon: 'none' | ||
75 | + }) | ||
76 | + }else { | ||
77 | + wx.navigateBack({delta: 1}) | ||
78 | + } | ||
79 | + }, | ||
80 | + /** | ||
81 | + * 生命周期函数--监听页面加载 | ||
82 | + */ | ||
83 | + onLoad: function (options) { | ||
84 | + | ||
85 | + }, | ||
86 | + | ||
87 | + /** | ||
88 | + * 生命周期函数--监听页面初次渲染完成 | ||
89 | + */ | ||
90 | + onReady: function () { | ||
91 | + | ||
92 | + }, | ||
93 | + | ||
94 | + /** | ||
95 | + * 生命周期函数--监听页面显示 | ||
96 | + */ | ||
97 | + onShow: function () { | ||
98 | + | ||
99 | + }, | ||
100 | + | ||
101 | + /** | ||
102 | + * 生命周期函数--监听页面隐藏 | ||
103 | + */ | ||
104 | + onHide: function () { | ||
105 | + | ||
106 | + }, | ||
107 | + | ||
108 | + /** | ||
109 | + * 生命周期函数--监听页面卸载 | ||
110 | + */ | ||
111 | + onUnload: function () { | ||
112 | + | ||
113 | + }, | ||
114 | + | ||
115 | + /** | ||
116 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
117 | + */ | ||
118 | + onPullDownRefresh: function () { | ||
119 | + | ||
120 | + }, | ||
121 | + | ||
122 | + /** | ||
123 | + * 页面上拉触底事件的处理函数 | ||
124 | + */ | ||
125 | + onReachBottom: function () { | ||
126 | + | ||
127 | + }, | ||
128 | + | ||
129 | + /** | ||
130 | + * 用户点击右上角分享 | ||
131 | + */ | ||
132 | + onShareAppMessage: function () { | ||
133 | + | ||
134 | + } | ||
135 | +}) |
1 | +<!--pages/index/confirm-appointment-info/add-student/add-student.wxml--> | ||
2 | +<view class="content"> | ||
3 | + <view class="input-box"> | ||
4 | + <view class="name-box"> | ||
5 | + <text>姓 名:</text> | ||
6 | + <input type="text" placeholder="张三" cursor="100" placeholder-class="placeholder-style" | ||
7 | + value="{{name}}" bindinput="inputName"/> | ||
8 | + </view> | ||
9 | + <picker bindchange="sexPickerChange" value="{{sex_index}}" range="{{sex}}"> | ||
10 | + <view class="select-box"> | ||
11 | + <view class="select-picker"> | ||
12 | + <view class="sex">性 别:</view> | ||
13 | + <view class="picker" wx:if="{{is_sex_change}}"> | ||
14 | + {{sex[sex_index]}} | ||
15 | + </view> | ||
16 | + <view wx:else>男</view> | ||
17 | + </view> | ||
18 | + <view class="iconfont icon-daosanjiao"></view> | ||
19 | + </view> | ||
20 | + </picker> | ||
21 | + <picker bindchange="birthPickerChange" value="{{birth_date}}" mode="date"> | ||
22 | + <view class="select-box"> | ||
23 | + <view class="select-picker"> | ||
24 | + <view class="sex">生 日:</view> | ||
25 | + <view class="picker" wx:if="{{is_birth_change}}"> | ||
26 | + {{birth_date}} | ||
27 | + </view> | ||
28 | + <view wx:else>2008-11-11</view> | ||
29 | + </view> | ||
30 | + <view class="iconfont icon-daosanjiao"></view> | ||
31 | + </view> | ||
32 | + </picker> | ||
33 | + <picker bindchange="cityPickerChange" value="{{city_index}}" range="{{city}}"> | ||
34 | + <view class="select-box"> | ||
35 | + <view class="select-picker"> | ||
36 | + <view class="sex">城 市:</view> | ||
37 | + <view class="picker" wx:if="{{is_city_change}}"> | ||
38 | + {{city[city_index]}} | ||
39 | + </view> | ||
40 | + <view wx:else>北京市</view> | ||
41 | + </view> | ||
42 | + <view class="iconfont icon-daosanjiao"></view> | ||
43 | + </view> | ||
44 | + </picker> | ||
45 | + </view> | ||
46 | + <view class="save-btn" bindtap="clickSave"> | ||
47 | + <view class="save-box"> | ||
48 | + <text>保 存</text> | ||
49 | + </view> | ||
50 | + </view> | ||
51 | +</view> |
1 | +/* pages/index/confirm-appointment-info/add-student/add-student.wxss */ | ||
2 | +.input-box { | ||
3 | + width: 100%; | ||
4 | + padding: 30rpx 32rpx 70rpx 32rpx; | ||
5 | + -webkit-box-sizing: border-box; | ||
6 | + -moz-box-sizing: border-box; | ||
7 | + box-sizing: border-box; | ||
8 | + display: flex; | ||
9 | + flex-direction: column; | ||
10 | + align-items: center; | ||
11 | +} | ||
12 | +.name-box { | ||
13 | + width: 100%; | ||
14 | + height: 88rpx; | ||
15 | + display: flex; | ||
16 | + align-items: center; | ||
17 | + border-bottom: 1rpx solid #C3C3C3; | ||
18 | + font-size: 32rpx; | ||
19 | + color: #c3c3c3; | ||
20 | + margin-bottom: 30rpx; | ||
21 | +} | ||
22 | +.name-box input { | ||
23 | + padding: 20rpx 20rpx; | ||
24 | +} | ||
25 | +.placeholder-style { | ||
26 | + color: #c3c3c3; | ||
27 | +} | ||
28 | +picker { | ||
29 | + width: 100%; | ||
30 | + height: 88rpx; | ||
31 | + border-bottom: 1rpx solid #C3C3C3; | ||
32 | + margin-bottom: 30rpx; | ||
33 | +} | ||
34 | +.select-box { | ||
35 | + width: 100%; | ||
36 | + line-height: 88rpx; | ||
37 | + display: flex; | ||
38 | + align-items: center; | ||
39 | + justify-content: space-between; | ||
40 | + color: #c3c3c3; | ||
41 | + font-size: 32rpx; | ||
42 | +} | ||
43 | +.select-picker { | ||
44 | + display: flex; | ||
45 | + align-items: center; | ||
46 | +} | ||
47 | +.sex { | ||
48 | + margin-right: 20rpx; | ||
49 | +} | ||
50 | +.icon-daosanjiao { | ||
51 | + font-size: 26rpx; | ||
52 | + color: #6F6F6F; | ||
53 | +} | ||
54 | +.save-btn { | ||
55 | + width: 100%; | ||
56 | + height: 80rpx; | ||
57 | + text-align: center; | ||
58 | + padding: 0 32rpx; | ||
59 | + -webkit-box-sizing: border-box; | ||
60 | + -moz-box-sizing: border-box; | ||
61 | + box-sizing: border-box; | ||
62 | +} | ||
63 | +.save-box text { | ||
64 | + color: #ffffff; | ||
65 | + font-size: 36rpx; | ||
66 | + line-height: 80rpx; | ||
67 | +} | ||
68 | +.save-box { | ||
69 | + width: 100%; | ||
70 | + background-color: #3FA9F5; | ||
71 | + border-radius: 10rpx; | ||
72 | +} |
1 | +// pages/index/confirm-appointment-info/confirm-appointment-info.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + show: false, | ||
9 | + is_showModal: false, | ||
10 | + is_showSuccessModal: false, | ||
11 | + children: [{name:'张三',is_choose: true}, | ||
12 | + {name:'李思思', is_choose: false}, | ||
13 | + {name:'迪丽热巴-迪力木拉提',is_choose: false}], | ||
14 | + is_choose: false, | ||
15 | + }, | ||
16 | + chooseChildren(e) { | ||
17 | + const current = e.currentTarget.dataset.index; | ||
18 | + this.setData({ | ||
19 | + currentChild: current, | ||
20 | + [`children[${current}].is_choose`]: !this.data.children[current].is_choose | ||
21 | + }) | ||
22 | + }, | ||
23 | + submit() { | ||
24 | + this.setData({is_showModal: true}) | ||
25 | + }, | ||
26 | + chooseNo(e) { | ||
27 | + this.setData({currentBtn: e.currentTarget.dataset.index,is_showModal: false}) | ||
28 | + wx.switchTab({url: '/pages/index/index'}) | ||
29 | + }, | ||
30 | + chooseYes(e) { | ||
31 | + this.setData({ | ||
32 | + currentBtn: e.currentTarget.dataset.index, | ||
33 | + is_showModal: false, | ||
34 | + is_showSuccessModal: true | ||
35 | + }) | ||
36 | + }, | ||
37 | + modalConfirm() { | ||
38 | + this.setData({is_showSuccessModal: false}) | ||
39 | + }, | ||
40 | + disableScroll() {}, | ||
41 | + addStudent() { | ||
42 | + wx.navigateTo({url: './add-student/add-student'}) | ||
43 | + }, | ||
44 | + /** | ||
45 | + * 生命周期函数--监听页面加载 | ||
46 | + */ | ||
47 | + onLoad: function (options) { | ||
48 | + | ||
49 | + }, | ||
50 | + | ||
51 | + /** | ||
52 | + * 生命周期函数--监听页面初次渲染完成 | ||
53 | + */ | ||
54 | + onReady: function () { | ||
55 | + | ||
56 | + }, | ||
57 | + | ||
58 | + /** | ||
59 | + * 生命周期函数--监听页面显示 | ||
60 | + */ | ||
61 | + onShow: function () { | ||
62 | + const self = this; | ||
63 | + setTimeout(function () { | ||
64 | + self.setData({show: true}) | ||
65 | + },500) | ||
66 | + }, | ||
67 | + | ||
68 | + /** | ||
69 | + * 生命周期函数--监听页面隐藏 | ||
70 | + */ | ||
71 | + onHide: function () { | ||
72 | + | ||
73 | + }, | ||
74 | + | ||
75 | + /** | ||
76 | + * 生命周期函数--监听页面卸载 | ||
77 | + */ | ||
78 | + onUnload: function () { | ||
79 | + | ||
80 | + }, | ||
81 | + | ||
82 | + /** | ||
83 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
84 | + */ | ||
85 | + onPullDownRefresh: function () { | ||
86 | + | ||
87 | + }, | ||
88 | + | ||
89 | + /** | ||
90 | + * 页面上拉触底事件的处理函数 | ||
91 | + */ | ||
92 | + onReachBottom: function () { | ||
93 | + | ||
94 | + }, | ||
95 | + | ||
96 | + /** | ||
97 | + * 用户点击右上角分享 | ||
98 | + */ | ||
99 | + onShareAppMessage: function () { | ||
100 | + | ||
101 | + } | ||
102 | +}) |
1 | +<!--pages/index/confirm-appointment-info/confirm-appointment-info.wxml--> | ||
2 | +<view class="content"> | ||
3 | + <view class="tips {{show?'active':''}}"> | ||
4 | + <!--<view>--> | ||
5 | + <view class="iconfont icon-jinggao"></view> | ||
6 | + <text>请在15分钟内确认预约,超时系统将自动取消!</text> | ||
7 | + <!--</view>--> | ||
8 | + </view> | ||
9 | + <view class="time"> | ||
10 | + <view class="line"></view> | ||
11 | + <text>预约时间 : </text> | ||
12 | + <text class="date-time">2018年10月10号 10:00-11:30</text> | ||
13 | + </view> | ||
14 | + | ||
15 | + <view class="address"> | ||
16 | + <view class="time"> | ||
17 | + <view class="line"></view> | ||
18 | + <text>预约地址 :</text> | ||
19 | + </view> | ||
20 | + <view class="address-detail"> | ||
21 | + <!--<text>--> | ||
22 | + 朝阳区万寿路5号楼马兰大厦B座301念读书馆内朝阳区读书馆内朝阳区万寿路5号楼马兰大厦B座301念读书万寿路5号楼马兰大厦B座301念读书 | ||
23 | + <!--</text>--> | ||
24 | + </view> | ||
25 | + </view> | ||
26 | + <view class="phone-num"> | ||
27 | + <view class="line"></view> | ||
28 | + <text>预约电话 :</text> | ||
29 | + <text class="phone">188****8888</text> | ||
30 | + </view> | ||
31 | + <view class="children-name"> | ||
32 | + <view class="left-name"> | ||
33 | + <view class="line"></view> | ||
34 | + <text>学员姓名</text> | ||
35 | + </view> | ||
36 | + <image src="../../../images/add_btn.png" bindtap="addStudent"></image> | ||
37 | + </view> | ||
38 | + <view class="name-box"> | ||
39 | + <view class="check-box" wx:for="{{children}}" wx:key="index" bindtap="chooseChildren" | ||
40 | + data-index="{{index}}"> | ||
41 | + <view class="name {{item.is_choose?'change-color':''}}">{{item.name}}</view> | ||
42 | + <image src="../../../images/choose_icon.png" wx:if="{{item.is_choose}}" class="check-icon"></image> | ||
43 | + </view> | ||
44 | + </view> | ||
45 | + | ||
46 | + <view class="footer"> | ||
47 | + <view class="confirm_btn" bindtap="submit"> | ||
48 | + <text>确认预约</text> | ||
49 | + </view> | ||
50 | + </view> | ||
51 | + <!--是否购买畅玩卡弹窗--> | ||
52 | + <view class="modal_box" wx:if="{{is_showModal}}" catchtouchmove="disableScroll"> | ||
53 | + <view class="background" | ||
54 | + bindtap="handleBackground" | ||
55 | + wx:if="{{is_showModal}}" | ||
56 | + catchtouchmove="disableScroll"> | ||
57 | + </view> | ||
58 | + <view class="modalBackground Augly-bouncein"> | ||
59 | + <view class="modal"> | ||
60 | + <view class="tips-word">当前学员还没有购买/兑换畅玩卡,暂不能预约实验活动,是否马上购买/兑换?</view> | ||
61 | + <view class="yes-no-btn"> | ||
62 | + <text bindtap="chooseNo" class="{{currentBtn == 0?'change-color':''}}" data-index="{{0}}">否</text> | ||
63 | + <text bindtap="chooseYes" class="{{currentBtn == 1?'change-color':''}}" data-index="{{1}}">是</text> | ||
64 | + </view> | ||
65 | + </view> | ||
66 | + </view> | ||
67 | + </view> | ||
68 | + <!--预约成功弹窗--> | ||
69 | + <view class="modal_box" wx:if="{{is_showSuccessModal}}" catchtouchmove="disableScroll"> | ||
70 | + <view class="background" | ||
71 | + bindtap="handleBackground" | ||
72 | + wx:if="{{is_showSuccessModal}}" | ||
73 | + catchtouchmove="disableScroll"> | ||
74 | + </view> | ||
75 | + <view class="modalBackground Augly-bouncein"> | ||
76 | + <view class="success-modal"> | ||
77 | + <image src="../../../images/success.jpg"></image> | ||
78 | + <view class="congratulations">恭喜您</view> | ||
79 | + <view class="appointment-success">您已经预约成功!</view> | ||
80 | + <view class="confirm-btn" bindtap="modalConfirm">确定</view> | ||
81 | + </view> | ||
82 | + </view> | ||
83 | + </view> | ||
84 | +</view> |
1 | +/* pages/index/confirm-appointment-info/confirm-appointment-info.wxss */ | ||
2 | +page { | ||
3 | + background-color: #f2f2f2; | ||
4 | +} | ||
5 | +.content { | ||
6 | + width: 100%; | ||
7 | + display: flex; | ||
8 | + flex-direction: column; | ||
9 | +} | ||
10 | +.tips { | ||
11 | + width: 100%; | ||
12 | + height: 50rpx; | ||
13 | + display: flex; | ||
14 | + align-items: center; | ||
15 | + justify-content: center; | ||
16 | + line-height: 50rpx; | ||
17 | + background-color: #FFFC5A63; | ||
18 | + position: absolute; | ||
19 | + top: -50rpx; | ||
20 | + left: 0; | ||
21 | + z-index: 3; | ||
22 | +} | ||
23 | +.active { | ||
24 | + position: absolute; | ||
25 | + top: 0rpx; | ||
26 | + left: 0; | ||
27 | + transition: top 1s; | ||
28 | +} | ||
29 | +.icon-jinggao { | ||
30 | + font-size: 24rpx; | ||
31 | + margin-right: 10rpx; | ||
32 | + color: #FC5A63; | ||
33 | +} | ||
34 | +.tips text { | ||
35 | + color: #FC5A63; | ||
36 | + font-size: 24rpx; | ||
37 | +} | ||
38 | +.time, .phone-num, .children-name { | ||
39 | + width: 100%; | ||
40 | + height: 94rpx; | ||
41 | + margin-top: 20rpx; | ||
42 | + background-color: #fff; | ||
43 | + display: flex; | ||
44 | + align-items: center; | ||
45 | + padding: 0 32rpx; | ||
46 | + -webkit-box-sizing: border-box; | ||
47 | + -moz-box-sizing: border-box; | ||
48 | + box-sizing: border-box; | ||
49 | +} | ||
50 | +.line { | ||
51 | + width: 6rpx; | ||
52 | + height: 32rpx; | ||
53 | + background-color: #3FA9F5; | ||
54 | + margin-right: 16rpx; | ||
55 | +} | ||
56 | +.time text, .phone-num text, .children-name text { | ||
57 | + color: #464646; | ||
58 | + font-size: 32rpx; | ||
59 | + /*line-height: ;*/ | ||
60 | +} | ||
61 | +.time .date-time, .phone-num .phone { | ||
62 | + color:#A3A3A3; | ||
63 | + margin-left: 26rpx; | ||
64 | +} | ||
65 | +.address { | ||
66 | + width: 100%; | ||
67 | + color: #A3A3A3; | ||
68 | + font-size: 28rpx; | ||
69 | + display: flex; | ||
70 | + flex-direction: column; | ||
71 | + align-items: center; | ||
72 | + | ||
73 | +} | ||
74 | +.address-detail { | ||
75 | + padding: 0 40rpx 50rpx 50rpx; | ||
76 | + -webkit-box-sizing: border-box; | ||
77 | + -moz-box-sizing: border-box; | ||
78 | + box-sizing: border-box; | ||
79 | + background: #ffffff; | ||
80 | +} | ||
81 | +.address-detail text { | ||
82 | + overflow : hidden; | ||
83 | + display: -webkit-box; | ||
84 | + -webkit-line-clamp: 3; | ||
85 | + -webkit-box-orient: vertical; | ||
86 | +} | ||
87 | +.children-name { | ||
88 | + justify-content: space-between; | ||
89 | +} | ||
90 | +.left-name { | ||
91 | + display: flex; | ||
92 | + align-items: center; | ||
93 | +} | ||
94 | +.children-name image{ | ||
95 | + width: 144rpx; | ||
96 | + height: 34rpx; | ||
97 | +} | ||
98 | +.name-box { | ||
99 | + width: 100%; | ||
100 | + padding: 20rpx 40rpx 50rpx 50rpx; | ||
101 | + -webkit-box-sizing: border-box; | ||
102 | + -moz-box-sizing: border-box; | ||
103 | + box-sizing: border-box; | ||
104 | + color: #A3A3A3; | ||
105 | + font-size: 28rpx; | ||
106 | + background-color: #fff; | ||
107 | + display: flex; | ||
108 | + flex-direction: column; | ||
109 | +} | ||
110 | +.name-box view { | ||
111 | + /*margin-bottom: 42rpx;*/ | ||
112 | +} | ||
113 | +.check-box { | ||
114 | + width: 50%; | ||
115 | + display: flex; | ||
116 | + justify-content: space-between; | ||
117 | + margin-bottom: 42rpx; | ||
118 | +} | ||
119 | +.check-icon { | ||
120 | + width: 30rpx; | ||
121 | + height: 24rpx; | ||
122 | +} | ||
123 | +.footer { | ||
124 | + width: 100%; | ||
125 | + position: fixed; | ||
126 | + bottom: 0; | ||
127 | + left: 0; | ||
128 | +} | ||
129 | +.confirm_btn { | ||
130 | + width: 100%; | ||
131 | + height: 98rpx; | ||
132 | + background-color: #3FA9F5; | ||
133 | + text-align: center; | ||
134 | +} | ||
135 | +.confirm_btn text { | ||
136 | + color: #ffffff; | ||
137 | + line-height: 98rpx; | ||
138 | + font-size: 36rpx; | ||
139 | +}.modal_box { | ||
140 | + width: 100%; | ||
141 | + height: 100%; | ||
142 | + position: fixed; | ||
143 | + top: 0; | ||
144 | + left: 0; | ||
145 | + z-index: 999; | ||
146 | + } | ||
147 | +.background { | ||
148 | + width: 100%; | ||
149 | + height: 100%; | ||
150 | + background: rgba(0,0,0,0.3); | ||
151 | + position: absolute; | ||
152 | + top: 0; | ||
153 | + left: 0; | ||
154 | + z-index: 999; | ||
155 | +} | ||
156 | +.modalBackground { | ||
157 | + width: 100%; | ||
158 | + height: 100%; | ||
159 | + position: absolute; | ||
160 | + top: 0; | ||
161 | + left: 0; | ||
162 | + z-index: 999; | ||
163 | + display: -webkit-box; | ||
164 | + display: -ms-flexbox; | ||
165 | + display: flex; | ||
166 | + align-items: center; | ||
167 | + justify-content: center; | ||
168 | + color: #666666; | ||
169 | +} | ||
170 | +.modal { | ||
171 | + width: 500rpx; | ||
172 | + height: 260rpx; | ||
173 | + /* height: 1100rpx; */ | ||
174 | + background: #ffffff; | ||
175 | + border-radius: 10rpx; | ||
176 | + box-sizing: border-box; | ||
177 | + /*padding: 70rpx 0 0 0;*/ | ||
178 | + overflow: hidden; | ||
179 | + position: relative; | ||
180 | +} | ||
181 | +.success-modal { | ||
182 | + width: 400rpx; | ||
183 | + height: 450rpx; | ||
184 | + display: flex; | ||
185 | + flex-direction: column; | ||
186 | + align-items: center; | ||
187 | + justify-content: center; | ||
188 | + background: #ffffff; | ||
189 | + border-radius: 22rpx; | ||
190 | +} | ||
191 | +.success-modal image { | ||
192 | + width: 236rpx; | ||
193 | + height: 170rpx; | ||
194 | +} | ||
195 | +.congratulations { | ||
196 | + font-size: 28rpx; | ||
197 | + color: #3FA9F5; | ||
198 | + margin-bottom: 14rpx; | ||
199 | +} | ||
200 | +.appointment-success { | ||
201 | + font-size: 24rpx; | ||
202 | + margin-bottom: 60rpx; | ||
203 | +} | ||
204 | +.confirm-btn { | ||
205 | + width: 80%; | ||
206 | + height: 54rpx; | ||
207 | + line-height: 54rpx; | ||
208 | + border-radius: 30rpx; | ||
209 | + text-align: center; | ||
210 | + color: #ffffff; | ||
211 | + font-size: 30rpx; | ||
212 | + background-color: #3FA9F5; | ||
213 | +} | ||
214 | +.tips-word { | ||
215 | + font-size: 26rpx; | ||
216 | + width: 100%; | ||
217 | + padding: 30rpx 40rpx 30rpx 50rpx; | ||
218 | + -webkit-box-sizing: border-box; | ||
219 | + -moz-box-sizing: border-box; | ||
220 | + box-sizing: border-box; | ||
221 | + border-bottom: 1rpx solid #d3d3d3; | ||
222 | + line-height: 38rpx; | ||
223 | +} | ||
224 | +.yes-no-btn { | ||
225 | + width: 100%; | ||
226 | + height: 84rpx; | ||
227 | + display: flex; | ||
228 | + align-items: center; | ||
229 | + font-size: 30rpx; | ||
230 | +} | ||
231 | +.yes-no-btn text { | ||
232 | + width: 50%; | ||
233 | + text-align: center; | ||
234 | + line-height: 68rpx; | ||
235 | +} | ||
236 | +.yes-no-btn text:nth-child(1) { | ||
237 | + border-right: 1rpx solid #d3d3d3; | ||
238 | +} | ||
239 | +.change-color { | ||
240 | + color: #3FA9F5; | ||
241 | +} |
pages/index/go-appointment/go-appointment.js
0 → 100644
1 | +// pages/index/go-appointment/go-appointment.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + array: ['北京市', '天津市', '上海市', '河北省'], | ||
9 | + currentCity: '北京市', | ||
10 | + is_change: false, | ||
11 | + show_submit_btn: false, | ||
12 | + areaTest: [ | ||
13 | + {area: '朝阳区', list: [{id: 1,name: '798实验室'},{id: 2,name:'木鱼湖实验室'},{id: 3,name:'南锣鼓巷实验室'}]}, | ||
14 | + {area: '东城区', list: [{id: 4,name: '798实验室'},{id: 5,name:'木鱼湖实验室'},{id: 6,name:'南锣鼓巷实验室'}]}, | ||
15 | + {area: '西城区', list: [{id: 7,name: '798实验室'},{id: 11,name:'木鱼湖实验室'},{id: 8,name:'南锣鼓巷实验室'}]}, | ||
16 | + {area: '昌平区', list: [{id: 9,name: '798实验室'},{id: 12,name:'木鱼湖实验室'},{id: 10,name:'南锣鼓巷实验室'}]}, | ||
17 | + ], | ||
18 | + test: {title: '798实验室,本实验室分为三个阶段,第一阶段由家长和孩子共同完成,第二阶段由孩子独立完成。家长在旁边指导,第三阶段巴拉巴拉', | ||
19 | + list:[{week:'周六',date: '10月20日',time:'10:00 — 11:30',rest: 6}, | ||
20 | + {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 0}, | ||
21 | + {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
22 | + {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 0}, | ||
23 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
24 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
25 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
26 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
27 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
28 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
29 | + // {week:'周日',date: '10月21日',time:'15:00 — 16:30',rest: 6}, | ||
30 | + // {week:'周六',date: '10月20日',time:'10:00 — 11:30',rest: 6} | ||
31 | + ]}, | ||
32 | + }, | ||
33 | + //选择城市 | ||
34 | + bindPickerChange: function(e) { | ||
35 | + console.log('picker发送选择改变,携带值为', e.detail.value) | ||
36 | + this.setData({ | ||
37 | + index: e.detail.value, | ||
38 | + is_change: true, | ||
39 | + }) | ||
40 | + }, | ||
41 | + //选择实验室 | ||
42 | + chooseTest(e) { | ||
43 | + console.log(e.currentTarget.dataset.index); | ||
44 | + const current = e.currentTarget.dataset.index; | ||
45 | + const current_id = e.currentTarget.dataset.id; | ||
46 | + this.setData({currentTest: current,currentId: current_id}) | ||
47 | + }, | ||
48 | + //选择时段 | ||
49 | + chooseTime(e) { | ||
50 | + console.log(e.currentTarget.dataset.index); | ||
51 | + const current = e.currentTarget.dataset.index; | ||
52 | + this.setData({currentTime: current}) | ||
53 | + }, | ||
54 | + //点击单人预约 | ||
55 | + singleAppointment() { | ||
56 | + this.setData({show_submit_btn: true}) | ||
57 | + }, | ||
58 | + //点击双人预约 | ||
59 | + doubleAppointment() { | ||
60 | + this.setData({show_submit_btn: true}) | ||
61 | + }, | ||
62 | + submit() { | ||
63 | + wx.navigateTo({url: '/pages/index/confirm-appointment-info/confirm-appointment-info'}) | ||
64 | + }, | ||
65 | + /** | ||
66 | + * 生命周期函数--监听页面加载 | ||
67 | + */ | ||
68 | + onLoad: function (options) { | ||
69 | + this.data.areaTest.forEach((v,i)=>{ | ||
70 | + Object.keys(v).forEach(v=>{ | ||
71 | + console.log(v)//取到了key | ||
72 | + console.log(this.data.areaTest[i][v])//取到了值 | ||
73 | + }) | ||
74 | + }) | ||
75 | + // console.log(this.data.areaTest); | ||
76 | + }, | ||
77 | + | ||
78 | + /** | ||
79 | + * 生命周期函数--监听页面初次渲染完成 | ||
80 | + */ | ||
81 | + onReady: function () { | ||
82 | + | ||
83 | + }, | ||
84 | + | ||
85 | + /** | ||
86 | + * 生命周期函数--监听页面显示 | ||
87 | + */ | ||
88 | + onShow: function () { | ||
89 | + | ||
90 | + }, | ||
91 | + | ||
92 | + /** | ||
93 | + * 生命周期函数--监听页面隐藏 | ||
94 | + */ | ||
95 | + onHide: function () { | ||
96 | + | ||
97 | + }, | ||
98 | + | ||
99 | + /** | ||
100 | + * 生命周期函数--监听页面卸载 | ||
101 | + */ | ||
102 | + onUnload: function () { | ||
103 | + | ||
104 | + }, | ||
105 | + | ||
106 | + /** | ||
107 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
108 | + */ | ||
109 | + onPullDownRefresh: function () { | ||
110 | + | ||
111 | + }, | ||
112 | + | ||
113 | + /** | ||
114 | + * 页面上拉触底事件的处理函数 | ||
115 | + */ | ||
116 | + onReachBottom: function () { | ||
117 | + | ||
118 | + }, | ||
119 | + | ||
120 | + /** | ||
121 | + * 用户点击右上角分享 | ||
122 | + */ | ||
123 | + onShareAppMessage: function () { | ||
124 | + | ||
125 | + } | ||
126 | +}) |
1 | +<!--pages/index/go-appointment/go-appointment.wxml--> | ||
2 | +<view class="content"> | ||
3 | + <view class="city_box"> | ||
4 | + <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}"> | ||
5 | + <view class="select"> | ||
6 | + <view class="picker" wx:if="{{is_change}}"> | ||
7 | + {{array[index]}} | ||
8 | + </view> | ||
9 | + <view wx:else>北京市</view> | ||
10 | + <view class="iconfont icon-daosanjiao"></view> | ||
11 | + </view> | ||
12 | + </picker> | ||
13 | + </view> | ||
14 | + | ||
15 | + <view class="section"> | ||
16 | + <scroll-view class="area_box" scroll-y> | ||
17 | + <block wx:for="{{areaTest}}" wx:key="index"> | ||
18 | + <view class="area-test"> | ||
19 | + <view class="area">{{item.area}}</view> | ||
20 | + <view class="test-list"> | ||
21 | + <view class="list-item-box"> | ||
22 | + <block wx:for="{{item.list}}" wx:key="index"> | ||
23 | + <view class="list-item" bindtap="chooseTest" data-index="{{index}}" | ||
24 | + data-id="{{item.id}}"> | ||
25 | + <image src="../../../images/blue_line.png" wx:if="{{currentId === item.id}}" | ||
26 | + class="blue-line"></image> | ||
27 | + <view class="test {{currentId === item.id?'change-color':''}}">{{item.name}}</view> | ||
28 | + </view> | ||
29 | + </block> | ||
30 | + </view> | ||
31 | + </view> | ||
32 | + </view> | ||
33 | + </block> | ||
34 | + </scroll-view> | ||
35 | + | ||
36 | + <view class="test_box"> | ||
37 | + <scroll-view scroll-y class="test_describe"> | ||
38 | + {{test.title}} | ||
39 | + </scroll-view> | ||
40 | + <scroll-view class="time-list-box" scroll-y> | ||
41 | + <view wx:for="{{test.list}}" wx:key="index" class="time-list" bindtap="chooseTime" data-index="{{index}}"> | ||
42 | + <image src="../../../images/blue_line.png" wx:if="{{currentTime === index && item.rest !== 0}}" | ||
43 | + class="blue-line"></image> | ||
44 | + <view class="right-content {{item.rest === 0? 'change-gray':''}}"> | ||
45 | + <view class="{{currentTime === index && item.rest !== 0? 'change-color':''}}">{{item.week}} {{item.date}}</view> | ||
46 | + <view class="bottom-time-box"> | ||
47 | + <text class="time {{currentTime === index && item.rest !== 0? 'change-color':''}}">{{item.time}}</text> | ||
48 | + <text class="rest {{item.rest === 0? 'change-gray':''}}">剩余: {{item.rest}}</text> | ||
49 | + </view> | ||
50 | + </view> | ||
51 | + </view> | ||
52 | + </scroll-view> | ||
53 | + </view> | ||
54 | + </view> | ||
55 | + | ||
56 | + <view class="footer"> | ||
57 | + <view class="confirm_btn" bindtap="submit" wx:if="{{show_submit_btn}}"> | ||
58 | + <text>提 交</text> | ||
59 | + </view> | ||
60 | + <view class="appointment-box" wx:else> | ||
61 | + <text class="single" bindtap="singleAppointment">单人预约</text> | ||
62 | + <text class="double" bindtap="doubleAppointment">双人预约</text> | ||
63 | + </view> | ||
64 | + <!--<view>提 交</view>--> | ||
65 | + </view> | ||
66 | +</view> |
1 | +/* pages/index/go-appointment/go-appointment.wxss */ | ||
2 | +page { | ||
3 | + background-color: #f2f2f2; | ||
4 | +} | ||
5 | +.city_box { | ||
6 | + width: 100%; | ||
7 | + /*display: flex;*/ | ||
8 | + /*align-items: center;*/ | ||
9 | + /*justify-content: center;*/ | ||
10 | + /* height: 98rpx; */ | ||
11 | + color: #393939; | ||
12 | + font-size: 32rpx; | ||
13 | + position: fixed; | ||
14 | + top: 0; | ||
15 | + left: 0; | ||
16 | + background-color: #fff; | ||
17 | +} | ||
18 | +.select { | ||
19 | + width: 100%; | ||
20 | + height: 98rpx; | ||
21 | + display: flex; | ||
22 | + align-items: center; | ||
23 | + justify-content: center; | ||
24 | +} | ||
25 | +picker { | ||
26 | + width: 100%; | ||
27 | + display: flex; | ||
28 | + align-items: center; | ||
29 | + justify-content: center; | ||
30 | +} | ||
31 | +.icon-daosanjiao { | ||
32 | + font-size: 26rpx; | ||
33 | + color: #6F6F6F; | ||
34 | + margin-left: 24rpx; | ||
35 | +} | ||
36 | +.section { | ||
37 | + margin-top: 118rpx; | ||
38 | + display: flex; | ||
39 | +} | ||
40 | +.area_box { | ||
41 | + width: 270rpx; | ||
42 | + height: 900rpx; | ||
43 | + background-color: #fff; | ||
44 | +} | ||
45 | +.area-test { | ||
46 | + display: flex; | ||
47 | + flex-direction: column; | ||
48 | + align-items: center; | ||
49 | + justify-content: center; | ||
50 | +} | ||
51 | +.area { | ||
52 | + width: 100%; | ||
53 | + height: 60rpx; | ||
54 | + line-height: 60rpx; | ||
55 | + background-color: #D5F0FF; | ||
56 | + font-size: 32rpx; | ||
57 | + color: #000000; | ||
58 | + text-align: center; | ||
59 | +} | ||
60 | +.test-list { | ||
61 | + width: 100%; | ||
62 | + /* padding: 0 24rpx; */ | ||
63 | + -webkit-box-sizing: border-box; | ||
64 | + -moz-box-sizing: border-box; | ||
65 | + box-sizing: border-box; | ||
66 | +} | ||
67 | +/*.test-list .test:last-child{*/ | ||
68 | + /*border: none;*/ | ||
69 | +/*}*/ | ||
70 | +.list-item-box { | ||
71 | + display: flex; | ||
72 | + align-items: center; | ||
73 | + padding:0 24rpx; | ||
74 | + flex-direction: column; | ||
75 | +} | ||
76 | +.list-item { | ||
77 | + width: 100%; | ||
78 | + border-bottom: 1rpx solid #DEDEDE; | ||
79 | + display: flex; | ||
80 | + position: relative; | ||
81 | +} | ||
82 | +.list-item-box .list-item:last-child { | ||
83 | + border: none; | ||
84 | +} | ||
85 | +.reduce-padding { | ||
86 | + padding: 0 24rpx 0 0; | ||
87 | +} | ||
88 | +.list-item .blue-line { | ||
89 | + width: 10rpx; | ||
90 | + height: 100rpx; | ||
91 | + margin-right: 12rpx; | ||
92 | + position: absolute; | ||
93 | + top:0; | ||
94 | + left: -22rpx; | ||
95 | +} | ||
96 | +.test { | ||
97 | + width: 100%; | ||
98 | + height: 100rpx; | ||
99 | + line-height: 100rpx; | ||
100 | + color: #6F6F6F; | ||
101 | + font-size: 28rpx; | ||
102 | + /*border-bottom: 1rpx solid #DEDEDE;*/ | ||
103 | +} | ||
104 | +.change-color { | ||
105 | + color:#006BF1; | ||
106 | +} | ||
107 | +.test_box { | ||
108 | + flex: 1; | ||
109 | + margin-left: 20rpx; | ||
110 | +} | ||
111 | +.test_describe { | ||
112 | + width: 100%; | ||
113 | + height: 200rpx; | ||
114 | + background-color: #fff; | ||
115 | + margin-bottom: 20rpx; | ||
116 | + padding: 38rpx 20rpx; | ||
117 | + -webkit-box-sizing: border-box; | ||
118 | + -moz-box-sizing: border-box; | ||
119 | + box-sizing: border-box; | ||
120 | + color: #6F6F6F; | ||
121 | + font-size: 28rpx; | ||
122 | +} | ||
123 | +.time-list-box { | ||
124 | + width: 100%; | ||
125 | + margin-bottom: 10rpx; | ||
126 | + height: 680rpx; | ||
127 | +} | ||
128 | +.time-list { | ||
129 | + width: 100%; | ||
130 | + height: 140rpx; | ||
131 | + background-color: #fff; | ||
132 | + margin-bottom: 10rpx; | ||
133 | + padding: 30rpx 40rpx; | ||
134 | + color: #6F6F6F; | ||
135 | + font-size: 28rpx; | ||
136 | + -webkit-box-sizing: border-box; | ||
137 | + -moz-box-sizing: border-box; | ||
138 | + box-sizing: border-box; | ||
139 | + display: flex; | ||
140 | + justify-content: space-between; | ||
141 | + position: relative; | ||
142 | +} | ||
143 | +.time-list .blue-line { | ||
144 | + width: 10rpx; | ||
145 | + height: 100rpx; | ||
146 | + margin-right: 12rpx; | ||
147 | + position: absolute; | ||
148 | + top: 20rpx; | ||
149 | + left: 0rpx; | ||
150 | +} | ||
151 | +.right-content { | ||
152 | + width: 100%; | ||
153 | + display: flex; | ||
154 | + flex-direction: column; | ||
155 | + justify-content: space-between; | ||
156 | +} | ||
157 | +.bottom-time-box { | ||
158 | + width: 100%; | ||
159 | + display: flex; | ||
160 | + justify-content: space-between; | ||
161 | + align-items: center; | ||
162 | +} | ||
163 | +.time { | ||
164 | + font-size: 24rpx; | ||
165 | +} | ||
166 | +.rest { | ||
167 | + font-size: 24rpx; | ||
168 | + color: #FC5B63; | ||
169 | +} | ||
170 | +.change-gray { | ||
171 | + color: #C3C3C3; | ||
172 | +} | ||
173 | +.confirm_box { | ||
174 | + width: 100%; | ||
175 | + padding: 0 32rpx; | ||
176 | + -webkit-box-sizing: border-box; | ||
177 | + -moz-box-sizing: border-box; | ||
178 | + box-sizing: border-box; | ||
179 | +} | ||
180 | +.confirm_btn { | ||
181 | + width: 100%; | ||
182 | + height: 98rpx; | ||
183 | + background-color: #3FA9F5; | ||
184 | + text-align: center; | ||
185 | +} | ||
186 | +.confirm_btn text { | ||
187 | + color: #ffffff; | ||
188 | + line-height: 98rpx; | ||
189 | + font-size: 36rpx; | ||
190 | +} | ||
191 | +.appointment-box { | ||
192 | + width: 100%; | ||
193 | + height: 98rpx; | ||
194 | + display: flex; | ||
195 | + align-items: center; | ||
196 | + color: #ffffff; | ||
197 | +} | ||
198 | +.appointment-box text { | ||
199 | + width: 50%; | ||
200 | + text-align: center; | ||
201 | + font-size: 36rpx; | ||
202 | + line-height: 98rpx; | ||
203 | +} | ||
204 | +.single { | ||
205 | + background: -webkit-linear-gradient(left, RGBA(255, 179, 4, 1), RGBA(251, 150, 0, 1)); /* Safari 5.1 - 6.0 */ | ||
206 | + background: -o-linear-gradient(right, RGBA(255, 179, 4, 1), RGBA(251, 150, 0, 1)); /* Opera 11.1 - 12.0 */ | ||
207 | + background: -moz-linear-gradient(right, RGBA(255, 179, 4, 1), RGBA(251, 150, 0, 1)); /* Firefox 3.6 - 15 */ | ||
208 | + background: linear-gradient(to right, RGBA(255, 179, 4, 1), RGBA(251, 150, 0, 1)); /* 标准的语法 */ | ||
209 | +} | ||
210 | +.double { | ||
211 | + background: -webkit-linear-gradient(left, RGBA(252, 116, 0, 1), RGBA(255, 83, 2, 1)); /* Safari 5.1 - 6.0 */ | ||
212 | + background: -o-linear-gradient(right, RGBA(252, 116, 0, 1), RGBA(255, 83, 2, 1)); /* Opera 11.1 - 12.0 */ | ||
213 | + background: -moz-linear-gradient(right, RGBA(252, 116, 0, 1), RGBA(255, 83, 2, 1)); /* Firefox 3.6 - 15 */ | ||
214 | + background: linear-gradient(to right, RGBA(252, 116, 0, 1), RGBA(255, 83, 2, 1)); /* 标准的语法 */ | ||
215 | +} | ||
216 | +.footer { | ||
217 | + width: 100%; | ||
218 | + position: fixed; | ||
219 | + bottom: 0; | ||
220 | + left: 0; | ||
221 | +} |
pages/index/index.js
0 → 100644
1 | +//index.js | ||
2 | +//获取应用实例 | ||
3 | +const app = getApp() | ||
4 | + | ||
5 | +Page({ | ||
6 | + data: { | ||
7 | + hasPhone: true, | ||
8 | + imgUrls:[ | ||
9 | + {'url': '../../images/banner.jpg'}, | ||
10 | + {'url': '../../images/banner.jpg'}, | ||
11 | + {'url': '../../images/banner.jpg'},], | ||
12 | + autoplay: true, //是否自动轮播 | ||
13 | + interval: 2000, //间隔时间 | ||
14 | + duration: 500, //滑动时间 | ||
15 | + this_week_test_info: { | ||
16 | + info: [ | ||
17 | + {time: '11月01号-11月07号',url: '../../images/test_img.jpg',}, | ||
18 | + {time: '11月08号-11月14号',url: '../../images/test_img.jpg'}, | ||
19 | + ], | ||
20 | + is_this_week: true, | ||
21 | + ordered: false, | ||
22 | + is_past: false, | ||
23 | + }, | ||
24 | + past_test_info: { | ||
25 | + info: [ | ||
26 | + {time: '10月01号-10月07号',url: '../../images/test_img.jpg',}, | ||
27 | + {time: '10月08号-10月14号',url: '../../images/test_img.jpg'}, | ||
28 | + {time: '10月15号-10月21号',url: '../../images/test_img.jpg'}, | ||
29 | + ], | ||
30 | + is_this_week: false, | ||
31 | + ordered: false, | ||
32 | + is_past: true, | ||
33 | + }, | ||
34 | + }, | ||
35 | + swiperChange: function (e) { //切换轮播图 | ||
36 | + this.setData({ | ||
37 | + currentSwiper: e.detail.current | ||
38 | + }) | ||
39 | + }, | ||
40 | + goPhoneCode() { | ||
41 | + wx.navigateTo({url: '/pages/index/phone-code/phone-code'}) | ||
42 | + }, | ||
43 | + //点击购买畅玩卡 | ||
44 | + goBuyCard() { | ||
45 | + wx.navigateTo({url: './activity-detail/activity-detail'}) | ||
46 | + }, | ||
47 | + //点击进入活动详情 | ||
48 | + goTestDetail(e) { | ||
49 | + // console.log(e); | ||
50 | + const current = e.currentTarget.dataset.index; | ||
51 | + wx.navigateTo({url: './activity-detail/activity-detail'}) | ||
52 | + }, | ||
53 | + //前往预约 | ||
54 | + goAppointment (e) { | ||
55 | + const current = e.currentTarget.dataset.index; | ||
56 | + wx.navigateTo({url: './go-appointment/go-appointment'}) | ||
57 | + }, | ||
58 | + onLoad: function () { | ||
59 | + if (app.globalData.userInfo) { | ||
60 | + this.setData({ | ||
61 | + userInfo: app.globalData.userInfo, | ||
62 | + hasUserInfo: true | ||
63 | + }) | ||
64 | + } else if (this.data.canIUse){ | ||
65 | + // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 | ||
66 | + // 所以此处加入 callback 以防止这种情况 | ||
67 | + app.userInfoReadyCallback = res => { | ||
68 | + this.setData({ | ||
69 | + userInfo: res.userInfo, | ||
70 | + hasUserInfo: true | ||
71 | + }) | ||
72 | + } | ||
73 | + } else { | ||
74 | + // 在没有 open-type=getUserInfo 版本的兼容处理 | ||
75 | + wx.getUserInfo({ | ||
76 | + success: res => { | ||
77 | + app.globalData.userInfo = res.userInfo | ||
78 | + this.setData({ | ||
79 | + userInfo: res.userInfo, | ||
80 | + hasUserInfo: true | ||
81 | + }) | ||
82 | + } | ||
83 | + }) | ||
84 | + } | ||
85 | + }, | ||
86 | + getUserInfo: function(e) { | ||
87 | + console.log(e) | ||
88 | + app.globalData.userInfo = e.detail.userInfo | ||
89 | + this.setData({ | ||
90 | + userInfo: e.detail.userInfo, | ||
91 | + hasUserInfo: true | ||
92 | + }) | ||
93 | + } | ||
94 | +}) |
pages/index/index.json
0 → 100644
1 | +{} |
pages/index/index.wxml
0 → 100644
1 | +<!--index.wxml--> | ||
2 | +<view class="container"> | ||
3 | + <!--蒙层--> | ||
4 | + <view class="modal" wx:if="{{!hasPhone}}" bindtap="goPhoneCode"></view> | ||
5 | + | ||
6 | + <!--轮播图--> | ||
7 | + <view class="wrap"> | ||
8 | + <swiper autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" circular="true" | ||
9 | + bindchange="swiperChange"> | ||
10 | + <block wx:for="{{imgUrls}}" wx:key="index"> | ||
11 | + <swiper-item> | ||
12 | + <navigator url="{{item.url}}" hover-class="navigator-hover"> | ||
13 | + <view class="index_top"> | ||
14 | + <image src="{{item.url}}" class="slide-image" mode="aspectFill"/> | ||
15 | + </view> | ||
16 | + </navigator> | ||
17 | + </swiper-item> | ||
18 | + </block> | ||
19 | + </swiper> | ||
20 | + <view class="dots"> | ||
21 | + <block wx:for="{{ imgUrls}}" wx:key> | ||
22 | + <view class="dot{{index == currentSwiper ? ' active' : ''}}"></view> | ||
23 | + </block> | ||
24 | + </view> | ||
25 | + </view> | ||
26 | + | ||
27 | + <!--购买--> | ||
28 | + <view class="btn-box" bindtap="goBuyCard"> | ||
29 | + <view class="buy-btn"> | ||
30 | + <text>点击图片可跳转到购买页</text> | ||
31 | + </view> | ||
32 | + </view> | ||
33 | + | ||
34 | + <!--实验列表--> | ||
35 | + <import src="/templates/templates.wxml" /> | ||
36 | + <view class="past_template"> | ||
37 | + <template is="experiment" data="{{...this_week_test_info}}"></template> | ||
38 | + <template is="experiment" data="{{...past_test_info}}"></template> | ||
39 | + </view> | ||
40 | +</view> |
pages/index/index.wxss
0 → 100644
1 | +/**index.wxss**/ | ||
2 | +@import "../../templates/templates.wxss"; | ||
3 | + | ||
4 | +page { | ||
5 | + background-color: #f2f2f2; | ||
6 | +} | ||
7 | +.container { | ||
8 | + position: relative; | ||
9 | +} | ||
10 | +.modal { | ||
11 | + width: 100%; | ||
12 | + height: 100%; | ||
13 | + position: absolute; | ||
14 | + left: 0; | ||
15 | + top: 0; | ||
16 | + background-color: #000000; | ||
17 | + opacity: 0; | ||
18 | + z-index: 10; | ||
19 | +} | ||
20 | + | ||
21 | +.wrap { | ||
22 | + height: auto; | ||
23 | + position: relative; | ||
24 | +} | ||
25 | + | ||
26 | +swiper { | ||
27 | + display: block; | ||
28 | + height: 450rpx; | ||
29 | +} | ||
30 | + | ||
31 | +/*用来包裹所有的小圆点 */ | ||
32 | + | ||
33 | +.dots { | ||
34 | + width: 156rpx; | ||
35 | + height: 36rpx; | ||
36 | + display: flex; | ||
37 | + flex-direction: row; | ||
38 | + position: absolute; | ||
39 | + left: 320rpx; | ||
40 | + bottom: 20rpx; | ||
41 | + z-index: 10; | ||
42 | +} | ||
43 | + | ||
44 | +/*未选中时的小圆点样式 */ | ||
45 | + | ||
46 | +.dot { | ||
47 | + width: 16rpx; | ||
48 | + height: 16rpx; | ||
49 | + border-radius: 50%; | ||
50 | + margin-right: 26rpx; | ||
51 | + background-color: white; | ||
52 | + opacity: 0.6; | ||
53 | +} | ||
54 | + | ||
55 | +/*选中以后的小圆点样式 */ | ||
56 | + | ||
57 | +.active { | ||
58 | + width: 30rpx; | ||
59 | + height: 16rpx; | ||
60 | + border-radius: 8rpx; | ||
61 | + opacity: 1; | ||
62 | +} | ||
63 | + | ||
64 | +.index_top { | ||
65 | + width: 100%; | ||
66 | + height: 450rpx; | ||
67 | + overflow: hidden; | ||
68 | +} | ||
69 | + | ||
70 | +.index_top image { | ||
71 | + width: 100%; | ||
72 | + height: 100%; | ||
73 | +} | ||
74 | + | ||
75 | +.btn-box { | ||
76 | + padding: 22rpx 20rpx; | ||
77 | + box-sizing: border-box; | ||
78 | + background: #f2f2f2; | ||
79 | +} | ||
80 | + | ||
81 | +.buy-btn { | ||
82 | + width: 100%; | ||
83 | + height: 150rpx; | ||
84 | + /*padding: 22rpx 20rpx;*/ | ||
85 | + /*margin-top: 22rpx;*/ | ||
86 | + /*margin-bottom: 22rpx;*/ | ||
87 | + /*margin-left: 20rpx;*/ | ||
88 | + /*margin-right: 20rpx;*/ | ||
89 | + box-sizing: border-box; | ||
90 | + background: #5AB7F9; | ||
91 | + border-radius: 20rpx; | ||
92 | + display: flex; | ||
93 | + align-items: center; | ||
94 | + justify-content: center; | ||
95 | +} | ||
96 | +.buy-btn text { | ||
97 | + color: #ffffff; | ||
98 | + font-size: 24rpx; | ||
99 | +} | ||
100 | +.experiment_box:nth-child(2) { | ||
101 | + margin-bottom: 0; | ||
102 | +} |
pages/index/phone-code/phone-code.js
0 → 100644
1 | +// pages/index/phone-code/phone-code.js | ||
2 | +var interval = null //倒计时函数 | ||
3 | +Page({ | ||
4 | + | ||
5 | + /** | ||
6 | + * 页面的初始数据 | ||
7 | + */ | ||
8 | + data: { | ||
9 | + fun_id: 2, | ||
10 | + time: '获取验证码', //倒计时 | ||
11 | + currentTime: 61 | ||
12 | + }, | ||
13 | + getCode: function (options) { | ||
14 | + var that = this; | ||
15 | + var currentTime = that.data.currentTime; | ||
16 | + interval = setInterval(function () { | ||
17 | + currentTime--; | ||
18 | + that.setData({ | ||
19 | + time: currentTime + '秒' | ||
20 | + }) | ||
21 | + if (currentTime <= 0) { | ||
22 | + clearInterval(interval); | ||
23 | + that.setData({ | ||
24 | + time: '重新发送', | ||
25 | + currentTime: 61, | ||
26 | + disabled: false | ||
27 | + }) | ||
28 | + } | ||
29 | + }, 1000) | ||
30 | + }, | ||
31 | + getVerificationCode() { | ||
32 | + this.getCode(); | ||
33 | + var that = this; | ||
34 | + that.setData({ | ||
35 | + disabled: true | ||
36 | + }) | ||
37 | + }, | ||
38 | + /** | ||
39 | + * 生命周期函数--监听页面加载 | ||
40 | + */ | ||
41 | + onLoad: function (options) { | ||
42 | + | ||
43 | + }, | ||
44 | + | ||
45 | + /** | ||
46 | + * 生命周期函数--监听页面初次渲染完成 | ||
47 | + */ | ||
48 | + onReady: function () { | ||
49 | + | ||
50 | + }, | ||
51 | + | ||
52 | + /** | ||
53 | + * 生命周期函数--监听页面显示 | ||
54 | + */ | ||
55 | + onShow: function () { | ||
56 | + | ||
57 | + }, | ||
58 | + | ||
59 | + /** | ||
60 | + * 生命周期函数--监听页面隐藏 | ||
61 | + */ | ||
62 | + onHide: function () { | ||
63 | + | ||
64 | + }, | ||
65 | + | ||
66 | + /** | ||
67 | + * 生命周期函数--监听页面卸载 | ||
68 | + */ | ||
69 | + onUnload: function () { | ||
70 | + | ||
71 | + }, | ||
72 | + | ||
73 | + /** | ||
74 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
75 | + */ | ||
76 | + onPullDownRefresh: function () { | ||
77 | + | ||
78 | + }, | ||
79 | + | ||
80 | + /** | ||
81 | + * 页面上拉触底事件的处理函数 | ||
82 | + */ | ||
83 | + onReachBottom: function () { | ||
84 | + | ||
85 | + }, | ||
86 | + | ||
87 | + /** | ||
88 | + * 用户点击右上角分享 | ||
89 | + */ | ||
90 | + onShareAppMessage: function () { | ||
91 | + | ||
92 | + } | ||
93 | +}) |
pages/index/phone-code/phone-code.json
0 → 100644
pages/index/phone-code/phone-code.wxml
0 → 100644
1 | +<!--pages/index/phone-code/phone-code.wxml--> | ||
2 | +<view class="content_box"> | ||
3 | + <view class="img_box"> | ||
4 | + <image src="../../../images/logo.png"></image> | ||
5 | + </view> | ||
6 | + | ||
7 | + <view class="phone_box"> | ||
8 | + <input type="number" placeholder="请输入您的手机号" placeholder-class="placeholder" class="phone_num"/> | ||
9 | + <view class="code_box"> | ||
10 | + <input type="number" placeholder="输入验证码" placeholder-class="placeholder"/> | ||
11 | + <button class="button" disabled="{{disabled}}" data-id="2" bindtap="getVerificationCode" > | ||
12 | + {{time}} | ||
13 | + </button> | ||
14 | + </view> | ||
15 | + </view> | ||
16 | + | ||
17 | + <view class="confirm_box"> | ||
18 | + <view class="confirm_btn"> | ||
19 | + <text>确 定</text> | ||
20 | + </view> | ||
21 | + </view> | ||
22 | +</view> |
pages/index/phone-code/phone-code.wxss
0 → 100644
1 | +/* pages/index/phone-code/phone-code.wxss */ | ||
2 | +page { | ||
3 | + background-color: #fff; | ||
4 | +} | ||
5 | +.content_box { | ||
6 | + display: flex; | ||
7 | + flex-direction: column; | ||
8 | + align-items: center; | ||
9 | +} | ||
10 | +.img_box { | ||
11 | + width: 366rpx; | ||
12 | + height: 366rpx; | ||
13 | + margin-top: 106rpx; | ||
14 | +} | ||
15 | +.img_box image { | ||
16 | + width: 100%; | ||
17 | + height: 100%; | ||
18 | +} | ||
19 | +.phone_box { | ||
20 | + width: 100%; | ||
21 | + padding: 32rpx; | ||
22 | + -webkit-box-sizing: border-box; | ||
23 | + -moz-box-sizing: border-box; | ||
24 | + box-sizing: border-box; | ||
25 | +} | ||
26 | +.phone_box .phone_num { | ||
27 | + border-bottom: 1rpx solid #C3C3C3; | ||
28 | + margin-bottom: 42rpx; | ||
29 | + height: 100rpx; | ||
30 | +} | ||
31 | +.placeholder { | ||
32 | + color: #c3c3c3; | ||
33 | + font-size: 32rpx; | ||
34 | +} | ||
35 | +.code_box { | ||
36 | + display: flex; | ||
37 | + align-items: center; | ||
38 | + justify-content: space-between; | ||
39 | + margin-bottom: 0; | ||
40 | + border-bottom: 1rpx solid #C3C3C3; | ||
41 | + height: 100rpx; | ||
42 | +} | ||
43 | +.button { | ||
44 | + background-color: #fff; | ||
45 | + display: inline-block; | ||
46 | + font-size: 26rpx; | ||
47 | + color: #3FA9F5; | ||
48 | + /* border: 1px solid #888; */ | ||
49 | + border-radius: 10rpx; | ||
50 | + width: 160rpx; | ||
51 | + height: 70rpx; | ||
52 | + line-height: 70rpx; | ||
53 | + z-index: 2; | ||
54 | + padding-right: 0; | ||
55 | + padding-left: 0; | ||
56 | + margin: 0; | ||
57 | +} | ||
58 | +.button:after { | ||
59 | + border: none; | ||
60 | +} | ||
61 | +.confirm_box { | ||
62 | + width: 100%; | ||
63 | + padding: 0 32rpx; | ||
64 | + -webkit-box-sizing: border-box; | ||
65 | + -moz-box-sizing: border-box; | ||
66 | + box-sizing: border-box; | ||
67 | +} | ||
68 | +.confirm_btn { | ||
69 | + width: 100%; | ||
70 | + height: 80rpx; | ||
71 | + background-color: #3FA9F5; | ||
72 | + /* margin-top: 68rpx; */ | ||
73 | + margin: 68rpx 0; | ||
74 | + /* padding: 32rpx; */ | ||
75 | + /*-webkit-box-sizing: border-box;*/ | ||
76 | + /*-moz-box-sizing: border-box;*/ | ||
77 | + /*box-sizing: border-box;*/ | ||
78 | + text-align: center; | ||
79 | + border-radius: 10rpx; | ||
80 | +} | ||
81 | +.confirm_btn text { | ||
82 | + color: #ffffff; | ||
83 | + line-height: 80rpx; | ||
84 | + font-size: 36rpx; | ||
85 | +} |
pages/my/all-appointment/all-appointment.js
0 → 100644
1 | +// pages/my/all-appointment/all-appointment.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + tab: ['全部', '待确认', '已预约', '已取消', '已结束'], | ||
9 | + currentTab: 0, | ||
10 | + }, | ||
11 | + changeTab(e) { | ||
12 | + const current = e.currentTarget.dataset.index; | ||
13 | + this.setData({currentTab: current}); | ||
14 | + wx.setNavigationBarTitle({ | ||
15 | + title: this.data.tab[current] | ||
16 | + }) | ||
17 | + }, | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面加载 | ||
20 | + */ | ||
21 | + onLoad: function (options) { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面初次渲染完成 | ||
27 | + */ | ||
28 | + onReady: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面显示 | ||
34 | + */ | ||
35 | + onShow: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面隐藏 | ||
41 | + */ | ||
42 | + onHide: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 生命周期函数--监听页面卸载 | ||
48 | + */ | ||
49 | + onUnload: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
55 | + */ | ||
56 | + onPullDownRefresh: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 页面上拉触底事件的处理函数 | ||
62 | + */ | ||
63 | + onReachBottom: function () { | ||
64 | + | ||
65 | + }, | ||
66 | + | ||
67 | + /** | ||
68 | + * 用户点击右上角分享 | ||
69 | + */ | ||
70 | + onShareAppMessage: function () { | ||
71 | + | ||
72 | + } | ||
73 | +}) |
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}}" | ||
6 | + class="{{currentTab == index?'change-color':''}}">{{item}}</view> | ||
7 | + </view> | ||
8 | + | ||
9 | + <!--预约列表--> | ||
10 | + <view class="list-box"> | ||
11 | + <view class="order-box"> | ||
12 | + | ||
13 | + <view class="head"> | ||
14 | + <text class="number">预约单号:000120180208</text> | ||
15 | + <text class="appointment-state" wx:if="{{currentTab === 1}}" style="color: #FC5B63;">待确认</text> | ||
16 | + <text class="appointment-state" wx:if="{{currentTab === 2}}">已预约</text> | ||
17 | + <text class="appointment-state" wx:if="{{currentTab === 3}}" style="color: #464646;">已取消</text> | ||
18 | + <text class="appointment-state" wx:if="{{currentTab === 4}}" style="color: #C3C3C3;">已结束</text> | ||
19 | + </view> | ||
20 | + | ||
21 | + <view class="section"> | ||
22 | + <image src="../../../images/red_line.png" wx:if="{{currentTab === 1}}" class="blue-line"></image> | ||
23 | + <image src="../../../images/blue_line.png" wx:if="{{currentTab === 2}}" class="blue-line"></image> | ||
24 | + <image src="../../../images/deep_grey_line.png" wx:if="{{currentTab === 3}}" class="blue-line"></image> | ||
25 | + <image src="../../../images/grey_line.png" wx:if="{{currentTab === 4}}" class="blue-line"></image> | ||
26 | + | ||
27 | + <view class="right-box"> | ||
28 | + <view class="right-top-box"> | ||
29 | + <view class="iconfont icon-dingwei"></view> | ||
30 | + <view class="address">北京市朝阳区万寿路马兰大厦B座北京市朝阳区万寿路马兰大厦B座</view> | ||
31 | + </view> | ||
32 | + | ||
33 | + <view class="right-bottom-box"> | ||
34 | + <view class="iconfont icon-shangwutubiao"></view> | ||
35 | + <view class="date-box"> | ||
36 | + <view class="date">预约日期:2018.09.02 10:00-11:30</view> | ||
37 | + | ||
38 | + <view class="not_confirm" wx:if="{{currentTab === 1}}"> | ||
39 | + <view class="go-cancel">取消</view> | ||
40 | + <view class="go-confirm">去确认</view> | ||
41 | + </view> | ||
42 | + <view class="cancel" wx:if="{{currentTab === 2}}">取消</view> | ||
43 | + <view class="iconfont icon-quxiao" wx:if="{{currentTab === 3}}"></view> | ||
44 | + <view class="iconfont icon-jieshu" wx:if="{{currentTab === 4}}"></view> | ||
45 | + </view> | ||
46 | + </view> | ||
47 | + </view> | ||
48 | + </view> | ||
49 | + | ||
50 | + | ||
51 | + </view> | ||
52 | + </view> | ||
53 | +</view> |
1 | +/* pages/my/all-appointment/all-appointment.wxss */ | ||
2 | +page { | ||
3 | + background-color: #f2f2f2; | ||
4 | +} | ||
5 | +.tab-box { | ||
6 | + width: 100%; | ||
7 | + height: 88rpx; | ||
8 | + display: flex; | ||
9 | + align-items: center; | ||
10 | + justify-content: space-between; | ||
11 | + color: #464646; | ||
12 | + font-size: 30rpx; | ||
13 | + padding: 0 40rpx; | ||
14 | + -webkit-box-sizing: border-box; | ||
15 | + -moz-box-sizing: border-box; | ||
16 | + box-sizing: border-box; | ||
17 | + background-color: #fff; | ||
18 | + /*border-bottom: 4rpx solid #3FA9F5;*/ | ||
19 | +} | ||
20 | +.tab-box view { | ||
21 | + line-height: 80rpx; | ||
22 | + /*position: relative;*/ | ||
23 | +} | ||
24 | +.change-color { | ||
25 | + color: #3FA9F5; | ||
26 | + border-bottom: 4rpx solid #3FA9F5; | ||
27 | +} | ||
28 | +.list-box { | ||
29 | + width: 100%; | ||
30 | + padding: 22rpx 20rpx; | ||
31 | + -webkit-box-sizing: border-box; | ||
32 | + -moz-box-sizing: border-box; | ||
33 | + box-sizing: border-box; | ||
34 | +} | ||
35 | +.order-box { | ||
36 | + /* height: 274rpx; */ | ||
37 | + border-radius: 20rpx; | ||
38 | + background-color: #fff; | ||
39 | + margin-bottom: 20rpx; | ||
40 | + padding: 20rpx 22rpx 28rpx 34rpx; | ||
41 | + -webkit-box-sizing: border-box; | ||
42 | + -moz-box-sizing: border-box; | ||
43 | + box-sizing: border-box; | ||
44 | + display: flex; | ||
45 | + flex-direction: column; | ||
46 | +} | ||
47 | +.head { | ||
48 | + width: 100%; | ||
49 | + height: 60rpx; | ||
50 | + display: flex; | ||
51 | + justify-content: space-between; | ||
52 | + align-items: center; | ||
53 | + color: #464646; | ||
54 | + font-size: 28rpx; | ||
55 | + border-bottom: 1rpx solid #f2f2f2; | ||
56 | +} | ||
57 | +.appointment-state { | ||
58 | + color: #3FA9F5; | ||
59 | +} | ||
60 | +.section { | ||
61 | + width: 100%; | ||
62 | + display: flex; | ||
63 | + position: relative; | ||
64 | +} | ||
65 | +.blue-line { | ||
66 | + width: 12rpx; | ||
67 | + height: 147rpx; | ||
68 | + position: absolute; | ||
69 | + top: 0; | ||
70 | + left: 0; | ||
71 | +} | ||
72 | +.right-box { | ||
73 | + margin-left: 20rpx; | ||
74 | + padding-top: 16rpx; | ||
75 | +} | ||
76 | +.right-top-box, .right-bottom-box { | ||
77 | + display: flex; | ||
78 | + align-items: center; | ||
79 | +} | ||
80 | +.right-top-box { | ||
81 | + align-items: baseline; | ||
82 | +} | ||
83 | +.right-bottom-box { | ||
84 | + margin-top: 24rpx; | ||
85 | + /* justify-content: space-between; */ | ||
86 | +} | ||
87 | +.icon-dingwei, .icon-shangwutubiao { | ||
88 | + color: #6E6E6E; | ||
89 | + margin-right: 18rpx; | ||
90 | +} | ||
91 | +.icon-shangwutubiao { | ||
92 | + /*margin-right: 0;*/ | ||
93 | +} | ||
94 | +.address { | ||
95 | + width: 82%; | ||
96 | + color: #6E6E6E; | ||
97 | + font-size: 26rpx; | ||
98 | + line-height: 54rpx; | ||
99 | +} | ||
100 | +.date-box { | ||
101 | + width: 100%; | ||
102 | + display: flex; | ||
103 | + align-items: center; | ||
104 | + justify-content: space-between; | ||
105 | +} | ||
106 | +.date { | ||
107 | + color: #6E6E6E; | ||
108 | + font-size: 26rpx; | ||
109 | + /* margin-right: 20rpx; */ | ||
110 | +} | ||
111 | +.cancel { | ||
112 | + /*width: 130rpx;*/ | ||
113 | + /*height: 50rpx;*/ | ||
114 | + /*line-height: 50rpx;*/ | ||
115 | + padding: 0rpx 44rpx; | ||
116 | + border-radius: 20rpx; | ||
117 | + background-color: #3FA9F5; | ||
118 | + color: #ffffff; | ||
119 | + font-size: 28rpx; | ||
120 | + line-height: 50rpx; | ||
121 | +} | ||
122 | +.icon-quxiao, .icon-jieshu { | ||
123 | + color: #f2f2f2; | ||
124 | + font-size: 126rpx; | ||
125 | + position: absolute; | ||
126 | + right: -34rpx; | ||
127 | + bottom: -57rpx; | ||
128 | +} | ||
129 | +.not_confirm { | ||
130 | + width: 130rpx; | ||
131 | + position: absolute; | ||
132 | + right: -8rpx; | ||
133 | + bottom: -6rpx; | ||
134 | + display: flex; | ||
135 | + flex-direction: column; | ||
136 | + align-items: center; | ||
137 | +} | ||
138 | +.go-cancel { | ||
139 | + padding: 0rpx 30rpx; | ||
140 | + border-radius: 20rpx; | ||
141 | + background-color: #ffffff; | ||
142 | + color: #FC5B63; | ||
143 | + font-size: 28rpx; | ||
144 | + border: 4rpx solid #FC5B63; | ||
145 | + margin-bottom: 10rpx; | ||
146 | + line-height: 42rpx; | ||
147 | +} | ||
148 | +.go-confirm { | ||
149 | + padding: 0rpx 20rpx; | ||
150 | + border-radius: 20rpx; | ||
151 | + background-color: #FC5B63; | ||
152 | + color: #ffffff; | ||
153 | + font-size: 28rpx; | ||
154 | + height: 50rpx; | ||
155 | + line-height: 50rpx; | ||
156 | +} | ||
157 | +.reduce-margin { | ||
158 | + margin-top: 16rpx; | ||
159 | +} |
1 | +// pages/appointmentRecord/appointmentRecord.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + | ||
11 | + /** | ||
12 | + * 生命周期函数--监听页面加载 | ||
13 | + */ | ||
14 | + onLoad: function (options) { | ||
15 | + | ||
16 | + }, | ||
17 | + | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面初次渲染完成 | ||
20 | + */ | ||
21 | + onReady: function () { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面显示 | ||
27 | + */ | ||
28 | + onShow: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面隐藏 | ||
34 | + */ | ||
35 | + onHide: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面卸载 | ||
41 | + */ | ||
42 | + onUnload: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
48 | + */ | ||
49 | + onPullDownRefresh: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面上拉触底事件的处理函数 | ||
55 | + */ | ||
56 | + onReachBottom: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 用户点击右上角分享 | ||
62 | + */ | ||
63 | + onShareAppMessage: function () { | ||
64 | + | ||
65 | + } | ||
66 | +}) |
1 | +<!--pages/appointmentRecord/appointmentRecord.wxml--> | ||
2 | +<view class='content_box'> | ||
3 | + <view class='item_list'> | ||
4 | + <view class='list_tab'> | ||
5 | + <view class='list_tab_item'>预约记录</view> | ||
6 | + <view class='list_tab_item'>时间</view> | ||
7 | + </view> | ||
8 | + <view class='list_tab list_content' wx:for='{{[1,2,3]}}' wx:key=''> | ||
9 | + <view class='list_tab_item'>活动报名</view> | ||
10 | + <view class='list_tab_item'>2018.10.10</view> | ||
11 | + </view> | ||
12 | + </view> | ||
13 | +</view> |
1 | +/* pages/appointmentRecord/appointmentRecord.wxss */ | ||
2 | + | ||
3 | +/* 团购成交记录 */ | ||
4 | + | ||
5 | +.list_tab { | ||
6 | + display: flex; | ||
7 | + align-items: center; | ||
8 | + justify-content: space-between; | ||
9 | + border-bottom: 1rpx solid rgba(0, 0, 0, 0.1); | ||
10 | + padding: 30rpx 0; | ||
11 | + box-sizing: border-box; | ||
12 | + text-align: center; | ||
13 | +} | ||
14 | + | ||
15 | +.list_tab_item { | ||
16 | + width: 50%; | ||
17 | + font-size: 28rpx; | ||
18 | + color: #464646; | ||
19 | + position: relative; | ||
20 | +} | ||
21 | + | ||
22 | +.list_label { | ||
23 | + width: 180rpx; | ||
24 | + height: 22rpx; | ||
25 | + position: absolute; | ||
26 | + bottom: -28rpx; | ||
27 | + left: 50%; | ||
28 | + transform: translateX(-50%); | ||
29 | + background: rgba(252, 91, 99, 1); | ||
30 | + border-radius: 10rpx; | ||
31 | + font-size: 18rpx; | ||
32 | + color: #fff; | ||
33 | + display: flex; | ||
34 | + align-items: center; | ||
35 | + justify-content: center; | ||
36 | +} | ||
37 | + | ||
38 | +.list_content { | ||
39 | + border: 0; | ||
40 | + padding: 15rpx 0; | ||
41 | +} | ||
42 | + | ||
43 | +.list_content .list_tab_item { | ||
44 | + font-size: 24rpx; | ||
45 | + color: #a3a3a3; | ||
46 | +} |
pages/my/buyCard/buyCard.js
0 → 100644
1 | +// pages/buyCard/buyCard.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + userlist: ['张三', '里斯'], | ||
9 | + index: -1, | ||
10 | + }, | ||
11 | + //选择成员 | ||
12 | + userList(e) { | ||
13 | + this.setData({ | ||
14 | + index: e.detail.value | ||
15 | + }) | ||
16 | + | ||
17 | + }, | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面加载 | ||
20 | + */ | ||
21 | + onLoad: function (options) { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面初次渲染完成 | ||
27 | + */ | ||
28 | + onReady: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面显示 | ||
34 | + */ | ||
35 | + onShow: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面隐藏 | ||
41 | + */ | ||
42 | + onHide: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 生命周期函数--监听页面卸载 | ||
48 | + */ | ||
49 | + onUnload: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
55 | + */ | ||
56 | + onPullDownRefresh: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 页面上拉触底事件的处理函数 | ||
62 | + */ | ||
63 | + onReachBottom: function () { | ||
64 | + | ||
65 | + }, | ||
66 | + | ||
67 | + /** | ||
68 | + * 用户点击右上角分享 | ||
69 | + */ | ||
70 | + onShareAppMessage: function () { | ||
71 | + | ||
72 | + } | ||
73 | +}) |
pages/my/buyCard/buyCard.json
0 → 100644
pages/my/buyCard/buyCard.wxml
0 → 100644
1 | +<!--pages/buyCard/buyCard.wxml--> | ||
2 | +<view class='long_img'>这是一个可以滑动的长图</view> | ||
3 | +<view class='service_box'> | ||
4 | + <view class='add_person_box'> | ||
5 | + <view class='list_input'> | ||
6 | + <view>绑定学员:</view> | ||
7 | + <picker value='{{index}}' range='{{userlist}}' bindchange='userList'> | ||
8 | + <block wx:if='{{index==-1}}'> | ||
9 | + <input placeholder='点击右侧添加学员' placeholder-class='input_style' disabled='true'></input> | ||
10 | + </block> | ||
11 | + <block wx:else> | ||
12 | + <text>{{userlist[index]}}</text> | ||
13 | + </block> | ||
14 | + </picker> | ||
15 | + <view class='iconfont icon-daosanjiao'></view> | ||
16 | + </view> | ||
17 | + <view class='add_box'> | ||
18 | + <text class='iconfont icon-jia'></text> | ||
19 | + <text>添加学员</text> | ||
20 | + </view> | ||
21 | + </view> | ||
22 | + <view class='service_info_box'> | ||
23 | + <text class='iconfont icon-xuanzhong'></text> | ||
24 | + <text>我已阅读并同意畅玩卡</text> | ||
25 | + <text class='service_info'>服务协议</text> | ||
26 | + </view> | ||
27 | + <view class='service_btn_box'> | ||
28 | + <view>需支付:¥288.00</view> | ||
29 | + <view class='pay_btn'>确定</view> | ||
30 | + </view> | ||
31 | +</view> |
pages/my/buyCard/buyCard.wxss
0 → 100644
1 | +/* pages/buyCard/buyCard.wxss */ | ||
2 | +@import '../groupBuy/groupBuy.wxss'; | ||
3 | +@import '../charge/charge.wxss'; | ||
4 | +.add_person_box { | ||
5 | + display: flex; | ||
6 | + align-items: center; | ||
7 | + justify-content: space-between; | ||
8 | + padding: 20rpx; | ||
9 | + background: #fff; | ||
10 | +} | ||
11 | +.service_btn_box{ | ||
12 | + font-size: 30rpx; | ||
13 | + color: #6E6E6E; | ||
14 | +} | ||
15 | + |
1 | +// pages/cardIntroduction/cardIntroduction.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + | ||
11 | + /** | ||
12 | + * 生命周期函数--监听页面加载 | ||
13 | + */ | ||
14 | + onLoad: function (options) { | ||
15 | + | ||
16 | + }, | ||
17 | + | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面初次渲染完成 | ||
20 | + */ | ||
21 | + onReady: function () { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面显示 | ||
27 | + */ | ||
28 | + onShow: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面隐藏 | ||
34 | + */ | ||
35 | + onHide: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面卸载 | ||
41 | + */ | ||
42 | + onUnload: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
48 | + */ | ||
49 | + onPullDownRefresh: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面上拉触底事件的处理函数 | ||
55 | + */ | ||
56 | + onReachBottom: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 用户点击右上角分享 | ||
62 | + */ | ||
63 | + onShareAppMessage: function () { | ||
64 | + | ||
65 | + } | ||
66 | +}) |
1 | +{} |
1 | +/* pages/cardIntroduction/cardIntroduction.wxss */ | ||
2 | + | ||
3 | +.content_box { | ||
4 | + width: 100%; | ||
5 | + height: 100%; | ||
6 | + background: #e0e0e0; | ||
7 | + font-size: 32rpx; | ||
8 | + color: #000; | ||
9 | + padding: 30rpx; | ||
10 | + position: fixed; | ||
11 | + top: 0; | ||
12 | + left: 0; | ||
13 | + text-align: center; | ||
14 | + /* display: flex; | ||
15 | + align-items: center; | ||
16 | + justify-content: center; | ||
17 | + overflow: scroll; */ | ||
18 | +} | ||
19 | + | ||
20 | +.bottom_box { | ||
21 | + width: 100%; | ||
22 | + display: flex; | ||
23 | + align-items: center; | ||
24 | + justify-content: space-between; | ||
25 | + position: fixed; | ||
26 | + bottom: 0; | ||
27 | + left: 0; | ||
28 | +} | ||
29 | + | ||
30 | +.share_btn, .groupBuy_btn { | ||
31 | + width: 50%; | ||
32 | + height: 98rpx; | ||
33 | + background: linear-gradient(-84deg, rgba(251, 150, 0, 1), rgba(255, 198, 4, 1)); | ||
34 | + display: flex; | ||
35 | + align-items: center; | ||
36 | + justify-content: center; | ||
37 | + font-size: 36rpx; | ||
38 | + color: #fff; | ||
39 | +} | ||
40 | + | ||
41 | +.groupBuy_btn { | ||
42 | + background: linear-gradient(-78deg, rgba(255, 83, 2, 1), rgba(252, 116, 0, 1)); | ||
43 | +} |
pages/my/charge/charge.js
0 → 100644
1 | +// pages/charge/charge.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + userlist: ['张三', '里斯'], | ||
9 | + index: -1, | ||
10 | + }, | ||
11 | + //选择成员 | ||
12 | + userList(e) { | ||
13 | + this.setData({ | ||
14 | + index:e.detail.value | ||
15 | + }) | ||
16 | + | ||
17 | + }, | ||
18 | + //兑换并绑定按钮 | ||
19 | + chargeBtn() { | ||
20 | + wx.showModal({ | ||
21 | + title: '', | ||
22 | + content: '绑定后无法更改,确定绑定张三吗?', | ||
23 | + cancelText: '取消', | ||
24 | + confirmText: '确认', | ||
25 | + }) | ||
26 | + }, | ||
27 | + | ||
28 | + /** | ||
29 | + * 生命周期函数--监听页面加载 | ||
30 | + */ | ||
31 | + onLoad: function(options) { | ||
32 | + | ||
33 | + }, | ||
34 | + | ||
35 | + /** | ||
36 | + * 生命周期函数--监听页面初次渲染完成 | ||
37 | + */ | ||
38 | + onReady: function() { | ||
39 | + | ||
40 | + }, | ||
41 | + | ||
42 | + /** | ||
43 | + * 生命周期函数--监听页面显示 | ||
44 | + */ | ||
45 | + onShow: function() { | ||
46 | + | ||
47 | + }, | ||
48 | + | ||
49 | + /** | ||
50 | + * 生命周期函数--监听页面隐藏 | ||
51 | + */ | ||
52 | + onHide: function() { | ||
53 | + | ||
54 | + }, | ||
55 | + | ||
56 | + /** | ||
57 | + * 生命周期函数--监听页面卸载 | ||
58 | + */ | ||
59 | + onUnload: function() { | ||
60 | + | ||
61 | + }, | ||
62 | + | ||
63 | + /** | ||
64 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
65 | + */ | ||
66 | + onPullDownRefresh: function() { | ||
67 | + | ||
68 | + }, | ||
69 | + | ||
70 | + /** | ||
71 | + * 页面上拉触底事件的处理函数 | ||
72 | + */ | ||
73 | + onReachBottom: function() { | ||
74 | + | ||
75 | + }, | ||
76 | + | ||
77 | + /** | ||
78 | + * 用户点击右上角分享 | ||
79 | + */ | ||
80 | + onShareAppMessage: function() { | ||
81 | + | ||
82 | + } | ||
83 | +}) |
pages/my/charge/charge.json
0 → 100644
1 | +{} |
pages/my/charge/charge.wxml
0 → 100644
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> | ||
10 | + </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'> | ||
25 | + <text class='iconfont icon-jia'></text> | ||
26 | + <text>添加学员</text> | ||
27 | + </view> | ||
28 | + </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> |
pages/my/charge/charge.wxss
0 → 100644
1 | +/* pages/charge/charge.wxss */ | ||
2 | + | ||
3 | +page { | ||
4 | + background: #f5f5fa; | ||
5 | +} | ||
6 | + | ||
7 | +.item_list_box { | ||
8 | + padding: 0 30rpx; | ||
9 | + background: #fff; | ||
10 | +} | ||
11 | + | ||
12 | +.item_list { | ||
13 | + display: flex; | ||
14 | + align-items: center; | ||
15 | + justify-content: space-between; | ||
16 | + border-bottom: 1rpx solid rgba(0, 0, 0, 0.1); | ||
17 | + padding: 30rpx 0; | ||
18 | +} | ||
19 | + | ||
20 | +.item_list:last-child { | ||
21 | + border: 0; | ||
22 | +} | ||
23 | + | ||
24 | +.list_input { | ||
25 | + width: 80%; | ||
26 | + display: flex; | ||
27 | + align-items: center; | ||
28 | + font-size: 32rpx; | ||
29 | + color: #464646; | ||
30 | +} | ||
31 | + | ||
32 | +.list_input input { | ||
33 | + font-size: 32rpx; | ||
34 | + border: 0; | ||
35 | + outline: none; | ||
36 | +} | ||
37 | + | ||
38 | +.list_input picker { | ||
39 | + width: 65%; | ||
40 | +} | ||
41 | + | ||
42 | +.input_style { | ||
43 | + color: #c3c3c3; | ||
44 | +} | ||
45 | + | ||
46 | +.icon-daosanjiao { | ||
47 | + font-size: 20rpx; | ||
48 | + color: #6f6f6f; | ||
49 | +} | ||
50 | + | ||
51 | +.icon-jia { | ||
52 | + display: inline-block; | ||
53 | + width: 34rpx; | ||
54 | + height: 34rpx; | ||
55 | + background: #3fa9f5; | ||
56 | + border-radius: 10rpx; | ||
57 | + color: #fff; | ||
58 | + padding: 5rpx; | ||
59 | + box-sizing: border-box; | ||
60 | + margin-right: 8rpx; | ||
61 | +} | ||
62 | + | ||
63 | +.add_box { | ||
64 | + font-size: 24rpx; | ||
65 | + color: #3fa9f5; | ||
66 | + text-align: center; | ||
67 | + display: flex; | ||
68 | + align-items: center; | ||
69 | +} | ||
70 | + | ||
71 | +.service_info_box { | ||
72 | + width: 100%; | ||
73 | + height: 50rpx; | ||
74 | + background: #fdefb5; | ||
75 | + font-size: 24rpx; | ||
76 | + color: #fc5b63; | ||
77 | + padding: 10rpx 20rpx; | ||
78 | + box-sizing: border-box; | ||
79 | +} | ||
80 | + | ||
81 | +.service_box { | ||
82 | + width: 100%; | ||
83 | + position: fixed; | ||
84 | + left: 0; | ||
85 | + bottom: 0; | ||
86 | +} | ||
87 | + | ||
88 | +.service_btn_box { | ||
89 | + width: 100%; | ||
90 | + height: 98rpx; | ||
91 | + font-size: 36rpx; | ||
92 | + background: #3fa9f5; | ||
93 | + color: #fff; | ||
94 | + display: flex; | ||
95 | + align-items: center; | ||
96 | + justify-content: center; | ||
97 | +} |
pages/my/chargePhoneNum/chargePhoneNum.js
0 → 100644
1 | +// pages/chargePhoneNum/chargePhoneNum.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + | ||
11 | + /** | ||
12 | + * 生命周期函数--监听页面加载 | ||
13 | + */ | ||
14 | + onLoad: function (options) { | ||
15 | + | ||
16 | + }, | ||
17 | + | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面初次渲染完成 | ||
20 | + */ | ||
21 | + onReady: function () { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面显示 | ||
27 | + */ | ||
28 | + onShow: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面隐藏 | ||
34 | + */ | ||
35 | + onHide: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面卸载 | ||
41 | + */ | ||
42 | + onUnload: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
48 | + */ | ||
49 | + onPullDownRefresh: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面上拉触底事件的处理函数 | ||
55 | + */ | ||
56 | + onReachBottom: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 用户点击右上角分享 | ||
62 | + */ | ||
63 | + onShareAppMessage: function () { | ||
64 | + | ||
65 | + } | ||
66 | +}) |
pages/my/chargePhoneNum/chargePhoneNum.json
0 → 100644
1 | +{} |
pages/my/chargePhoneNum/chargePhoneNum.wxml
0 → 100644
1 | +<!--pages/chargePhoneNum/chargePhoneNum.wxml--> | ||
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>新手机号: </view> | ||
13 | + <view class='list_input'> | ||
14 | + <input placeholder='188****888' value=''></input> | ||
15 | + </view> | ||
16 | + </view> | ||
17 | + </view> | ||
18 | + <view class='item_list'> | ||
19 | + <view class='info_box'> | ||
20 | + <text>验证码: </text> | ||
21 | + <view class='list_input'> | ||
22 | + <input placeholder='输入验证码' value=''></input> | ||
23 | + </view> | ||
24 | + </view> | ||
25 | + <button class='get_code'>获取验证码</button> | ||
26 | + </view> | ||
27 | + </view> | ||
28 | + <view class='save_btn'>保 存</view> | ||
29 | +</view> |
pages/my/chargePhoneNum/chargePhoneNum.wxss
0 → 100644
1 | +/* pages/chargePhoneNum/chargePhoneNum.wxss */ | ||
2 | + | ||
3 | +.content_box { | ||
4 | + padding: 0 20rpx; | ||
5 | +} | ||
6 | + | ||
7 | +.banner_box { | ||
8 | + width: 100%; | ||
9 | + height: 200rpx; | ||
10 | + background: #3fa9f5; | ||
11 | + border-radius: 10rpx; | ||
12 | + margin-top: 46rpx; | ||
13 | + display: flex; | ||
14 | + align-items: center; | ||
15 | + justify-content: center; | ||
16 | + flex-direction: column; | ||
17 | + font-size: 28rpx; | ||
18 | + color: #fff; | ||
19 | +} | ||
20 | + | ||
21 | +.head_img { | ||
22 | + width: 157rpx; | ||
23 | + height: 157rpx; | ||
24 | + border-radius: 50%; | ||
25 | + display: flex; | ||
26 | + align-items: center; | ||
27 | + justify-content: center; | ||
28 | + overflow: hidden; | ||
29 | + margin-top: -30rpx; | ||
30 | + margin-bottom: 10rpx; | ||
31 | +} | ||
32 | + | ||
33 | +.head_img image { | ||
34 | + width: 100%; | ||
35 | + height: 100%; | ||
36 | +} | ||
37 | + | ||
38 | +.item_list { | ||
39 | + display: flex; | ||
40 | + align-items: center; | ||
41 | + justify-content: space-between; | ||
42 | + font-size: 32rpx; | ||
43 | + color: #c3c3c3; | ||
44 | + padding: 63rpx 0 25rpx 0; | ||
45 | + border-bottom: 1rpx solid #C3C3C3; | ||
46 | +} | ||
47 | +.info_box{ | ||
48 | + width: 80%; | ||
49 | + display: flex; | ||
50 | +} | ||
51 | +.get_code { | ||
52 | + text-align: right!important; | ||
53 | + font-size: 28rpx; | ||
54 | + color: #3fa9f5 !important; | ||
55 | + background: none; | ||
56 | + padding: 0rpx !important; | ||
57 | + line-height: normal!important; | ||
58 | +} | ||
59 | + | ||
60 | +.get_code::after { | ||
61 | + border: 0; | ||
62 | +} | ||
63 | +.save_btn{ | ||
64 | + width: 100%; | ||
65 | + height: 80rpx; | ||
66 | + border-radius: 10rpx; | ||
67 | + background: #3fa9f5; | ||
68 | + text-align: center; | ||
69 | + line-height: 80rpx; | ||
70 | + color: #fff; | ||
71 | + font-size: 36rpx; | ||
72 | + margin-top: 100rpx; | ||
73 | +} |
pages/my/groupBupShare/groupBupShare.js
0 → 100644
1 | +// pages/groupBupShare/groupBupShare.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + | ||
9 | + }, | ||
10 | + | ||
11 | + /** | ||
12 | + * 生命周期函数--监听页面加载 | ||
13 | + */ | ||
14 | + onLoad: function (options) { | ||
15 | + | ||
16 | + }, | ||
17 | + | ||
18 | + /** | ||
19 | + * 生命周期函数--监听页面初次渲染完成 | ||
20 | + */ | ||
21 | + onReady: function () { | ||
22 | + | ||
23 | + }, | ||
24 | + | ||
25 | + /** | ||
26 | + * 生命周期函数--监听页面显示 | ||
27 | + */ | ||
28 | + onShow: function () { | ||
29 | + | ||
30 | + }, | ||
31 | + | ||
32 | + /** | ||
33 | + * 生命周期函数--监听页面隐藏 | ||
34 | + */ | ||
35 | + onHide: function () { | ||
36 | + | ||
37 | + }, | ||
38 | + | ||
39 | + /** | ||
40 | + * 生命周期函数--监听页面卸载 | ||
41 | + */ | ||
42 | + onUnload: function () { | ||
43 | + | ||
44 | + }, | ||
45 | + | ||
46 | + /** | ||
47 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
48 | + */ | ||
49 | + onPullDownRefresh: function () { | ||
50 | + | ||
51 | + }, | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面上拉触底事件的处理函数 | ||
55 | + */ | ||
56 | + onReachBottom: function () { | ||
57 | + | ||
58 | + }, | ||
59 | + | ||
60 | + /** | ||
61 | + * 用户点击右上角分享 | ||
62 | + */ | ||
63 | + onShareAppMessage: function () { | ||
64 | + | ||
65 | + } | ||
66 | +}) |
pages/my/groupBupShare/groupBupShare.json
0 → 100644
1 | +{} |
pages/my/groupBupShare/groupBupShare.wxml
0 → 100644
1 | +<!--pages/groupBupShare/groupBupShare.wxml--> | ||
2 | +<view class='content_box'> | ||
3 | + <view class='list_label_box'> | ||
4 | + <view class='group_num'>团购人数:最低 | ||
5 | + <text>3人</text> | ||
6 | + </view> | ||
7 | + <view class='group_time'>发布倒计时: | ||
8 | + <text>3小时</text> | ||
9 | + </view> | ||
10 | + </view> | ||
11 | +</view> | ||
12 | +<view class='long_img'>这是一个可以滑动的长图</view> | ||
13 | +<view class='service_box'> | ||
14 | + <view class='service_info_box'> | ||
15 | + <text class='iconfont icon-fenxiang'></text> 分享的文案,50汉字以内提示分享的文案,50汉字以内提示分 享的文案,50汉字以内 | ||
16 | + </view> | ||
17 | + <view class='service_btn_box'>分享好友</view> | ||
18 | +</view> |
pages/my/groupBupShare/groupBupShare.wxss
0 → 100644
1 | +/* pages/groupBupShare/groupBupShare.wxss */ | ||
2 | +@import '../groupBuy/groupBuy.wxss'; | ||
3 | +.content_box{ | ||
4 | + padding: 0 20rpx; | ||
5 | +} | ||
6 | +.long_img{ | ||
7 | + width: 100%; | ||
8 | + margin-top: 20rpx; | ||
9 | + background: #E0E0E0; | ||
10 | + font-size: 32rpx; | ||
11 | + color: #000000; | ||
12 | + text-align: center; | ||
13 | + display: flex; | ||
14 | + align-items: center; | ||
15 | + justify-content: center; | ||
16 | +} | ||
17 | +.service_btn_box{ | ||
18 | + background:linear-gradient(-78deg,rgba(255,83,2,1),rgba(252,116,0,1)); | ||
19 | + display: flex; | ||
20 | + align-items: center; | ||
21 | + justify-content: center; | ||
22 | + font-size: 36rpx; | ||
23 | + color: #FFFFFF; | ||
24 | +} |
pages/my/groupBuy/groupBuy.js
0 → 100644
1 | +// pages/groupBuy/groupBuy.js | ||
2 | +Page({ | ||
3 | + | ||
4 | + /** | ||
5 | + * 页面的初始数据 | ||
6 | + */ | ||
7 | + data: { | ||
8 | + current:0 | ||
9 | + }, | ||
10 | +//tab切换 | ||
11 | + tabCharge(e){ | ||
12 | + var index=e.currentTarget.dataset.current | ||
13 | + var current=this.data.current | ||
14 | + if(index==current){ | ||
15 | + return false | ||
16 | + }else{ | ||
17 | + this.setData({ | ||
18 | + current:index | ||
19 | + }) | ||
20 | + } | ||
21 | + }, | ||
22 | + | ||
23 | + /** | ||
24 | + * 生命周期函数--监听页面加载 | ||
25 | + */ | ||
26 | + onLoad: function (options) { | ||
27 | + | ||
28 | + }, | ||
29 | + | ||
30 | + /** | ||
31 | + * 生命周期函数--监听页面初次渲染完成 | ||
32 | + */ | ||
33 | + onReady: function () { | ||
34 | + | ||
35 | + }, | ||
36 | + | ||
37 | + /** | ||
38 | + * 生命周期函数--监听页面显示 | ||
39 | + */ | ||
40 | + onShow: function () { | ||
41 | + | ||
42 | + }, | ||
43 | + | ||
44 | + /** | ||
45 | + * 生命周期函数--监听页面隐藏 | ||
46 | + */ | ||
47 | + onHide: function () { | ||
48 | + | ||
49 | + }, | ||
50 | + | ||
51 | + /** | ||
52 | + * 生命周期函数--监听页面卸载 | ||
53 | + */ | ||
54 | + onUnload: function () { | ||
55 | + | ||
56 | + }, | ||
57 | + | ||
58 | + /** | ||
59 | + * 页面相关事件处理函数--监听用户下拉动作 | ||
60 | + */ | ||
61 | + onPullDownRefresh: function () { | ||
62 | + | ||
63 | + }, | ||
64 | + | ||
65 | + /** | ||
66 | + * 页面上拉触底事件的处理函数 | ||
67 | + */ | ||
68 | + onReachBottom: function () { | ||
69 | + | ||
70 | + }, | ||
71 | + | ||
72 | + /** | ||
73 | + * 用户点击右上角分享 | ||
74 | + */ | ||
75 | + onShareAppMessage: function () { | ||
76 | + | ||
77 | + } | ||
78 | +}) |
pages/my/groupBuy/groupBuy.json
0 → 100644
pages/my/groupBuy/groupBuy.wxml
0 → 100644
1 | +<!--pages/groupBuy/groupBuy.wxml--> | ||
2 | +<view class='banner_img'> | ||
3 | + <image src='../../../images/banner.jpg'></image> | ||
4 | +</view> | ||
5 | +<view class='title_box'> | ||
6 | + <view class='title_content'>畅玩卡介绍</view> | ||
7 | +</view> | ||
8 | +<view class='tab_box'> | ||
9 | + <view class="tab_item {{current==0?'tab_active':''}}" data-current='0' bindtap='tabCharge'>参与的组团</view> | ||
10 | + <view class="tab_item {{current==1?'tab_active':''}}" data-current='1' bindtap='tabCharge'>团购成交记录</view> | ||
11 | + <view class="tab_item {{current==2?'tab_active':''}}" data-current='2' bindtap='tabCharge'>发起团购</view> | ||
12 | +</view> | ||
13 | +<block wx:if='{{current==0}}'> | ||
14 | + <view class='content_box'> | ||
15 | + <view class='item_list' wx:for='{{[1,2,3]}}' wx:key=''> | ||
16 | + <view class='list_title_box'> | ||
17 | + <view>查看详情</view> | ||
18 | + <view class='iconfont icon-fanhui'></view> | ||
19 | + </view> | ||
20 | + <view class='list_info_box'> | ||
21 | + <view class='info_item'> | ||
22 | + <view class='info_box'> | ||
23 | + <image src='../../../images/start-logo.png'></image> | ||
24 | + <view class='info_label'>发起人</view> | ||
25 | + </view> | ||
26 | + <view class='info_time'> | ||
27 | + <view>2018.10.10</view> | ||
28 | + <view> 00:00:00</view> | ||
29 | + </view> | ||
30 | + </view> | ||
31 | + <view class='info_item'> | ||
32 | + <view class='info_box'> | ||
33 | + <image src='../../../images/start-logo.png'></image> | ||
34 | + <view class='info_label'>发起人</view> | ||
35 | + </view> | ||
36 | + <view class='info_time'> | ||
37 | + <view>2018.10.10</view> | ||
38 | + <view> 00:00:00</view> | ||
39 | + </view> | ||
40 | + </view> | ||
41 | + <view class='info_item'> | ||
42 | + <view class='info_box'> | ||
43 | + </view> | ||
44 | + </view> | ||
45 | + <view class='info_item'> | ||
46 | + <view class='info_box'> | ||
47 | + </view> | ||
48 | + </view> | ||
49 | + <view class='info_item'> | ||
50 | + <view class='info_box'> | ||
51 | + </view> | ||
52 | + </view> | ||
53 | + </view> | ||
54 | + <view class='list_info'>成团人数:最低 | ||
55 | + <text>3</text>人,已参与: | ||
56 | + <text>2</text> 人,快呼唤伙伴参与吧!</view> | ||
57 | + <view class='list_info'> | ||
58 | + <view class='list_info_item'>剩余 | ||
59 | + <text>00:02:00 </text> 结束</view> | ||
60 | + </view> | ||
61 | + <view> | ||
62 | + <view class='user_info_box'> | ||
63 | + <view class='user_info'> | ||
64 | + <view class='info_box'> | ||
65 | + <image src='../../../images/start-logo.png'></image> | ||
66 | + <view class='info_label'>发起人</view> | ||
67 | + </view> | ||
68 | + <view>发起人姓名</view> | ||
69 | + </view> | ||
70 | + <view class='state_box'> | ||
71 | + <view>2018.10.10 00:00:00开团</view> | ||
72 | + <view class='info_state'>团购中</view> | ||
73 | + </view> | ||
74 | + </view> | ||
75 | + </view> | ||
76 | + </view> | ||
77 | + </view> | ||
78 | + <view class='null_box'></view> | ||
79 | + <view class='bottom_box'> | ||
80 | + <text class='iconfont icon-fenxiang'></text> 分享的文案,50汉字以内提示分享的文案,50汉字以内提示分 享的文案,50汉字以内 | ||
81 | + </view> | ||
82 | +</block> | ||
83 | +<block wx:elif='{{current==1}}'> | ||
84 | + <view class='content_box'> | ||
85 | + <view class='item_list'> | ||
86 | + <view class='list_tab'> | ||
87 | + <view class='list_tab_item'>日期</view> | ||
88 | + <view class='list_tab_item'>兑换状态</view> | ||
89 | + <view class='list_tab_item'> | ||
90 | + <text>兑换码</text> | ||
91 | + <view class='list_label'>长按兑换码即可复制</view> | ||
92 | + </view> | ||
93 | + </view> | ||
94 | + <view class='list_tab list_content' wx:for='{{[1,2,3]}}' wx:key=''> | ||
95 | + <view class='list_tab_item'>2018.10.10</view> | ||
96 | + <view class='list_tab_item'>未兑换</view> | ||
97 | + <view class='list_tab_item'>2059788797</view> | ||
98 | + </view> | ||
99 | + </view> | ||
100 | + </view> | ||
101 | +</block> | ||
102 | +<block wx:if='{{current==2}}'> | ||
103 | + <view class='content_box' style='padding:0 20rpx;'> | ||
104 | + <view class='list_label_box'> | ||
105 | + <view class='group_num'>团购人数:最低 | ||
106 | + <text>3人</text> | ||
107 | + </view> | ||
108 | + <view class='group_time'>发布倒计时: | ||
109 | + <text>3小时</text> | ||
110 | + </view> | ||
111 | + </view> | ||
112 | + <view class='list_title_info'> | ||
113 | + <view class='iconfont icon-zhongdian'> </view> | ||
114 | + <view> | ||
115 | + <view>团购规则说明</view> | ||
116 | + <view class='content_info'>如果因为环境网络问题或者其他原因导致无法打卡,请上传照 片及文字申诉内容,证明您已到场并已经参与活动。</view> | ||
117 | + </view> | ||
118 | + </view> | ||
119 | + <view class='service_box'> | ||
120 | + <view class='service_info_box'> | ||
121 | + <text class='iconfont icon-xuanzhong'></text> | ||
122 | + <text>我已阅读并同意畅玩卡</text> | ||
123 | + <text class='service_info'>服务协议</text> | ||
124 | + </view> | ||
125 | + <view class='service_btn_box'> | ||
126 | + <view>单价:¥188.00</view> | ||
127 | + <view class='pay_btn'>支付</view> | ||
128 | + </view> | ||
129 | + </view> | ||
130 | + </view> | ||
131 | +</block> |
-
请 注册 或 登录 后发表评论