提交 866d09c30fb6f15fa902ef1beee7ade6071ea84d

作者 guomingshu
1 个父辈 dcf1e345

feat: 登录页面改版

  1 +<template>
  2 + <view class="page" :style="vuex_theme">
  3 + <view class="login">
  4 + <view class="title-v">
  5 + <view class="title">手机号快速登录</view>
  6 + <img
  7 + src="https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/excellet-working/loginclose.jpg"
  8 + @click="closeX"
  9 + alt=""
  10 + />
  11 + </view>
  12 + <view class="agreement">
  13 + <view class="check">
  14 + <u-checkbox-group @change="checkboxChange" v-model="checked">
  15 + <u-checkbox
  16 + size="28"
  17 + activeColor="var(--primary-color)"
  18 + shape="circle"
  19 + >
  20 + </u-checkbox>
  21 + </u-checkbox-group>
  22 + </view>
  23 + <view class="text">
  24 + <text>我已阅读理解并同意</text>
  25 + <text class="span" @click="linkService">《服务协议》、</text>
  26 + <text class="span" @click="linkPolicy">《隐私政策》</text>
  27 + </view>
  28 + </view>
  29 + <view class="btn button_warp">
  30 + <c-button
  31 + type="confirm"
  32 + shape="circle"
  33 + :customStyle="{
  34 + borderRadius: '48rpx',
  35 + fontSize: '34rpx',
  36 + color: '#fff',
  37 + fontWeight: '400',
  38 + }"
  39 + text="手机号一键登录"
  40 + openType="getPhoneNumber"
  41 + :disabled="isDisable"
  42 + @getPhoneNumber="getPhoneNumber"
  43 + ></c-button>
  44 + </view>
  45 + </view>
  46 + </view>
  47 +</template>
  48 +
  49 +<script>
  50 +export default {
  51 + name: "yxly-login",
  52 + props: {},
  53 + data() {
  54 + return {
  55 + checked: false,
  56 + isDisable: true,
  57 + service: "https://hropublic.oss-cn-beijing.aliyuncs.com/agreement/%E6%A0%A1%E8%81%8C%E9%80%9A%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE.html",
  58 + policy: "https://hropublic.oss-cn-beijing.aliyuncs.com/agreement/%E6%A0%A1%E8%81%8C%E9%80%9A%E9%9A%90%E7%A7%81%E5%8D%8F%E8%AE%AE.html",
  59 + };
  60 + },
  61 +
  62 + watch: {
  63 + checked: function (newVal, oldVal) {
  64 + this.isDisable = newVal.length != 0 ? false : true;
  65 + },
  66 + },
  67 +
  68 + mounted() {
  69 + if (this.vuex_appId == "wx1d61898f341c39ec") {
  70 + // 新华
  71 + this.service = "https://hropublic.oss-cn-beijing.aliyuncs.com/APP/xhsx/1-%20%E6%96%B0%E5%8D%8E%E5%AE%9E%E4%B9%A0%E7%94%A8%E6%88%B7%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE(%E6%B8%85%E6%B4%81%E7%89%88).html"
  72 + this.policy = "https://hropublic.oss-cn-beijing.aliyuncs.com/APP/xhsx/1.1-%20%E6%96%B0%E5%8D%8E%E5%AE%9E%E4%B9%A0%E9%9A%90%E7%A7%81%E6%94%BF%E7%AD%96(%E6%B8%85%E6%B4%81%E7%89%88).html"
  73 + }
  74 + },
  75 +
  76 + methods: {
  77 + checkboxChange(e) {
  78 + // this.checked = e.length != 0 ? false : true;
  79 + },
  80 +
  81 + linkService() {
  82 + console.log(this);
  83 + this.$u.route({
  84 + url: `/pages/common/webview/webview?navtitle=服务协议&url=${this.service}`,
  85 + });
  86 + },
  87 +
  88 + linkPolicy() {
  89 + this.$u.route({
  90 + url: `/pages/common/webview/webview?navtitle=隐私政策&url=${this.policy}`,
  91 + });
  92 + },
  93 +
  94 + closeX() {
  95 + this.$emit("clickX");
  96 + },
  97 +
  98 + // 按钮点击
  99 + getPhoneNumber(e) {
  100 +
  101 + console.log("getPhoneNumber", e);
  102 +
  103 + if (!e.detail.code) {
  104 + return;
  105 + }
  106 +
  107 + wx.login({
  108 + success: (res) => {
  109 + console.log(res);
  110 +
  111 + this.$store.dispatch(`user/login`, {
  112 + way: "wechat_code",
  113 + type: "teacher",
  114 + jsCode: res.code,
  115 + code: e.detail.code,
  116 + })
  117 + .then((data) => {
  118 + if (data) {
  119 + // self.$emit("callBack");
  120 + uni.navigateBack();
  121 + }
  122 + });
  123 + },
  124 + });
  125 + },
  126 + },
  127 +};
  128 +</script>
  129 +
  130 +<style lang="scss" scoped>
  131 +.page {
  132 + .login {
  133 + background-color: #fff;
  134 + padding: 32rpx;
  135 +
  136 + .title-v {
  137 + display: flex;
  138 + justify-content: space-between;
  139 + align-items: center;
  140 +
  141 + .title {
  142 + font-size: 17px;
  143 + font-family: PingFangSC-Medium, PingFang SC;
  144 + font-weight: 500;
  145 + color: #000000;
  146 + }
  147 +
  148 + img {
  149 + width: 16px;
  150 + height: 16px;
  151 + }
  152 + }
  153 +
  154 + .btn {
  155 + margin-top: 40rpx;
  156 + }
  157 +
  158 + .agreement {
  159 + margin-top: 40rpx;
  160 + display: flex;
  161 + flex-direction: row;
  162 + justify-content: flex-start;
  163 + font-size: 24rpx;
  164 + // margin: 30rpx 0 32rpx 0;
  165 + // padding: 0 50rpx;
  166 +
  167 + .check {
  168 + width: 40rpx;
  169 + padding: 5rpx 0 0 0;
  170 + // display: inline-block;
  171 + }
  172 +
  173 + .text {
  174 + // display: inline-block;
  175 + color: rgba(0, 0, 0, 0.45);
  176 +
  177 + .span {
  178 + color: var(--primary-color);
  179 + }
  180 + }
  181 + }
  182 + }
  183 +}
  184 +</style>
... ...
... ... @@ -105,7 +105,7 @@ module.exports = (vm) => {
105 105 vm.$u.toast('登录失效,请重新登录!');
106 106 setTimeout(() => {
107 107 // 此为uView的方法,详见路由相关文档
108   - // vm.$u.route('/pages/main/my/login/login');
  108 + // vm.$u.route('/pages/main/my/loginStyle/loginStyle');
109 109
110 110 vm.$u.vuex('hasLogin', false);
111 111 vm.$u.vuex('vuex_token', '');
... ...
1 1 {
2 2 "name": "uView",
3 3 "version": "1.0.0",
4   - "lockfileVersion": 2,
  4 + "lockfileVersion": 1,
5 5 "requires": true,
6   - "packages": {
7   - "": {
8   - "name": "uView",
9   - "version": "1.0.0",
10   - "license": "ISC",
11   - "dependencies": {
12   - "miment": "^0.0.9",
13   - "vue-i18n": "^8.20.0"
14   - },
15   - "devDependencies": {
16   - "lodash": "^4.17.21"
17   - }
18   - },
19   - "node_modules/lodash": {
20   - "version": "4.17.21",
21   - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
22   - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
23   - "dev": true
24   - },
25   - "node_modules/miment": {
26   - "version": "0.0.9",
27   - "resolved": "https://registry.npmmirror.com/miment/-/miment-0.0.9.tgz",
28   - "integrity": "sha512-pfjF/jPPxCaR7swQIKbWHBfSJAw47e4iZQPM6HzuexSDiZRPj8bx3rNzP4G/oK37+skbM/9eidoX9awJJfgLAg=="
29   - },
30   - "node_modules/vue-i18n": {
31   - "version": "8.20.0",
32   - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.20.0.tgz",
33   - "integrity": "sha512-ZiAOoeR4d/JtKpbjipx3I80ey7cYG1ki5gQ7HwzWm4YFio9brA15BEYHjalEoBaEfzF5OBEZP+Y2MvAaWnyXXg=="
34   - }
35   - },
36 6 "dependencies": {
37 7 "lodash": {
38 8 "version": "4.17.21",
... ...
... ... @@ -5,13 +5,16 @@
5 5 },
6 6 "condition": { //模式配置,仅开发期间生效
7 7 "current": 0, //当前激活的模式(list 的索引项)
8   - "list": [{
9   - "name": "defult", //模式名称
10   - "path": "pages/main/internship/signInList/signInList",
11   - "query": "studentId=1555434161240838146"
12   - }]
  8 + "list": [
  9 + {
  10 + "name": "defult", //模式名称
  11 + "path": "pages/main/internship/signInList/signInList",
  12 + "query": "studentId=1555434161240838146"
  13 + }
  14 + ]
13 15 },
14   - "pages": [{
  16 + "pages": [
  17 + {
15 18 "path": "pages/tabBar/home/home",
16 19 "style": {
17 20 "navigationStyle": "custom",
... ... @@ -41,8 +44,8 @@
41 44 }
42 45 }
43 46 ],
44   -
45   - "subPackages": [{
  47 + "subPackages": [
  48 + {
46 49 "root": "pages/main/home",
47 50 "pages": [
48 51 {
... ... @@ -51,7 +54,6 @@
51 54 "navigationBarTitleText": "待报名单",
52 55 "enablePullDownRefresh": false
53 56 }
54   -
55 57 },
56 58 {
57 59 "path": "registrationReview/registrationReview",
... ... @@ -59,123 +61,127 @@
59 61 "navigationBarTitleText": "报名审核",
60 62 "enablePullDownRefresh": false
61 63 }
62   -
63   - }, {
  64 + },
  65 + {
64 66 "path": "registrationDetail/registrationDetail",
65 67 "style": {
66 68 "navigationBarTitleText": "报名详情",
67 69 "enablePullDownRefresh": false
68 70 }
69   -
70   - }, {
  71 + },
  72 + {
71 73 "path": "studentSignIn/studentSignIn",
72 74 "style": {
73 75 "navigationBarTitleText": "学生签到",
74 76 "enablePullDownRefresh": false
75 77 }
76   -
77   - }, {
  78 + },
  79 + {
78 80 "path": "logReview/logReview",
79 81 "style": {
80 82 "navigationBarTitleText": "日志批阅",
81 83 "enablePullDownRefresh": false
82 84 }
83   -
84   - }, {
  85 + },
  86 + {
85 87 "path": "logDetail/logDetail",
86 88 "style": {
87 89 "navigationBarTitleText": "日志详情",
88 90 "enablePullDownRefresh": false
89 91 }
90   -
91   - }, {
  92 + },
  93 + {
92 94 "path": "reportReview/reportReview",
93 95 "style": {
94 96 "navigationBarTitleText": "报告批阅",
95 97 "enablePullDownRefresh": false
96 98 }
97   -
98   - }, {
  99 + },
  100 + {
99 101 "path": "reportDetail/reportDetail",
100 102 "style": {
101 103 "navigationBarTitleText": "报告详情",
102 104 "enablePullDownRefresh": false
103 105 }
104   -
105   - }, {
  106 + },
  107 + {
106 108 "path": "approvalRecord/approvalRecord",
107 109 "style": {
108 110 "navigationBarTitleText": "审批记录",
109 111 "enablePullDownRefresh": false
110 112 }
111   -
112   - }, {
  113 + },
  114 + {
113 115 "path": "achievementAppraisal/achievementAppraisal",
114 116 "style": {
115 117 "navigationBarTitleText": "成绩鉴定",
116 118 "enablePullDownRefresh": false
117 119 }
118   -
119   - }, {
  120 + },
  121 + {
120 122 "path": "achievementDetail/achievementDetail",
121 123 "style": {
122 124 "navigationBarTitleText": "鉴定详情",
123 125 "enablePullDownRefresh": false
124 126 }
125   - }, {
  127 + },
  128 + {
126 129 "path": "achievementMid/achievementMid",
127 130 "style": {
128 131 "navigationBarTitleText": "成绩鉴定",
129 132 "enablePullDownRefresh": false
130 133 }
131   - },{
  134 + },
  135 + {
132 136 "path": "achievementApply/achievementApply",
133 137 "style": {
134 138 "navigationBarTitleText": "成绩鉴定",
135 139 "enablePullDownRefresh": false
136 140 }
137   - },{
  141 + },
  142 + {
138 143 "path": "asklist/asklist",
139 144 "style": {
140 145 "navigationBarTitleText": "请假审批",
141 146 "enablePullDownRefresh": false
142 147 }
143   -
144   - },{
  148 + },
  149 + {
145 150 "path": "askdetail/askdetail",
146 151 "style": {
147 152 "navigationBarTitleText": "详情",
148 153 "enablePullDownRefresh": false
149 154 }
150   -
151   - }, {
  155 + },
  156 + {
152 157 "path": "changelist/changelist",
153 158 "style": {
154 159 "navigationBarTitleText": "实习变更",
155 160 "enablePullDownRefresh": false
156 161 }
157   -
158   - }, {
  162 + },
  163 + {
159 164 "path": "changedetail/changedetail",
160 165 "style": {
161 166 "navigationBarTitleText": "详情",
162 167 "enablePullDownRefresh": false
163 168 }
164   -
165   - }, {
  169 + },
  170 + {
166 171 "path": "search/search",
167 172 "style": {
168 173 "navigationBarTitleText": "搜索",
169 174 "enablePullDownRefresh": false
170 175 }
171   -
172   - }, {
  176 + },
  177 + {
173 178 "path": "interapply/interapply",
174 179 "style": {
175 180 "navigationBarTitleText": "实习申请",
176 181 "enablePullDownRefresh": false
177 182 }
178   - }, {
  183 + },
  184 + {
179 185 "path": "interapplydetail/interapplydetail",
180 186 "style": {
181 187 "navigationBarTitleText": "实习申请",
... ... @@ -186,216 +192,218 @@
186 192 },
187 193 {
188 194 "root": "pages/main/internship",
189   - "pages": [{
190   - "path": "studentList/studentList",
191   - "style": {
192   - "navigationBarTitleText": "实习生列表",
193   - "enablePullDownRefresh": false
194   - }
195   -
196   - }, {
197   - "path": "traineeDetail/traineeDetail",
198   - "style": {
199   - "navigationBarTitleText": "学生信息",
200   - "enablePullDownRefresh": false
201   - }
202   -
203   - } ,{
204   - "path" : "agreementList/agreementList",
205   - "style" :
206   - {
207   - "navigationBarTitleText": "三方协议",
208   - "enablePullDownRefresh": false
209   - }
210   -
211   - }
212   - ,{
213   - "path" : "agreementDetail/agreementDetail",
214   - "style" :
215   - {
216   - "navigationBarTitleText": "协议详情",
217   - "enablePullDownRefresh": false
218   - }
219   -
220   - }
221   - ,{
222   - "path" : "signInList/signInList",
223   - "style" :
224   - {
225   - "navigationBarTitleText": "签到",
226   - "enablePullDownRefresh": false
227   - }
228   -
229   - }
230   - ,{
231   - "path" : "intershipInfo/intershipInfo",
232   - "style" :
233   - {
234   - "navigationBarTitleText": "实习单详情",
235   - "enablePullDownRefresh": false
236   - }
237   -
238   - }
239   - ,{
240   - "path" : "achievementDetail/achievementDetail",
241   - "style" :
242   - {
243   - "navigationBarTitleText": "成绩详情",
244   - "enablePullDownRefresh": false
245   - }
246   -
247   - }
248   - ,{
249   - "path" : "studentLogReview/studentLogReview",
250   - "style" :
251   - {
252   - "navigationBarTitleText": "",
253   - "enablePullDownRefresh": false
254   - }
255   -
256   - },{
257   - "path" : "traineeInterList/traineeInterList",
258   - "style" :
259   - {
260   - "navigationBarTitleText": "实习信息",
261   - "enablePullDownRefresh": false
  195 + "pages": [
  196 + {
  197 + "path": "studentList/studentList",
  198 + "style": {
  199 + "navigationBarTitleText": "实习生列表",
  200 + "enablePullDownRefresh": false
  201 + }
  202 + },
  203 + {
  204 + "path": "traineeDetail/traineeDetail",
  205 + "style": {
  206 + "navigationBarTitleText": "学生信息",
  207 + "enablePullDownRefresh": false
  208 + }
  209 + },
  210 + {
  211 + "path": "agreementList/agreementList",
  212 + "style": {
  213 + "navigationBarTitleText": "三方协议",
  214 + "enablePullDownRefresh": false
  215 + }
  216 + },
  217 + {
  218 + "path": "agreementDetail/agreementDetail",
  219 + "style": {
  220 + "navigationBarTitleText": "协议详情",
  221 + "enablePullDownRefresh": false
  222 + }
  223 + },
  224 + {
  225 + "path": "signInList/signInList",
  226 + "style": {
  227 + "navigationBarTitleText": "签到",
  228 + "enablePullDownRefresh": false
  229 + }
  230 + },
  231 + {
  232 + "path": "intershipInfo/intershipInfo",
  233 + "style": {
  234 + "navigationBarTitleText": "实习单详情",
  235 + "enablePullDownRefresh": false
  236 + }
  237 + },
  238 + {
  239 + "path": "achievementDetail/achievementDetail",
  240 + "style": {
  241 + "navigationBarTitleText": "成绩详情",
  242 + "enablePullDownRefresh": false
  243 + }
  244 + },
  245 + {
  246 + "path": "studentLogReview/studentLogReview",
  247 + "style": {
  248 + "navigationBarTitleText": "",
  249 + "enablePullDownRefresh": false
  250 + }
  251 + },
  252 + {
  253 + "path": "traineeInterList/traineeInterList",
  254 + "style": {
  255 + "navigationBarTitleText": "实习信息",
  256 + "enablePullDownRefresh": false
262 257 }
263 258 }
264   - ]
  259 + ]
265 260 },
266 261 {
267 262 "root": "pages/main/message",
268   - "pages": [{
269   - "path": "message-list/message-list",
270   - "style": {
271   - "navigationBarTitleText": "公告列表",
272   - "navigationBarTextStyle": "black",
273   - "enablePullDownRefresh": false
274   - }
275   - }, {
276   - "path": "message-detail/message-detail",
277   - "style": {
278   - "navigationBarTitleText": "公告详情",
279   - "navigationBarTextStyle": "black",
280   - "enablePullDownRefresh": false
  263 + "pages": [
  264 + {
  265 + "path": "message-list/message-list",
  266 + "style": {
  267 + "navigationBarTitleText": "公告列表",
  268 + "navigationBarTextStyle": "black",
  269 + "enablePullDownRefresh": false
  270 + }
  271 + },
  272 + {
  273 + "path": "message-detail/message-detail",
  274 + "style": {
  275 + "navigationBarTitleText": "公告详情",
  276 + "navigationBarTextStyle": "black",
  277 + "enablePullDownRefresh": false
  278 + }
281 279 }
282   -
283   - }]
  280 + ]
284 281 },
285 282 {
286 283 "root": "pages/main/my",
287   - "pages": [{
  284 + "pages": [
  285 + {
288 286 "path": "login/login",
289 287 "style": {
290 288 "navigationBarTitleText": "登录",
291 289 "enablePullDownRefresh": false
292 290 }
293   -
  291 + },
  292 + {
  293 + "path": "loginStyle/loginStyle",
  294 + "style": {
  295 + "navigationStyle": "custom",
  296 + "navigationBarTitleText": "",
  297 + "enablePullDownRefresh": false,
  298 + "navigationBarTextStyle": "black"
  299 + }
294 300 },
295 301 {
296 302 "path": "mobileLogin/mobileLogin",
297 303 "style": {
298   - "navigationBarTitleText": "手机登录",
299   - "enablePullDownRefresh": false
  304 + "navigationStyle": "custom",
  305 + "navigationBarTitleText": "",
  306 + "enablePullDownRefresh": false,
  307 + "navigationBarTextStyle": "black"
300 308 }
301   -
302   - }, {
  309 + },
  310 + {
303 311 "path": "accountSafe/accountSafe",
304 312 "style": {
305 313 "navigationBarTitleText": "账号与安全",
306 314 "enablePullDownRefresh": false
307 315 }
308   -
309   - }, {
  316 + },
  317 + {
310 318 "path": "editAccount/editAccount",
311 319 "style": {
312 320 "navigationBarTitleText": "修改账号",
313 321 "enablePullDownRefresh": false
314 322 }
315   -
316   - }, {
  323 + },
  324 + {
317 325 "path": "editMobile/editMobile",
318 326 "style": {
319 327 "navigationBarTitleText": "修改手机号",
320 328 "enablePullDownRefresh": false
321 329 }
322   -
323   - }, {
  330 + },
  331 + {
324 332 "path": "editPassword/editPassword",
325 333 "style": {
326 334 "navigationBarTitleText": "修改密码",
327 335 "enablePullDownRefresh": false
328 336 }
329   -
330   - }, {
  337 + },
  338 + {
331 339 "path": "removeAccount/removeAccount",
332 340 "style": {
333 341 "navigationBarTitleText": "注销账户",
334 342 "enablePullDownRefresh": false
335 343 }
336   -
337   - }, {
  344 + },
  345 + {
338 346 "path": "againRemove/againRemove",
339 347 "style": {
340 348 "navigationBarTitleText": "注销账户",
341 349 "enablePullDownRefresh": false
342 350 }
343   -
344   - }, {
  351 + },
  352 + {
345 353 "path": "freezing/freezing",
346 354 "style": {
347 355 "navigationBarTitleText": "",
348 356 "enablePullDownRefresh": false
349 357 }
350   -
351   - }, {
  358 + },
  359 + {
352 360 "path": "writtenOff/writtenOff",
353 361 "style": {
354 362 "navigationBarTitleText": "",
355 363 "enablePullDownRefresh": false
356 364 }
357   -
358   - }, {
  365 + },
  366 + {
359 367 "path": "policiesAgreement/policiesAgreement",
360 368 "style": {
361 369 "navigationBarTitleText": "政策与协议",
362 370 "enablePullDownRefresh": false
363 371 }
364   -
365   - }, {
  372 + },
  373 + {
366 374 "path": "agreement/agreement",
367 375 "style": {
368 376 "navigationBarTitleText": "隐私协议",
369 377 "enablePullDownRefresh": false
370 378 }
371   -
372   - }, {
  379 + },
  380 + {
373 381 "path": "userPolicy/userPolicy",
374 382 "style": {
375 383 "navigationBarTitleText": "用户政策",
376 384 "enablePullDownRefresh": false
377 385 }
378   -
379   - }, {
  386 + },
  387 + {
380 388 "path": "versionInfo/versionInfo",
381 389 "style": {
382 390 "navigationBarTitleText": "版本信息",
383 391 "enablePullDownRefresh": false
384 392 }
385   -
386   - }, {
  393 + },
  394 + {
387 395 "path": "personInfo/personInfo",
388 396 "style": {
389 397 "navigationBarTitleText": "个人信息",
390 398 "enablePullDownRefresh": false
391 399 }
392   -
393 400 }
394 401 ]
395 402 },
396 403 {
397 404 "root": "pages/common",
398   - "pages": [{
  405 + "pages": [
  406 + {
399 407 "path": "webview/webview",
400 408 "style": {
401 409 "navigationBarTitleText": "",
... ... @@ -405,11 +413,7 @@
405 413 ]
406 414 }
407 415 ],
408   -
409   - "preloadRule": {
410   -
411   - },
412   -
  416 + "preloadRule": {},
413 417 "globalStyle": {
414 418 "navigationBarTextStyle": "black",
415 419 "navigationBarTitleText": "uView",
... ... @@ -417,7 +421,6 @@
417 421 "backgroundColor": "#FFFFFF",
418 422 "fontSize": "36rpx"
419 423 },
420   -
421 424 "tabBar": {
422 425 "color": "#000000",
423 426 "selectedColor": "#06B079",
... ... @@ -426,7 +429,8 @@
426 429 "height": "100rpx",
427 430 "fontSize": "40rpx",
428 431 "custom": true,
429   - "list": [{
  432 + "list": [
  433 + {
430 434 "pagePath": "pages/tabBar/home/home"
431 435 },
432 436 {
... ... @@ -440,4 +444,4 @@
440 444 }
441 445 ]
442 446 }
443   -}
  447 +}
\ No newline at end of file
... ...
... ... @@ -61,7 +61,7 @@
61 61 title: '撤销成功'
62 62 });
63 63
64   - this.$u.route('/pages/main/my/login/login');
  64 + this.$u.route('/pages/main/my/loginStyle/loginStyle');
65 65 })
66 66 },
67 67
... ...
  1 +<template>
  2 + <view class="login" :style="vuex_theme">
  3 + <u-navbar
  4 + leftIconSize="40"
  5 + leftIconColor="#fff"
  6 + :titleStyle="{color: '#fff'}"
  7 + title="登录"
  8 + bgColor="transparent"
  9 + placeholder
  10 + autoBack
  11 + />
  12 + <view class="box">
  13 +
  14 + <view class="form">
  15 +
  16 + <view class="title">
  17 + <img src="https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/t_logo.png" alt="" />
  18 + <view class="one">欢迎登录优学乐业</view>
  19 + <view class="two">教师端</view>
  20 + </view>
  21 +
  22 + <view v-if="changeLogin == '密码登录'">
  23 +
  24 + <u-form :model="form" ref="uForm">
  25 + <view style="background: #F7F7F7;border-radius: 8px;">
  26 + <u-form-item
  27 + prop="mobile"
  28 + >
  29 + <u-input
  30 + v-model="form.mobile"
  31 + border="none"
  32 + maxlength="11"
  33 + placeholder="请输入手机号"
  34 + :customStyle="{fontSize:'30rpx', padding: '24rpx 40rpx', fontWeight: '400'}"
  35 + />
  36 + </u-form-item>
  37 + </view>
  38 +
  39 + <view style="background: #F7F7F7;margin-top: 20px;border-radius: 8px;">
  40 + <u-form-item
  41 + prop="verifyCode"
  42 + >
  43 + <u-input
  44 + v-model="form.password"
  45 + border="none"
  46 + placeholder="请输入验证码"
  47 + :customStyle="{fontSize:'30rpx', padding: '24rpx 40rpx', fontWeight: '400'}"
  48 + />
  49 + <u-button
  50 + type="default"
  51 + size="mini"
  52 + slot="right"
  53 + :hair-line="false"
  54 + hover-class="none"
  55 + :custom-style="{color:'var(--primary-color)', border:'none',fontSize:'30rpx', background: 'none', fontWeight: '500', padding: '0 40rpx'}"
  56 + @click="getCode"
  57 + >
  58 + {{ codeText }}
  59 + </u-button>
  60 + <u-code ref="uCode" @change="codeChange"></u-code>
  61 + </u-form-item>
  62 + </view>
  63 + </u-form>
  64 +
  65 + </view>
  66 + <view v-else>
  67 + <u-form :model="form" ref="uForm">
  68 +
  69 + <view style="background: #F7F7F7;border-radius: 8px;">
  70 + <u-form-item
  71 + prop="mobile"
  72 + >
  73 + <u-input
  74 + v-model="form.mobile"
  75 + border="none"
  76 + placeholder="请输入账号"
  77 + :customStyle="{fontSize:'30rpx', padding: '24rpx 40rpx', fontWeight: '400'}"
  78 + />
  79 + </u-form-item>
  80 + </view>
  81 +
  82 + <view style="background: #F7F7F7;margin-top: 20px;border-radius: 8px;">
  83 + <u-form-item
  84 + prop="verifyCode"
  85 + >
  86 + <u-input
  87 + v-model="form.password"
  88 + border="none"
  89 + type="password"
  90 + placeholder="请输入密码"
  91 + :customStyle="{fontSize:'30rpx', padding: '24rpx 40rpx', fontWeight: '400'}"
  92 + />
  93 + </u-form-item>
  94 + </view>
  95 +
  96 + </u-form>
  97 +
  98 + </view>
  99 +
  100 +
  101 + <view class="btn button_warp">
  102 + <c-button type="confirm" shape="circle"
  103 + :customStyle="{borderRadius:'16rpx',fontSize:'36rpx',color:'#fff',fontWeight:'400'}" text="登录"
  104 + :disabled="isDisable" @click="phoneLogin"></c-button>
  105 + </view>
  106 +
  107 + <view class="other_login">
  108 + <view class="quickLogin" @click="onChangeQuickLogin">
  109 + 快速登录
  110 + </view>
  111 + <view class="changeLogin" @click="onchangeLogin">
  112 + {{ changeLogin }}
  113 + </view>
  114 + </view>
  115 +
  116 + </view>
  117 +
  118 +
  119 + <view class="agreement">
  120 + <view class="check">
  121 + <u-checkbox-group @change="checkboxChange" v-model="checked">
  122 + <u-checkbox
  123 + size="28"
  124 + activeColor="var(--primary-color)"
  125 + shape="circle"
  126 + >
  127 + </u-checkbox>
  128 + </u-checkbox-group>
  129 + </view>
  130 + <view class="text">
  131 + <text>您已阅读理解并同意</text>
  132 + <text class="span" @click="linkService">《服务协议》、</text>
  133 + <text class="span" @click="linkPolicy">《隐私政策》</text>
  134 + </view>
  135 + </view>
  136 + </view>
  137 + <view>
  138 + <u-toast ref="uToast" />
  139 + </view>
  140 + <u-popup :show="yxlyLoginShow" mode="bottom" round="18">
  141 + <yxly-login
  142 + @clickX="yxlyLoginShow = false"
  143 + @callBack="sucesslogin"
  144 + ></yxly-login>
  145 + </u-popup>
  146 + </view>
  147 +</template>
  148 +
  149 +<script>
  150 +import { mapState, mapActions } from "vuex";
  151 +import { getSmsCodeApi } from "@/config/api.js";
  152 +import md5 from "@/common/md5";
  153 +
  154 +export default {
  155 + data() {
  156 + return {
  157 + yxlyLoginShow: false,
  158 + errorType: "toast",
  159 + isDisable: true,
  160 + checked: [],
  161 + service: "https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/agreement/%E3%80%8A%E4%BC%98%E5%AD%A6%E4%B9%90%E4%B8%9A%E7%94%A8%E6%88%B7%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE%E3%80%8B.htm",
  162 + policy: "https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/agreement/%E3%80%8A%E4%BC%98%E5%AD%A6%E4%B9%90%E4%B8%9A%E9%9A%90%E7%A7%81%E5%8D%8F%E8%AE%AE%E3%80%8B.htm",
  163 + form: {
  164 + mobile: "",
  165 + password: "",
  166 + },
  167 + changeLogin: "密码登录",
  168 + codeText: "发送验证码",
  169 + };
  170 + },
  171 +
  172 + onLoad() {
  173 + if (this.vuex_appId == 'wxac18386e35824192') {
  174 + // 新华
  175 + this.service = "https://hropublic.oss-cn-beijing.aliyuncs.com/APP/xhsx/1-%20%E6%96%B0%E5%8D%8E%E5%AE%9E%E4%B9%A0%E7%94%A8%E6%88%B7%E6%9C%8D%E5%8A%A1%E5%8D%8F%E8%AE%AE(%E6%B8%85%E6%B4%81%E7%89%88).html"
  176 + this.policy = "https://hropublic.oss-cn-beijing.aliyuncs.com/APP/xhsx/1.1-%20%E6%96%B0%E5%8D%8E%E5%AE%9E%E4%B9%A0%E9%9A%90%E7%A7%81%E6%94%BF%E7%AD%96(%E6%B8%85%E6%B4%81%E7%89%88).html"
  177 + }
  178 + },
  179 +
  180 + onShow() {},
  181 +
  182 + watch: {
  183 + checked: function (newVal, oldVal) {
  184 + this.isDisable = newVal.length != 0 ? false : true;
  185 + },
  186 + },
  187 +
  188 + computed: {
  189 + ...mapState("user", {
  190 + // 箭头函数可使代码更简练
  191 + isReg: "isReg",
  192 + }),
  193 + },
  194 +
  195 + methods: {
  196 +
  197 + onChangeQuickLogin() {
  198 + this.yxlyLoginShow = true
  199 + },
  200 +
  201 + onchangeLogin() {
  202 + if (this.changeLogin == "验证码登录") {
  203 + this.changeLogin = "密码登录";
  204 + } else {
  205 + this.changeLogin = "验证码登录";
  206 + }
  207 + },
  208 +
  209 + linkService() {
  210 + console.log(this);
  211 + this.$u.route({
  212 + url: `/pages/common/webview/webview?navtitle=服务协议&url=${this.service}`,
  213 + });
  214 + },
  215 +
  216 + linkPolicy() {
  217 + this.$u.route({
  218 + url: `/pages/common/webview/webview?navtitle=隐私政策&url=${this.policy}`,
  219 + });
  220 + },
  221 +
  222 + checkboxChange(n) {
  223 + // console.log(n)
  224 + },
  225 +
  226 + getUserProfile() {
  227 + // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
  228 + // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
  229 + wx.getUserProfile({
  230 + desc: "用于完善会员资料", // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
  231 + success: (res) => {
  232 + console.log("getUserProfile...", res);
  233 + // this.$store.commit('setWenxinUserInfo', res);
  234 + this.$u.vuex("vuex_weixinUserInfo", res.userInfo);
  235 + },
  236 + });
  237 + },
  238 +
  239 + codeChange(text) {
  240 + this.codeText = text;
  241 + },
  242 +
  243 + getCode() {
  244 + const { mobile = "" } = this.form;
  245 +
  246 + if (!(mobile && /^1[3456789]\d{9}$/.test(mobile))) {
  247 + this.$refs.uToast.show({
  248 + message: "请填写正确手机号",
  249 + type: "error",
  250 + duration: 1500,
  251 + });
  252 + } else {
  253 + if (this.$refs.uCode.canGetCode) {
  254 + // 模拟向后端请求验证码
  255 + uni.showLoading({
  256 + title: "正在获取验证码",
  257 + });
  258 + setTimeout(() => {
  259 + uni.hideLoading();
  260 + // 通知验证码组件内部开始倒计时
  261 +
  262 + getSmsCodeApi({ phone: mobile, type: 'teacher_login' }).then(res => {
  263 + console.warn(res)
  264 + this.$refs.uCode.start();
  265 + }).catch(errors => {
  266 + uni.showToast({
  267 + title: errors.data.msg,
  268 + icon: "none",
  269 + duration: 2500,
  270 + })
  271 + })
  272 + }, 1000);
  273 + } else {
  274 + this.$u.toast("倒计时结束后再发送");
  275 + }
  276 + }
  277 + },
  278 +
  279 + phoneLogin() {
  280 +
  281 +
  282 + if (this.changeLogin == "密码登录") {
  283 +
  284 + if (!(this.form.mobile && /^1[0-9]{10}$/.test(this.form.mobile))) {
  285 + this.$refs.uToast.show({
  286 + title: '请填写正确手机号',
  287 + type: 'error',
  288 + duration: 1500,
  289 + })
  290 + return
  291 + }
  292 + if (!(this.form.password && /^[0-9]{4}$/.test(this.form.password))) {
  293 + this.$refs.uToast.show({
  294 + title: '请填写正确验证码',
  295 + type: 'error',
  296 + duration: 1500,
  297 + })
  298 + return
  299 + }
  300 +
  301 + this.$store.dispatch(`user/login`, {
  302 + way: "code",
  303 + type: "teacher",
  304 + phone: this.form.mobile,
  305 + code: this.form.password,
  306 + })
  307 + .then((data) => {
  308 + if (data) {
  309 + // self.$emit("callBack");
  310 + uni.navigateBack();
  311 + }
  312 + });
  313 + } else {
  314 +
  315 + console.log(md5.hex_md5(this.form.password));
  316 +
  317 + this.$store.dispatch(`user/login`, {
  318 + way: "name",
  319 + type: "teacher",
  320 + username: this.form.mobile,
  321 + password: md5.hex_md5(this.form.password),
  322 + })
  323 + .then((data) => {
  324 + if (data) {
  325 + // self.$emit("callBack");
  326 + uni.navigateBack();
  327 + }
  328 + });
  329 + }
  330 + },
  331 + },
  332 +};
  333 +</script>
  334 +
  335 +<style lang="scss" scoped>
  336 +.login {
  337 + width: 100%;
  338 + height: 100%;
  339 + position: relative;
  340 +
  341 + background-image: url("https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/login_background.png");
  342 + background-size: contain;
  343 + background-repeat: no-repeat;
  344 +
  345 + .box {
  346 + width: 100%;
  347 + height: 100%;
  348 + position: absolute;
  349 + top: 0;
  350 + left: 0;
  351 +
  352 + .logo {
  353 + padding: 156rpx 0 0 0;
  354 + width: 120rpx;
  355 + margin: 0 auto;
  356 + }
  357 +
  358 + .name {
  359 + margin: 32rpx 0 0 0;
  360 + text-align: center;
  361 + font-size: 48rpx;
  362 + line-height: 66rpx;
  363 + color: #000000;
  364 + font-weight: 600;
  365 + }
  366 +
  367 + .other_login {
  368 + width: 100%;
  369 + text-align: center;
  370 + margin: 40rpx 0 0 0;
  371 + font-size: 30rpx;
  372 + font-weight: 400;
  373 + color: rgba(0, 0, 0, 0.65);
  374 + display: flex;
  375 + justify-content: center;
  376 +
  377 + .changeLogin {
  378 + margin-left: 40rpx;
  379 + }
  380 + }
  381 +
  382 + .agreement {
  383 + position: fixed;
  384 + left: 0;
  385 + bottom: 34rpx;
  386 + display: flex;
  387 + flex-direction: row;
  388 + justify-content: flex-start;
  389 + font-size: 24rpx;
  390 + margin: 30rpx 0 32rpx 0;
  391 + padding: 0 50rpx;
  392 +
  393 + .check {
  394 + width: 40rpx;
  395 + padding: 5rpx 0 0 0;
  396 + // display: inline-block;
  397 + }
  398 +
  399 + .text {
  400 + // display: inline-block;
  401 + color: rgba(0, 0, 0, 0.45);
  402 +
  403 + .span {
  404 + color: var(--primary-color);
  405 + }
  406 + }
  407 + }
  408 +
  409 + .form {
  410 + margin: 256rpx 40rpx 0px;
  411 + background: #fff;
  412 + border-radius: 20rpx;
  413 + padding: 80rpx 36rpx 0rpx;
  414 +
  415 + .title {
  416 + text-align: center;
  417 +
  418 + img {
  419 + width: 208rpx;
  420 + height: 160rpx;
  421 + margin-bottom: 20rpx;
  422 + }
  423 +
  424 + .one {
  425 + font-size: 48rpx;
  426 + font-weight: 600;
  427 + color: #000000;
  428 + }
  429 +
  430 + .two {
  431 + font-size: 36rpx;
  432 + font-weight: 400;
  433 + color: #000000;
  434 + margin-bottom: 50rpx;
  435 + margin-top: 8rpx;
  436 + }
  437 + }
  438 +
  439 + }
  440 +
  441 + .form /deep/ .u-border-bottom:after {
  442 + border-bottom-width: 0px;
  443 + }
  444 +
  445 + .form /deep/ .u-form-item {
  446 + padding: 0;
  447 + }
  448 +
  449 + .form /deep/ .u-form-item__body {
  450 + padding: 0px;
  451 + }
  452 +
  453 +
  454 + .form /deep/ .u-flex {
  455 + padding-right: 20rpx;
  456 + }
  457 +
  458 + .btn {
  459 + margin-top: 40rpx;
  460 + }
  461 +
  462 + .wxLogin {
  463 + display: flex;
  464 + align-items: center;
  465 + flex-direction: column;
  466 + margin-top: 180rpx;
  467 +
  468 + button {
  469 + background-color: transparent;
  470 + }
  471 +
  472 + button::after {
  473 + border: initial;
  474 + }
  475 +
  476 + image {
  477 + width: 96rpx;
  478 + height: 96rpx;
  479 + }
  480 +
  481 + text {
  482 + margin-top: 0rpx;
  483 + }
  484 + }
  485 + }
  486 +}
  487 +</style>
... ...
... ... @@ -553,7 +553,7 @@ export default {
553 553 },
554 554
555 555 handelLOgin() {
556   - this.$u.route("/pages/main/my/login/login");
  556 + this.$u.route("/pages/main/my/loginStyle/loginStyle");
557 557 },
558 558
559 559 handelChange() {
... ... @@ -594,7 +594,7 @@ export default {
594 594
595 595 handelGate(even) {
596 596 if (!this.hasLogin) {
597   - this.$u.route("/pages/main/my/login/login");
  597 + this.$u.route("/pages/main/my/loginStyle/loginStyle");
598 598 return;
599 599 }
600 600
... ...
... ... @@ -110,7 +110,7 @@
110 110 },
111 111
112 112 handelLOgin() {
113   - this.$u.route('/pages/main/my/login/login');
  113 + this.$u.route('/pages/main/my/loginStyle/loginStyle');
114 114 },
115 115
116 116 handelSearch(value) {
... ...
... ... @@ -149,7 +149,7 @@
149 149 icon="/static/img/my/school_authen.png"
150 150 title="账号与安全"
151 151 :isLink="true"
152   - url="/pages/main/my/login/login"
  152 + url="/pages/main/my/loginStyle/loginStyle"
153 153 arrow-direction="right"
154 154 :rightIconStyle="{ fontSize: '36rpx' }"
155 155 :border="false"
... ... @@ -169,7 +169,7 @@
169 169 icon="/static/img/my/school_authen.png"
170 170 title="政策与协议"
171 171 :isLink="true"
172   - url="/pages/main/my/login/login"
  172 + url="/pages/main/my/loginStyle/loginStyle"
173 173 arrow-direction="right"
174 174 :rightIconStyle="{ fontSize: '36rpx' }"
175 175 :border="false"
... ... @@ -195,7 +195,7 @@
195 195 icon="/static/img/my/school_authen.png"
196 196 title="版本信息"
197 197 :isLink="true"
198   - url="/pages/main/my/login/login"
  198 + url="/pages/main/my/loginStyle/loginStyle"
199 199 arrow-direction="right"
200 200 :rightIconStyle="{ fontSize: '36rpx' }"
201 201 :border="false"
... ... @@ -270,7 +270,7 @@ export default {
270 270 }),
271 271
272 272 handelLOgin() {
273   - this.$u.route("/pages/main/my/login/login");
  273 + this.$u.route("/pages/main/my/loginStyle/loginStyle");
274 274 },
275 275
276 276 link(type) {
... ...
... ... @@ -86,7 +86,7 @@ const actions = {
86 86 }, params) {
87 87
88 88 await commit('setLoginOut', {});
89   - uni.$u.route('/pages/main/my/login/login');
  89 + uni.$u.route('/pages/main/my/loginStyle/loginStyle');
90 90 },
91 91
92 92 async getUserInfo({
... ...
注册登录 后发表评论