提交 a7c26e7ae607d39f970faef90edd9290d98b5cbe
Merge branch 'developer/yxly-teacher-genglw-20220713' into develop
正在显示
88 个修改的文件
包含
978 行增加
和
215 行删除
.gitignore
0 → 100644
| 1 | +.DS_Store | ||
| 2 | +node_modules/ | ||
| 3 | +unpackage/ | ||
| 4 | +dist/ | ||
| 5 | + | ||
| 6 | +# local env files | ||
| 7 | +.env.local | ||
| 8 | +.env.*.local | ||
| 9 | + | ||
| 10 | +# Log files | ||
| 11 | +npm-debug.log* | ||
| 12 | +yarn-debug.log* | ||
| 13 | +yarn-error.log* | ||
| 14 | + | ||
| 15 | +# Editor directories and files | ||
| 16 | +.project | ||
| 17 | +.idea | ||
| 18 | +.vscode | ||
| 19 | +*.suo | ||
| 20 | +*.ntvs* | ||
| 21 | +*.njsproj | ||
| 22 | +*.sln | ||
| 23 | +*.sw* |
| @@ -7,7 +7,8 @@ | @@ -7,7 +7,8 @@ | ||
| 7 | * @LastEditTime: 2022-02-18 14:06:28 | 7 | * @LastEditTime: 2022-02-18 14:06:28 |
| 8 | --> | 8 | --> |
| 9 | <template> | 9 | <template> |
| 10 | - <view> | 10 | + <view> |
| 11 | + <u-toast ref="uToast" /> | ||
| 11 | </view> | 12 | </view> |
| 12 | </template> | 13 | </template> |
| 13 | 14 | ||
| @@ -36,5 +37,5 @@ | @@ -36,5 +37,5 @@ | ||
| 36 | <style lang="scss"> | 37 | <style lang="scss"> |
| 37 | /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ | 38 | /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ |
| 38 | @import "@/uni_modules/uview-ui/index.scss"; | 39 | @import "@/uni_modules/uview-ui/index.scss"; |
| 39 | - @import '@/static/common/css/icon.css'; | 40 | + @import '@/static/css/icon.css'; |
| 40 | </style> | 41 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <view class="u-button"> | 2 | <view class="u-button"> |
| 3 | - <u-button type="primary" :shape="shape" :open-type="openType" @getphonenumber="getPhoneNumber" hover-class="none" :disabled="disabled" :custom-style="getCustomStyle" | ||
| 4 | - @click="click"> | ||
| 5 | - {{text}} | 3 | + <u-button :text="text" color="#0CB17A" :plain="false" :hairline="false" :disabled="disabled" :throttleTime="1500" |
| 4 | + type="info" shape="circle" :open-type="openType" @getphonenumber="getPhoneNumber" | ||
| 5 | + :custom-style="getCustomStyle" @click="click"> | ||
| 6 | </u-button> | 6 | </u-button> |
| 7 | </view> | 7 | </view> |
| 8 | </template> | 8 | </template> |
| @@ -18,14 +18,10 @@ | @@ -18,14 +18,10 @@ | ||
| 18 | type: { | 18 | type: { |
| 19 | type: String, | 19 | type: String, |
| 20 | default: 'confirm' | 20 | default: 'confirm' |
| 21 | - }, | ||
| 22 | - openType: { | ||
| 23 | - type: String, | ||
| 24 | - default: '' | ||
| 25 | }, | 21 | }, |
| 26 | - shape: { | 22 | + openType: { |
| 27 | type: String, | 23 | type: String, |
| 28 | - default: 'square' | 24 | + default: '' |
| 29 | }, | 25 | }, |
| 30 | disabled: { | 26 | disabled: { |
| 31 | type: Boolean, | 27 | type: Boolean, |
| @@ -37,53 +33,69 @@ | @@ -37,53 +33,69 @@ | ||
| 37 | return {} | 33 | return {} |
| 38 | } | 34 | } |
| 39 | }, | 35 | }, |
| 36 | + color: { | ||
| 37 | + type: String, | ||
| 38 | + default: '' | ||
| 39 | + }, | ||
| 40 | + | ||
| 40 | }, | 41 | }, |
| 41 | data() { | 42 | data() { |
| 42 | return {} | 43 | return {} |
| 43 | }, | 44 | }, |
| 44 | - computed: { | ||
| 45 | - getCustomStyle() { | ||
| 46 | 45 | ||
| 47 | - const { | ||
| 48 | - type = '' | ||
| 49 | - } = this; | ||
| 50 | - | ||
| 51 | - let style = {}; | ||
| 52 | - | ||
| 53 | - switch (type) { | 46 | + watch: { |
| 47 | + buttonType: function(newVal, oldVal) { | ||
| 48 | + switch (this.type) { | ||
| 54 | case 'confirm': | 49 | case 'confirm': |
| 55 | - return Object.assign({}, { | ||
| 56 | - backgroundColor: '#FF001A', | ||
| 57 | - borderRadius: '8rpx', | ||
| 58 | - }, this.customStyle); | ||
| 59 | - break; | ||
| 60 | - | ||
| 61 | - case 'cancel': | ||
| 62 | - return Object.assign({}, { | ||
| 63 | - backgroundColor: "rgba(0,0,0,0.15)", | ||
| 64 | - borderRadius: '8rpx', | ||
| 65 | - }, this.customStyle); | ||
| 66 | - break; | ||
| 67 | - | ||
| 68 | - case 'custom': | ||
| 69 | - return Object.assign({}, this.customStyle); | 50 | + this.color = "#0CB17A"; |
| 70 | break; | 51 | break; |
| 71 | } | 52 | } |
| 72 | } | 53 | } |
| 73 | }, | 54 | }, |
| 55 | + | ||
| 56 | + computed: { | ||
| 57 | + // getCustomStyle() { | ||
| 58 | + | ||
| 59 | + // const { | ||
| 60 | + // type = '' | ||
| 61 | + // } = this; | ||
| 62 | + | ||
| 63 | + // let style = {}; | ||
| 64 | + | ||
| 65 | + // switch (type) { | ||
| 66 | + // case 'confirm': | ||
| 67 | + // return Object.assign({}, { | ||
| 68 | + // backgroundColor: '#FF001A', | ||
| 69 | + // borderRadius: '8rpx', | ||
| 70 | + // }, this.customStyle); | ||
| 71 | + // break; | ||
| 72 | + | ||
| 73 | + // case 'cancel': | ||
| 74 | + // return Object.assign({}, { | ||
| 75 | + // backgroundColor: "rgba(0,0,0,0.15)", | ||
| 76 | + // borderRadius: '8rpx', | ||
| 77 | + // }, this.customStyle); | ||
| 78 | + // break; | ||
| 79 | + | ||
| 80 | + // case 'custom': | ||
| 81 | + // return Object.assign({}, this.customStyle); | ||
| 82 | + // break; | ||
| 83 | + // } | ||
| 84 | + // } | ||
| 85 | + }, | ||
| 74 | methods: { | 86 | methods: { |
| 75 | // 按钮点击 | 87 | // 按钮点击 |
| 76 | click(e) { | 88 | click(e) { |
| 77 | this.$emit('click', e); | 89 | this.$emit('click', e); |
| 78 | - }, | ||
| 79 | - | ||
| 80 | - getPhoneNumber(e) { | ||
| 81 | - this.$emit("getPhoneNumber", e) | 90 | + }, |
| 91 | + | ||
| 92 | + getPhoneNumber(e) { | ||
| 93 | + this.$emit("getPhoneNumber", e) | ||
| 82 | } | 94 | } |
| 83 | } | 95 | } |
| 84 | } | 96 | } |
| 85 | </script> | 97 | </script> |
| 86 | 98 | ||
| 87 | -<style lang="scss"> | ||
| 88 | - | 99 | +<style lang="scss"> |
| 100 | + | ||
| 89 | </style> | 101 | </style> |
| 1 | const http = uni.$u.http | 1 | const http = uni.$u.http |
| 2 | 2 | ||
| 3 | -// post请求,获取菜单 | ||
| 4 | -export const postMenu = (params) => http.post('/ebapi/public_api/index', params) | 3 | +// 获取token |
| 4 | +export const postTokenApi = (params, config = {}) => http.post('/auth/v1/login', params, config) | ||
| 5 | 5 | ||
| 6 | -// get请求,获取菜单,注意:get请求的配置等,都在第二个参数中,详见前面解释 | ||
| 7 | -export const getMenu = (data) => http.get('/ebapi/public_api/index', data) | 6 | +// 获取用户信息 |
| 7 | +export const getUserInfoApi = (data) => http.get('/user/v1/detail', { | ||
| 8 | + params: data | ||
| 9 | +}) | ||
| 10 | + | ||
| 11 | +// 获取短信验证码 | ||
| 12 | +export const getSmsCodeApi = (data) => http.get('/basic/v1/sms_code/get', { | ||
| 13 | + params: data | ||
| 14 | +}) |
| @@ -5,26 +5,50 @@ module.exports = (vm) => { | @@ -5,26 +5,50 @@ module.exports = (vm) => { | ||
| 5 | /* config 为默认全局配置*/ | 5 | /* config 为默认全局配置*/ |
| 6 | 6 | ||
| 7 | // 测试环境 | 7 | // 测试环境 |
| 8 | - // config.baseUrl = "http://39.104.52.206:8000"; | 8 | + config.baseURL = "http://39.104.52.206:8000"; |
| 9 | // 预生产环境 | 9 | // 预生产环境 |
| 10 | - // config.baseUrl = "https://api-isxpre.workai.com.cn"; | 10 | + // config.baseURL = "https://api-isxpre.workai.com.cn"; |
| 11 | // 线上环境 | 11 | // 线上环境 |
| 12 | - config.baseUrl = "https://api-isx.workai.com.cn"; | 12 | + // config.baseURL = "https://api-isx.workai.com.cn"; |
| 13 | 13 | ||
| 14 | - config.OSSUrl = "https://oss.workai.com.cn"; | ||
| 15 | - | ||
| 16 | - // 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data | ||
| 17 | - // 设置为true后,就需要在this.$u.http.interceptor.response进行多一次的判断,请打印查看具体值 | ||
| 18 | - | ||
| 19 | - config.loadingText = '努力加载中~'; | ||
| 20 | - config.loadingTime = 800; | ||
| 21 | - config.originalData = true; | ||
| 22 | - // 设置自定义头部content-type | ||
| 23 | config.header = { | 14 | config.header = { |
| 24 | // 'content-type': 'xxx' | 15 | // 'content-type': 'xxx' |
| 25 | 'Authorization': 'Basic d29ya2FpOjEyMzQ1Ng==' | 16 | 'Authorization': 'Basic d29ya2FpOjEyMzQ1Ng==' |
| 26 | }; | 17 | }; |
| 27 | 18 | ||
| 19 | + // 设置自定义头部content-type | ||
| 20 | + config.dataType = 'json'; | ||
| 21 | + // #ifndef MP-ALIPAY | ||
| 22 | + config.responseType = 'text'; | ||
| 23 | + // #endif | ||
| 24 | + // 注:如果局部custom与全局custom有同名属性,则后面的属性会覆盖前面的属性,相当于Object.assign(全局,局部) | ||
| 25 | + config.custom = {}; // 全局自定义参数默认值 | ||
| 26 | + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN | ||
| 27 | + config.timeout = 60000; | ||
| 28 | + // #endif | ||
| 29 | + // #ifdef APP-PLUS | ||
| 30 | + config.sslVerify = true; | ||
| 31 | + // #endif | ||
| 32 | + // #ifdef H5 | ||
| 33 | + // 跨域请求时是否携带凭证(cookies)仅H5支持(HBuilderX 2.6.15+) | ||
| 34 | + config.withCredentials = false; | ||
| 35 | + // #endif | ||
| 36 | + // #ifdef APP-PLUS | ||
| 37 | + config.firstIpv4 = false; // DNS解析时优先使用ipv4 仅 App-Android 支持 (HBuilderX 2.8.0+) | ||
| 38 | + // #endif | ||
| 39 | + // 局部优先级高于全局,返回当前请求的task,options。请勿在此处修改options。非必填 | ||
| 40 | + // getTask: (task, options) => { | ||
| 41 | + // 相当于设置了请求超时时间500ms | ||
| 42 | + // setTimeout(() => { | ||
| 43 | + // task.abort() | ||
| 44 | + // }, 500) | ||
| 45 | + // }, | ||
| 46 | + | ||
| 47 | + // 全局自定义验证器。参数为statusCode 且必存在,不用判断空情况。 | ||
| 48 | + config.validateStatus = (statusCode) => { // statusCode 必存在。此处示例为全局默认配置 | ||
| 49 | + return statusCode >= 200 && statusCode < 300 | ||
| 50 | + }; | ||
| 51 | + | ||
| 28 | return config; | 52 | return config; |
| 29 | }) | 53 | }) |
| 30 | 54 |
| @@ -102,7 +102,7 @@ | @@ -102,7 +102,7 @@ | ||
| 102 | }, | 102 | }, |
| 103 | "quickapp" : {}, | 103 | "quickapp" : {}, |
| 104 | "mp-weixin" : { | 104 | "mp-weixin" : { |
| 105 | - "appid" : "wx5177bff86a427016", | 105 | + "appid" : "wx84b71301436652ce", |
| 106 | "setting" : { | 106 | "setting" : { |
| 107 | "urlCheck" : false, | 107 | "urlCheck" : false, |
| 108 | "es6" : true, | 108 | "es6" : true, |
| 1 | { | 1 | { |
| 2 | "easycom": { | 2 | "easycom": { |
| 3 | - "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue", | 3 | + "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue", |
| 4 | "^c-(.*)": "@/components/c-$1/c-$1.vue" | 4 | "^c-(.*)": "@/components/c-$1/c-$1.vue" |
| 5 | }, | 5 | }, |
| 6 | "condition": { //模式配置,仅开发期间生效 | 6 | "condition": { //模式配置,仅开发期间生效 |
| 7 | "current": 0, //当前激活的模式(list 的索引项) | 7 | "current": 0, //当前激活的模式(list 的索引项) |
| 8 | "list": [{ | 8 | "list": [{ |
| 9 | "name": "defult", //模式名称 | 9 | "name": "defult", //模式名称 |
| 10 | - "path": "pages/main/position/positionDetail/positionDetail", | ||
| 11 | - "query": "jobId=1544925053173403649&brokerId=1000007" | 10 | + "path": "pages/main/my/mobileLogin/mobileLogin", |
| 11 | + "query": "" | ||
| 12 | }] | 12 | }] |
| 13 | }, | 13 | }, |
| 14 | "pages": [{ | 14 | "pages": [{ |
| @@ -20,14 +20,40 @@ | @@ -20,14 +20,40 @@ | ||
| 20 | } | 20 | } |
| 21 | }, | 21 | }, |
| 22 | { | 22 | { |
| 23 | + "path": "pages/tabBar/internship/internship", | ||
| 24 | + "style": { | ||
| 25 | + "navigationStyle": "custom", | ||
| 26 | + "navigationBarTitleText": "" | ||
| 27 | + } | ||
| 28 | + }, | ||
| 29 | + { | ||
| 23 | "path": "pages/tabBar/my/my", | 30 | "path": "pages/tabBar/my/my", |
| 24 | "style": { | 31 | "style": { |
| 25 | - "navigationStyle": "custom" | ||
| 26 | - // "navigationBarTitleText": "校企职通车人人推" | 32 | + "navigationStyle": "custom", |
| 33 | + "navigationBarTitleText": "" | ||
| 27 | } | 34 | } |
| 28 | } | 35 | } |
| 29 | ], | 36 | ], |
| 30 | - "subPackages": [], | 37 | + "subPackages": [{ |
| 38 | + "root": "pages/main/my", | ||
| 39 | + "pages": [{ | ||
| 40 | + "path": "login/login", | ||
| 41 | + "style": { | ||
| 42 | + "navigationBarTitleText": "登录", | ||
| 43 | + "enablePullDownRefresh": false | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + }, | ||
| 47 | + { | ||
| 48 | + "path": "mobileLogin/mobileLogin", | ||
| 49 | + "style": { | ||
| 50 | + "navigationBarTitleText": "手机登录", | ||
| 51 | + "enablePullDownRefresh": false | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + } | ||
| 55 | + ] | ||
| 56 | + }], | ||
| 31 | 57 | ||
| 32 | "preloadRule": { | 58 | "preloadRule": { |
| 33 | 59 | ||
| @@ -49,15 +75,23 @@ | @@ -49,15 +75,23 @@ | ||
| 49 | "height": "100rpx", | 75 | "height": "100rpx", |
| 50 | "fontSize": "40rpx", | 76 | "fontSize": "40rpx", |
| 51 | "list": [{ | 77 | "list": [{ |
| 52 | - "pagePath": "pages/tabBar/home/home", | ||
| 53 | - "iconPath": "/static/img/tabbar/home.png", | ||
| 54 | - "selectedIconPath": "/static/img/tabbar/homeHL.png", | ||
| 55 | - "text": "首页" | ||
| 56 | - }, { | ||
| 57 | - "pagePath": "pages/tabBar/my/my", | ||
| 58 | - "iconPath": "/static/img/tabbar/my.png", | ||
| 59 | - "selectedIconPath": "/static/img/tabbar/myHL.png", | ||
| 60 | - "text": "我的" | ||
| 61 | - }] | 78 | + "pagePath": "pages/tabBar/home/home", |
| 79 | + "iconPath": "/static/img/icon/home.png", | ||
| 80 | + "selectedIconPath": "/static/img/icon/homeHL.png", | ||
| 81 | + "text": "首页" | ||
| 82 | + }, | ||
| 83 | + { | ||
| 84 | + "pagePath": "pages/tabBar/internship/internship", | ||
| 85 | + "iconPath": "/static/img/icon/position.png", | ||
| 86 | + "selectedIconPath": "/static/img/icon/positionHL.png", | ||
| 87 | + "text": "实习" | ||
| 88 | + }, | ||
| 89 | + { | ||
| 90 | + "pagePath": "pages/tabBar/my/my", | ||
| 91 | + "iconPath": "/static/img/icon/my.png", | ||
| 92 | + "selectedIconPath": "/static/img/icon/myHL.png", | ||
| 93 | + "text": "我的" | ||
| 94 | + } | ||
| 95 | + ] | ||
| 62 | } | 96 | } |
| 63 | } | 97 | } |
pages/common/webview/webview.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <page-meta> | ||
| 3 | + <navigation-bar :title="nbTitle" :front-color="nbFrontColor" :background-color="nbBackgroundColor" /> | ||
| 4 | + </page-meta> | ||
| 5 | + <view> | ||
| 6 | + <web-view :webview-styles="webviewStyles" :src="url"></web-view> | ||
| 7 | + </view> | ||
| 8 | +</template> | ||
| 9 | + | ||
| 10 | +<script> | ||
| 11 | + export default { | ||
| 12 | + data() { | ||
| 13 | + return { | ||
| 14 | + nbTitle: '', | ||
| 15 | + nbFrontColor: '#000000', | ||
| 16 | + nbBackgroundColor: '#ffffff', | ||
| 17 | + url: "", | ||
| 18 | + webviewStyles: { | ||
| 19 | + progress: { | ||
| 20 | + color: '#FF3333' | ||
| 21 | + } | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + }, | ||
| 25 | + | ||
| 26 | + onLoad(option) { | ||
| 27 | + console.log(option); | ||
| 28 | + this.url = option.url; | ||
| 29 | + this.nbTitle = option.navtitle; | ||
| 30 | + }, | ||
| 31 | + | ||
| 32 | + methods: { | ||
| 33 | + | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | +</script> | ||
| 37 | + | ||
| 38 | +<style lang="scss" scoped> | ||
| 39 | + | ||
| 40 | +</style> |
pages/main/my/login/login.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <view class="login"> | ||
| 3 | + <u-image width="100%" height="100%" :src="vuex_baseImgUrl+'/logo_bg.png'" /> | ||
| 4 | + | ||
| 5 | + <view class="box"> | ||
| 6 | + | ||
| 7 | + <view class="logo"> | ||
| 8 | + <u-image width="260rpx" height="140rpx" :src="vuex_baseImgUrl+'/logo.png'" /> | ||
| 9 | + </view> | ||
| 10 | + | ||
| 11 | + <view class="btn button_warp"> | ||
| 12 | + <c-button type="confirm" shape="circle" | ||
| 13 | + :customStyle="{borderRadius:'48rpx',fontSize:'34rpx',color:'#fff',fontWeight:'400'}" text="微信一键登录" | ||
| 14 | + :disabled="isDisable" openType="getPhoneNumber" @getPhoneNumber="getPhoneNumber" | ||
| 15 | + @click="getUserProfile"></c-button> | ||
| 16 | + </view> | ||
| 17 | + | ||
| 18 | + <view class="changeLogin" @click="handelMobileLogin"> | ||
| 19 | + 手机号码登录/注册 | ||
| 20 | + </view> | ||
| 21 | + | ||
| 22 | + <view class="agreement"> | ||
| 23 | + <view class="check"> | ||
| 24 | + <u-checkbox-group @change="checkboxChange" v-model="checked"> | ||
| 25 | + <u-checkbox size="30" activeColor="#0CB17A" shape="circle"> | ||
| 26 | + </u-checkbox> | ||
| 27 | + </u-checkbox-group> | ||
| 28 | + </view> | ||
| 29 | + <view class="text"> | ||
| 30 | + <text>您已阅读理解并同意</text> | ||
| 31 | + <text class="span" @click="linkService">《优学乐业服务协议》、</text> | ||
| 32 | + <text class="span" @click="linkPolicy">《优学乐业隐私政策》</text> | ||
| 33 | + </view> | ||
| 34 | + </view> | ||
| 35 | + | ||
| 36 | + </view> | ||
| 37 | + </view> | ||
| 38 | +</template> | ||
| 39 | + | ||
| 40 | +<script> | ||
| 41 | + import { | ||
| 42 | + mapState, | ||
| 43 | + mapActions | ||
| 44 | + } from 'vuex' | ||
| 45 | + | ||
| 46 | + export default { | ||
| 47 | + data() { | ||
| 48 | + return { | ||
| 49 | + isDisable: true, | ||
| 50 | + checked: [], | ||
| 51 | + 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", | ||
| 52 | + 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", | ||
| 53 | + form: { | ||
| 54 | + mobile: '', | ||
| 55 | + password: '', | ||
| 56 | + }, | ||
| 57 | + } | ||
| 58 | + }, | ||
| 59 | + | ||
| 60 | + onLoad() { | ||
| 61 | + const { | ||
| 62 | + dispatch | ||
| 63 | + } = this.$store; | ||
| 64 | + | ||
| 65 | + }, | ||
| 66 | + | ||
| 67 | + onShow() { | ||
| 68 | + | ||
| 69 | + }, | ||
| 70 | + | ||
| 71 | + watch: { | ||
| 72 | + checked: function(newVal, oldVal) { | ||
| 73 | + this.isDisable = newVal.length != 0 ? false : true; | ||
| 74 | + | ||
| 75 | + } | ||
| 76 | + }, | ||
| 77 | + | ||
| 78 | + computed: { | ||
| 79 | + ...mapState('user', { | ||
| 80 | + // 箭头函数可使代码更简练 | ||
| 81 | + isReg: 'isReg', | ||
| 82 | + | ||
| 83 | + }), | ||
| 84 | + }, | ||
| 85 | + | ||
| 86 | + methods: { | ||
| 87 | + | ||
| 88 | + linkService() { | ||
| 89 | + console.log(this) | ||
| 90 | + this.$u.route({ | ||
| 91 | + url: `/pages/common/webview/webview?navtitle=服务协议&url=${this.service}`, | ||
| 92 | + }) | ||
| 93 | + }, | ||
| 94 | + | ||
| 95 | + linkPolicy() { | ||
| 96 | + this.$u.route({ | ||
| 97 | + url: `/pages/common/webview/webview?navtitle=隐私政策&url=${this.policy}`, | ||
| 98 | + }) | ||
| 99 | + }, | ||
| 100 | + | ||
| 101 | + checkboxChange(n) { | ||
| 102 | + console.log(n) | ||
| 103 | + | ||
| 104 | + }, | ||
| 105 | + | ||
| 106 | + getUserProfile() { | ||
| 107 | + // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 | ||
| 108 | + // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 | ||
| 109 | + wx.getUserProfile({ | ||
| 110 | + desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 | ||
| 111 | + success: (res) => { | ||
| 112 | + console.log('getUserProfile...', res) | ||
| 113 | + // this.$store.commit('setWenxinUserInfo', res); | ||
| 114 | + this.$u.vuex('vuex_weixinUserInfo', res.userInfo); | ||
| 115 | + } | ||
| 116 | + }) | ||
| 117 | + }, | ||
| 118 | + | ||
| 119 | + getPhoneNumber(e) { | ||
| 120 | + console.log(e) | ||
| 121 | + | ||
| 122 | + wx.login({ | ||
| 123 | + success: (res) => { | ||
| 124 | + console.log(res); | ||
| 125 | + | ||
| 126 | + // this.getUserProfile(); | ||
| 127 | + | ||
| 128 | + this.$store.dispatch(`user/login`, { | ||
| 129 | + way: 'wechat_code', | ||
| 130 | + type: 'student', | ||
| 131 | + jsCode: res.code, | ||
| 132 | + code: e.detail.code, | ||
| 133 | + }) | ||
| 134 | + } | ||
| 135 | + }) | ||
| 136 | + }, | ||
| 137 | + | ||
| 138 | + phoneLogin() { | ||
| 139 | + this.$store.dispatch(`user/login`, { | ||
| 140 | + way: 'name', | ||
| 141 | + type: 'student', | ||
| 142 | + username: this.form.mobile, | ||
| 143 | + password: this.form.password, | ||
| 144 | + }) | ||
| 145 | + }, | ||
| 146 | + | ||
| 147 | + handelMobileLogin() { | ||
| 148 | + this.$u.route({ | ||
| 149 | + url: "/pages/main/my/mobileLogin/mobileLogin", | ||
| 150 | + params: {} | ||
| 151 | + }); | ||
| 152 | + } | ||
| 153 | + } | ||
| 154 | + | ||
| 155 | + } | ||
| 156 | +</script> | ||
| 157 | + | ||
| 158 | +<style lang="scss" scoped> | ||
| 159 | + .login { | ||
| 160 | + width: 100%; | ||
| 161 | + height: 100%; | ||
| 162 | + position: relative; | ||
| 163 | + | ||
| 164 | + .box { | ||
| 165 | + width: 100%; | ||
| 166 | + height: 100%; | ||
| 167 | + position: absolute; | ||
| 168 | + top: 0; | ||
| 169 | + left: 0; | ||
| 170 | + | ||
| 171 | + .logo { | ||
| 172 | + padding: 156rpx 0 0 0; | ||
| 173 | + width: 260rpx; | ||
| 174 | + margin: 0 auto; | ||
| 175 | + } | ||
| 176 | + | ||
| 177 | + .changeLogin { | ||
| 178 | + width: 100%; | ||
| 179 | + text-align: center; | ||
| 180 | + margin: 48rpx 0 0 0; | ||
| 181 | + font-size: 15px; | ||
| 182 | + font-weight: 400; | ||
| 183 | + color: rgba(0, 0, 0, 0.65); | ||
| 184 | + } | ||
| 185 | + | ||
| 186 | + .agreement { | ||
| 187 | + position: fixed; | ||
| 188 | + left: 0; | ||
| 189 | + bottom: 34rpx; | ||
| 190 | + display: flex; | ||
| 191 | + flex-direction: row; | ||
| 192 | + justify-content: flex-start; | ||
| 193 | + font-size: 24rpx; | ||
| 194 | + margin: 30rpx 0 32rpx 0; | ||
| 195 | + padding: 0 50rpx; | ||
| 196 | + | ||
| 197 | + .check { | ||
| 198 | + width: 40rpx; | ||
| 199 | + padding: 3rpx 0 0 0; | ||
| 200 | + // display: inline-block; | ||
| 201 | + } | ||
| 202 | + | ||
| 203 | + .text { | ||
| 204 | + // display: inline-block; | ||
| 205 | + color: rgba(0, 0, 0, 0.45); | ||
| 206 | + | ||
| 207 | + .span { | ||
| 208 | + color: #0CB17A; | ||
| 209 | + } | ||
| 210 | + } | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + .form { | ||
| 214 | + margin: 30rpx 60rpx 0px; | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + .btn { | ||
| 218 | + margin-top: 200rpx; | ||
| 219 | + padding: 0 48rpx; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + .wxLogin { | ||
| 223 | + display: flex; | ||
| 224 | + align-items: center; | ||
| 225 | + flex-direction: column; | ||
| 226 | + margin-top: 180rpx; | ||
| 227 | + | ||
| 228 | + button { | ||
| 229 | + background-color: transparent; | ||
| 230 | + } | ||
| 231 | + | ||
| 232 | + button::after { | ||
| 233 | + border: initial | ||
| 234 | + } | ||
| 235 | + | ||
| 236 | + image { | ||
| 237 | + width: 96rpx; | ||
| 238 | + height: 96rpx; | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + text { | ||
| 242 | + margin-top: 0rpx; | ||
| 243 | + } | ||
| 244 | + } | ||
| 245 | + } | ||
| 246 | + } | ||
| 247 | +</style> |
pages/main/my/mobileLogin/mobileLogin.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <view class="login"> | ||
| 3 | + <view class="box"> | ||
| 4 | + <view v-if="changeLogin == '账号密码登录'" class="form"> | ||
| 5 | + <u-form :model="form" ref="uForm"> | ||
| 6 | + <u-form-item prop="mobile" | ||
| 7 | + :leftIconStyle="{width:'40rpx',height:'40rpx', position:'relative', right:'8rpx'}" | ||
| 8 | + left-icon="/static/img/my/login_mobile.png" borderBottom> | ||
| 9 | + <u-input v-model="form.mobile" border="none" maxlength='11' placeholder="请输入手机号" | ||
| 10 | + :customStyle="{fontSize:'17px'}" /> | ||
| 11 | + </u-form-item> | ||
| 12 | + <u-form-item prop="verifyCode" | ||
| 13 | + :leftIconStyle="{width:'40rpx',height:'40rpx', position:'relative', right:'8rpx'}" | ||
| 14 | + left-icon="/static/img/my/login_code1.png" borderBottom> | ||
| 15 | + <u-input v-model="form.password" border="none" placeholder="请输入验证码" | ||
| 16 | + :customStyle="{fontSize:'17px'}" /> | ||
| 17 | + <u-button type="default" size="mini" slot="right" :hair-line="false" | ||
| 18 | + :custom-style="{color:'#0CB17A', border:'none',fontSize:'30rpx'}" @click="getCode"> | ||
| 19 | + {{codeText}} | ||
| 20 | + </u-button> | ||
| 21 | + <u-code ref="uCode" @change="codeChange"></u-code> | ||
| 22 | + </u-form-item> | ||
| 23 | + </u-form> | ||
| 24 | + </view> | ||
| 25 | + <view v-else class="form"> | ||
| 26 | + <u-form :model="form" ref="uForm"> | ||
| 27 | + <u-form-item prop="mobile" | ||
| 28 | + :left-icon-style="{width:'40rpx',height:'40rpx', position:'relative', right:'8rpx'}" | ||
| 29 | + left-icon="/static/img/my/login_mobile.png" borderBottom> | ||
| 30 | + <u-input v-model="form.mobile" border="none" placeholder="请输入账号" | ||
| 31 | + :customStyle="{fontSize:'17px'}" /> | ||
| 32 | + </u-form-item> | ||
| 33 | + <u-form-item prop="verifyCode" | ||
| 34 | + :left-icon-style="{width:'40rpx',height:'40rpx', position:'relative', right:'8rpx'}" | ||
| 35 | + left-icon="/static/img/my/login_code2.png" borderBottom> | ||
| 36 | + <u-input v-model="form.password" border="none" type='password' placeholder="请输入密码" | ||
| 37 | + :customStyle="{fontSize:'17px'}" /> | ||
| 38 | + </u-form-item> | ||
| 39 | + </u-form> | ||
| 40 | + </view> | ||
| 41 | + | ||
| 42 | + <view class="btn button_warp"> | ||
| 43 | + <c-button type="confirm" shape="circle" | ||
| 44 | + :customStyle="{borderRadius:'48rpx',fontSize:'34rpx',color:'#fff',fontWeight:'400'}" text="登录" | ||
| 45 | + :disabled="isDisable" @click="phoneLogin"></c-button> | ||
| 46 | + </view> | ||
| 47 | + | ||
| 48 | + <view class="changeLogin" @click="onchangeLogin"> | ||
| 49 | + {{changeLogin}} | ||
| 50 | + </view> | ||
| 51 | + | ||
| 52 | + <view class="agreement"> | ||
| 53 | + <view class="check"> | ||
| 54 | + <u-checkbox-group @change="checkboxChange" v-model="checked"> | ||
| 55 | + <u-checkbox size="28" activeColor="#0CB17A" shape="circle"> | ||
| 56 | + </u-checkbox> | ||
| 57 | + </u-checkbox-group> | ||
| 58 | + </view> | ||
| 59 | + <view class="text"> | ||
| 60 | + <text>您已阅读理解并同意</text> | ||
| 61 | + <text class="span" @click="linkService">《优学乐业服务协议》、</text> | ||
| 62 | + <text class="span" @click="linkPolicy">《优学乐业隐私政策》</text> | ||
| 63 | + </view> | ||
| 64 | + </view> | ||
| 65 | + </view> | ||
| 66 | + <view> | ||
| 67 | + <u-toast ref="uToast" /> | ||
| 68 | + </view> | ||
| 69 | + </view> | ||
| 70 | +</template> | ||
| 71 | + | ||
| 72 | +<script> | ||
| 73 | + import { | ||
| 74 | + mapState, | ||
| 75 | + mapActions | ||
| 76 | + } from 'vuex' | ||
| 77 | + import { | ||
| 78 | + getSmsCodeApi, | ||
| 79 | + } from '@/config/api.js'; | ||
| 80 | + import md5 from '@/common/md5'; | ||
| 81 | + | ||
| 82 | + export default { | ||
| 83 | + data() { | ||
| 84 | + return { | ||
| 85 | + errorType: ['toast'], | ||
| 86 | + isDisable: true, | ||
| 87 | + checked: [], | ||
| 88 | + 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", | ||
| 89 | + 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", | ||
| 90 | + form: { | ||
| 91 | + mobile: '', | ||
| 92 | + password: '', | ||
| 93 | + }, | ||
| 94 | + changeLogin: '账号密码登录', | ||
| 95 | + codeText: '发送验证码', | ||
| 96 | + } | ||
| 97 | + }, | ||
| 98 | + | ||
| 99 | + onLoad() { | ||
| 100 | + const { | ||
| 101 | + dispatch | ||
| 102 | + } = this.$store; | ||
| 103 | + | ||
| 104 | + }, | ||
| 105 | + | ||
| 106 | + onShow() { | ||
| 107 | + | ||
| 108 | + }, | ||
| 109 | + | ||
| 110 | + watch: { | ||
| 111 | + checked: function(newVal, oldVal) { | ||
| 112 | + this.isDisable = newVal.length != 0 ? false : true; | ||
| 113 | + | ||
| 114 | + } | ||
| 115 | + }, | ||
| 116 | + | ||
| 117 | + | ||
| 118 | + computed: { | ||
| 119 | + ...mapState('user', { | ||
| 120 | + // 箭头函数可使代码更简练 | ||
| 121 | + isReg: 'isReg', | ||
| 122 | + | ||
| 123 | + }), | ||
| 124 | + }, | ||
| 125 | + | ||
| 126 | + methods: { | ||
| 127 | + | ||
| 128 | + onchangeLogin() { | ||
| 129 | + if (this.changeLogin == '验证码登录') { | ||
| 130 | + this.changeLogin = '账号密码登录'; | ||
| 131 | + } else { | ||
| 132 | + this.changeLogin = '验证码登录'; | ||
| 133 | + } | ||
| 134 | + }, | ||
| 135 | + | ||
| 136 | + linkService() { | ||
| 137 | + console.log(this) | ||
| 138 | + this.$u.route({ | ||
| 139 | + url: `/pages/common/webview/webview?navtitle=服务协议&url=${this.service}`, | ||
| 140 | + }) | ||
| 141 | + }, | ||
| 142 | + | ||
| 143 | + linkPolicy() { | ||
| 144 | + this.$u.route({ | ||
| 145 | + url: `/pages/common/webview/webview?navtitle=隐私政策&url=${this.policy}`, | ||
| 146 | + }) | ||
| 147 | + }, | ||
| 148 | + | ||
| 149 | + checkboxChange(n) { | ||
| 150 | + // console.log(n) | ||
| 151 | + }, | ||
| 152 | + | ||
| 153 | + getUserProfile() { | ||
| 154 | + // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 | ||
| 155 | + // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 | ||
| 156 | + wx.getUserProfile({ | ||
| 157 | + desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 | ||
| 158 | + success: (res) => { | ||
| 159 | + console.log('getUserProfile...', res) | ||
| 160 | + // this.$store.commit('setWenxinUserInfo', res); | ||
| 161 | + this.$u.vuex('vuex_weixinUserInfo', res.userInfo); | ||
| 162 | + } | ||
| 163 | + }) | ||
| 164 | + }, | ||
| 165 | + | ||
| 166 | + codeChange(text) { | ||
| 167 | + this.codeText = text; | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + getCode() { | ||
| 171 | + const { | ||
| 172 | + mobile = '' | ||
| 173 | + } = this.form; | ||
| 174 | + | ||
| 175 | + if (!(mobile && /^1[0-9]{10}$/.test(mobile))) { | ||
| 176 | + this.$refs.uToast.show({ | ||
| 177 | + message: '请填写正确手机号', | ||
| 178 | + type: 'error', | ||
| 179 | + duration: 1500, | ||
| 180 | + }) | ||
| 181 | + | ||
| 182 | + } else { | ||
| 183 | + if (this.$refs.uCode.canGetCode) { | ||
| 184 | + // 模拟向后端请求验证码 | ||
| 185 | + uni.showLoading({ | ||
| 186 | + title: '正在获取验证码' | ||
| 187 | + }) | ||
| 188 | + setTimeout(() => { | ||
| 189 | + uni.hideLoading(); | ||
| 190 | + // 通知验证码组件内部开始倒计时 | ||
| 191 | + this.$refs.uCode.start(); | ||
| 192 | + | ||
| 193 | + console.log(mobile) | ||
| 194 | + | ||
| 195 | + getSmsCodeApi({ | ||
| 196 | + phone: mobile | ||
| 197 | + }) | ||
| 198 | + | ||
| 199 | + }, 1000); | ||
| 200 | + } else { | ||
| 201 | + this.$u.toast('倒计时结束后再发送'); | ||
| 202 | + } | ||
| 203 | + } | ||
| 204 | + }, | ||
| 205 | + | ||
| 206 | + phoneLogin() { | ||
| 207 | + // this.getUserProfile(); | ||
| 208 | + if (this.changeLogin == '账号密码登录') { | ||
| 209 | + this.$store.dispatch(`user/login`, { | ||
| 210 | + way: 'code', | ||
| 211 | + type: 'student', | ||
| 212 | + phone: this.form.mobile, | ||
| 213 | + code: this.form.password, | ||
| 214 | + }) | ||
| 215 | + } else { | ||
| 216 | + console.log(md5.hex_md5(this.form.password)); | ||
| 217 | + this.$store.dispatch(`user/login`, { | ||
| 218 | + way: 'name', | ||
| 219 | + type: 'student', | ||
| 220 | + username: this.form.mobile, | ||
| 221 | + password: md5.hex_md5(this.form.password), | ||
| 222 | + }) | ||
| 223 | + } | ||
| 224 | + }, | ||
| 225 | + } | ||
| 226 | + | ||
| 227 | + } | ||
| 228 | +</script> | ||
| 229 | + | ||
| 230 | +<style lang="scss" scoped> | ||
| 231 | + .login { | ||
| 232 | + width: 100%; | ||
| 233 | + height: 100%; | ||
| 234 | + position: relative; | ||
| 235 | + | ||
| 236 | + .box { | ||
| 237 | + width: 100%; | ||
| 238 | + height: 100%; | ||
| 239 | + position: absolute; | ||
| 240 | + top: 0; | ||
| 241 | + left: 0; | ||
| 242 | + | ||
| 243 | + .logo { | ||
| 244 | + padding: 156rpx 0 0 0; | ||
| 245 | + width: 120rpx; | ||
| 246 | + margin: 0 auto; | ||
| 247 | + } | ||
| 248 | + | ||
| 249 | + .name { | ||
| 250 | + margin: 32rpx 0 0 0; | ||
| 251 | + text-align: center; | ||
| 252 | + font-size: 48rpx; | ||
| 253 | + line-height: 66rpx; | ||
| 254 | + color: #000000; | ||
| 255 | + font-weight: 600; | ||
| 256 | + } | ||
| 257 | + | ||
| 258 | + .changeLogin { | ||
| 259 | + width: 100%; | ||
| 260 | + text-align: center; | ||
| 261 | + margin: 48rpx 0 0 0; | ||
| 262 | + font-size: 15px; | ||
| 263 | + font-weight: 400; | ||
| 264 | + color: #0CB17A; | ||
| 265 | + } | ||
| 266 | + | ||
| 267 | + .agreement { | ||
| 268 | + position: fixed; | ||
| 269 | + left: 0; | ||
| 270 | + bottom: 34rpx; | ||
| 271 | + display: flex; | ||
| 272 | + flex-direction: row; | ||
| 273 | + justify-content: flex-start; | ||
| 274 | + font-size: 24rpx; | ||
| 275 | + margin: 30rpx 0 32rpx 0; | ||
| 276 | + padding: 0 50rpx; | ||
| 277 | + | ||
| 278 | + .check { | ||
| 279 | + width: 40rpx; | ||
| 280 | + padding: 5rpx 0 0 0; | ||
| 281 | + // display: inline-block; | ||
| 282 | + } | ||
| 283 | + | ||
| 284 | + .text { | ||
| 285 | + // display: inline-block; | ||
| 286 | + color: rgba(0, 0, 0, 0.45); | ||
| 287 | + | ||
| 288 | + .span { | ||
| 289 | + color: #0CB17A; | ||
| 290 | + } | ||
| 291 | + } | ||
| 292 | + } | ||
| 293 | + | ||
| 294 | + .form { | ||
| 295 | + margin: 128rpx 60rpx 0px; | ||
| 296 | + } | ||
| 297 | + | ||
| 298 | + .btn { | ||
| 299 | + margin-top: 128rpx; | ||
| 300 | + padding: 0 48rpx; | ||
| 301 | + } | ||
| 302 | + | ||
| 303 | + .wxLogin { | ||
| 304 | + display: flex; | ||
| 305 | + align-items: center; | ||
| 306 | + flex-direction: column; | ||
| 307 | + margin-top: 180rpx; | ||
| 308 | + | ||
| 309 | + button { | ||
| 310 | + background-color: transparent; | ||
| 311 | + } | ||
| 312 | + | ||
| 313 | + button::after { | ||
| 314 | + border: initial | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + image { | ||
| 318 | + width: 96rpx; | ||
| 319 | + height: 96rpx; | ||
| 320 | + } | ||
| 321 | + | ||
| 322 | + text { | ||
| 323 | + margin-top: 0rpx; | ||
| 324 | + } | ||
| 325 | + } | ||
| 326 | + } | ||
| 327 | + } | ||
| 328 | +</style> |
| @@ -5,10 +5,6 @@ | @@ -5,10 +5,6 @@ | ||
| 5 | </template> | 5 | </template> |
| 6 | 6 | ||
| 7 | <script> | 7 | <script> |
| 8 | - import { | ||
| 9 | - postMenu, | ||
| 10 | - getMenu | ||
| 11 | - } from '@/config/api.js'; | ||
| 12 | 8 | ||
| 13 | export default { | 9 | export default { |
| 14 | data() { | 10 | data() { |
| @@ -18,16 +14,7 @@ | @@ -18,16 +14,7 @@ | ||
| 18 | }, | 14 | }, |
| 19 | 15 | ||
| 20 | onLoad() { | 16 | onLoad() { |
| 21 | - // 发出post,假设需要带上token | ||
| 22 | - postMenu({ | ||
| 23 | - custom: { | ||
| 24 | - auth: true | ||
| 25 | - } | ||
| 26 | - }).then(() => { | ||
| 27 | - | ||
| 28 | - }).catch(() => { | ||
| 29 | - | ||
| 30 | - }) | 17 | + |
| 31 | }, | 18 | }, |
| 32 | 19 | ||
| 33 | onShow() { | 20 | onShow() { |
pages/tabBar/internship/internship.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <view class="internship"> | ||
| 3 | + | ||
| 4 | + </view> | ||
| 5 | +</template> | ||
| 6 | + | ||
| 7 | +<script> | ||
| 8 | + | ||
| 9 | + export default { | ||
| 10 | + data() { | ||
| 11 | + return { | ||
| 12 | + | ||
| 13 | + }; | ||
| 14 | + }, | ||
| 15 | + | ||
| 16 | + onLoad() {}, | ||
| 17 | + | ||
| 18 | + async onShow() { | ||
| 19 | + | ||
| 20 | + }, | ||
| 21 | + | ||
| 22 | + methods: { | ||
| 23 | + | ||
| 24 | + }, | ||
| 25 | + }; | ||
| 26 | +</script> | ||
| 27 | + | ||
| 28 | +<style lang="scss" scoped> | ||
| 29 | + | ||
| 30 | + | ||
| 31 | +</style> |
static/img/common/arrow-down.png
已删除
100644 → 0
254 Bytes
static/img/common/arrow_left.png
已删除
100644 → 0
431 Bytes
static/img/common/arrow_right.png
已删除
100644 → 0
425 Bytes
static/img/common/call-phone.png
已删除
100644 → 0
1.3 KB
static/img/common/chat-white.png
已删除
100644 → 0
1.1 KB
static/img/common/chat.png
已删除
100644 → 0
820 Bytes
static/img/common/delete.png
已删除
100644 → 0
770 Bytes
static/img/common/link.png
已删除
100644 → 0
754 Bytes
static/img/common/location.png
已删除
100644 → 0
1.1 KB
static/img/common/logo.png
已删除
100644 → 0
15.7 KB
static/img/my/login_code1.png
0 → 100644
1.3 KB
static/img/my/login_code2.png
0 → 100644
931 Bytes
static/img/my/login_mobile.png
0 → 100644
1.4 KB
static/img/page/allsel.png
已删除
100644 → 0
838 Bytes
static/img/page/arrow.png
已删除
100644 → 0
271 Bytes
static/img/page/avator.png
已删除
100644 → 0
2.8 KB
static/img/page/delete.png
已删除
100644 → 0
479 Bytes
static/img/page/fbgw.png
已删除
100644 → 0
1.3 KB
static/img/page/fbzyBg.png
已删除
100644 → 0
28.3 KB
static/img/page/fbzyBg1.png
已删除
100644 → 0
2.5 KB
static/img/page/finish.png
已删除
100644 → 0
6.6 KB
static/img/page/focus.png
已删除
100644 → 0
497 Bytes
static/img/page/hbbg.png
已删除
100644 → 0
21.2 KB
static/img/page/hbshare.png
已删除
100644 → 0
1.2 KB
static/img/page/header-bg.png
已删除
100644 → 0
16.1 KB
static/img/page/home-bg.png
已删除
100644 → 0
12.1 KB
static/img/page/home-bg1.png
已删除
100644 → 0
11.5 KB
static/img/page/home-bg2.png
已删除
100644 → 0
3.0 KB
static/img/page/home-chat.png
已删除
100644 → 0
1.7 KB
static/img/page/home-img.png
已删除
100644 → 0
24.0 KB
static/img/page/home-recommend.png
已删除
100644 → 0
1.6 KB
static/img/page/icon-company.png
已删除
100644 → 0
535 Bytes
static/img/page/icon-focus.png
已删除
100644 → 0
328 Bytes
static/img/page/mcardB.png
已删除
100644 → 0
3.4 KB
static/img/page/mycard.png
已删除
100644 → 0
2.8 KB
static/img/page/nosel.png
已删除
100644 → 0
799 Bytes
static/img/page/playbillBg.png
已删除
100644 → 0
1.8 KB
static/img/page/qiye.png
已删除
100644 → 0
673 Bytes
static/img/page/resource-bg.png
已删除
100644 → 0
2.3 KB
static/img/page/setting.png
已删除
100644 → 0
342 Bytes
static/img/page/share.png
已删除
100644 → 0
2.2 KB
static/img/page/share_dowload.png
已删除
100644 → 0
1.7 KB
static/img/page/share_moments.png
已删除
100644 → 0
2.3 KB
static/img/page/share_weixin.png
已删除
100644 → 0
1.8 KB
static/img/page/sharemini.png
已删除
100644 → 0
1.0 KB
static/img/page/studenticon1.png
已删除
100644 → 0
680 Bytes
static/img/page/studenticon2.png
已删除
100644 → 0
890 Bytes
static/img/page/studenticon3.png
已删除
100644 → 0
792 Bytes
static/img/page/tjbg.png
已删除
100644 → 0
19.9 KB
static/img/page/tjbg1.png
已删除
100644 → 0
36.5 KB
static/img/page/tjbgicon.png
已删除
100644 → 0
1.2 KB
static/img/page/tjly_img.png
已删除
100644 → 0
2.5 KB
static/img/page/tjrz.png
已删除
100644 → 0
1.3 KB
static/img/page/tjschool.png
已删除
100644 → 0
15.6 KB
static/img/page/tjsxs.png
已删除
100644 → 0
1.4 KB
static/img/page/tx.png
已删除
100644 → 0
1.1 KB
static/img/page/wallet.png
已删除
100644 → 0
1.3 KB
static/img/page/wdmp.png
已删除
100644 → 0
5.4 KB
static/img/page/weixin.png
已删除
100644 → 0
1.3 KB
static/img/page/wxshare.png
已删除
100644 → 0
1.6 KB
static/img/page/ydy.png
已删除
100644 → 0
649 Bytes
static/img/page/zhgl.png
已删除
100644 → 0
724 Bytes
static/img/tabbar/float-chat.png
已删除
100644 → 0
3.9 KB
static/img/tabbar/float-phone.png
已删除
100644 → 0
4.2 KB
static/img/tabbar/resource.png
已删除
100644 → 0
408 Bytes
static/img/tabbar/resourceHL.png
已删除
100644 → 0
1.4 KB
| @@ -35,7 +35,7 @@ const store = new Vuex.Store({ | @@ -35,7 +35,7 @@ const store = new Vuex.Store({ | ||
| 35 | position, | 35 | position, |
| 36 | }, | 36 | }, |
| 37 | state: { | 37 | state: { |
| 38 | - vuex_appId: 'wx5177bff86a427016', | 38 | + vuex_appId: 'wx84b71301436652ce', |
| 39 | vuex_corpId: 'ww4300c59cb9537f9e',//企业ID | 39 | vuex_corpId: 'ww4300c59cb9537f9e',//企业ID |
| 40 | // 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量 | 40 | // 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量 |
| 41 | // 加上vuex_前缀,是防止变量名冲突,也让人一目了然 | 41 | // 加上vuex_前缀,是防止变量名冲突,也让人一目了然 |
| @@ -46,7 +46,7 @@ const store = new Vuex.Store({ | @@ -46,7 +46,7 @@ const store = new Vuex.Store({ | ||
| 46 | // 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式 | 46 | // 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式 |
| 47 | vuex_version: '1.0.1', | 47 | vuex_version: '1.0.1', |
| 48 | vuex_demo: '绛紫', | 48 | vuex_demo: '绛紫', |
| 49 | - vuex_baseImgUrl: "https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/job-sharing", | 49 | + vuex_baseImgUrl: "https://yxlypublic.oss-cn-beijing.aliyuncs.com/WeChat/yxly-teacher", |
| 50 | vuex_ossUrl: "https://yxly.oss-cn-beijing.aliyuncs.com", | 50 | vuex_ossUrl: "https://yxly.oss-cn-beijing.aliyuncs.com", |
| 51 | vuex_ossUrlPubilc: "https://yxlypublic.oss-cn-beijing.aliyuncs.com", | 51 | vuex_ossUrlPubilc: "https://yxlypublic.oss-cn-beijing.aliyuncs.com", |
| 52 | vuex_customer_chatUrl:"https://work.weixin.qq.com/kfid/kfc04063cd2d1081221",//企业微信客服 | 52 | vuex_customer_chatUrl:"https://work.weixin.qq.com/kfid/kfc04063cd2d1081221",//企业微信客服 |
| 1 | -const state = () => ({ | ||
| 2 | - openid: '', | ||
| 3 | - isReg: '', | ||
| 4 | - id: '', | ||
| 5 | - name: '', | ||
| 6 | - number: '', | ||
| 7 | - password: '', | ||
| 8 | - phone: '', | ||
| 9 | - status: '', | ||
| 10 | - type: '', | ||
| 11 | - username: '', | ||
| 12 | - userBasicInfo: {}, | ||
| 13 | - | ||
| 14 | -}) | ||
| 15 | - | ||
| 16 | -// getters | ||
| 17 | -const getters = { | ||
| 18 | - // doneOpenid: (state, getters, rootState) => { | ||
| 19 | - // return state.openid | ||
| 20 | - // }, | ||
| 21 | -} | ||
| 22 | - | ||
| 23 | -// actions | ||
| 24 | -const actions = { | ||
| 25 | - | ||
| 26 | - async login({ | ||
| 27 | - commit, | ||
| 28 | - dispatch, | ||
| 29 | - state | ||
| 30 | - }, params) { | ||
| 31 | - const login_result = await uni.$u.api.getLoginApi({ | ||
| 32 | - ...params | ||
| 33 | - }); | ||
| 34 | - | ||
| 35 | - if (login_result) { | 1 | +import { |
| 2 | + postTokenApi, | ||
| 3 | + getUserInfoApi, | ||
| 4 | + } from '@/config/api.js'; | ||
| 5 | + | ||
| 6 | + const state = () => ({ | ||
| 7 | + openid: '', | ||
| 8 | + isReg: '', | ||
| 9 | + id: '', | ||
| 10 | + name: '', | ||
| 11 | + number: '', | ||
| 12 | + password: '', | ||
| 13 | + phone: '', | ||
| 14 | + status: '', | ||
| 15 | + type: '', | ||
| 16 | + username: '', | ||
| 17 | + userBasicInfo: {}, | ||
| 18 | + | ||
| 19 | + }) | ||
| 20 | + | ||
| 21 | + const getters = { | ||
| 22 | + // doneOpenid: (state, getters, rootState) => { | ||
| 23 | + // return state.openid | ||
| 24 | + // }, | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + // actions | ||
| 28 | + const actions = { | ||
| 29 | + | ||
| 30 | + async login({ | ||
| 31 | + commit, | ||
| 32 | + dispatch, | ||
| 33 | + state | ||
| 34 | + }, params) { | ||
| 35 | + const login_result = await postTokenApi({ | ||
| 36 | + ...params | ||
| 37 | + }, { | ||
| 38 | + custom: { | ||
| 39 | + auth: false | ||
| 40 | + } | ||
| 41 | + }); | ||
| 36 | 42 | ||
| 37 | - let vuex_token = `Bearer ${login_result.access_token}` | ||
| 38 | - await uni.$u.vuex('vuex_token', vuex_token); | ||
| 39 | - await uni.$u.vuex('vuex_phone', login_result.phone); | ||
| 40 | - | ||
| 41 | - switch (login_result.status) { | ||
| 42 | - | ||
| 43 | - case 'not_reg': //未注册 | ||
| 44 | - // uni.$u.route({ | ||
| 45 | - // url: '/pages/student/my/login/login', | ||
| 46 | - // type: 'reLaunch', | ||
| 47 | - // }); | ||
| 48 | - break; | ||
| 49 | - | ||
| 50 | - case 'annulled': //已注销 | ||
| 51 | - // uni.$u.route({ | ||
| 52 | - // url: '/pages/student/my/written-off/written-off', | ||
| 53 | - // type: 'navigateTo', | ||
| 54 | - // }); | ||
| 55 | - break; | ||
| 56 | - | ||
| 57 | - case 'annulling': //注销中 | ||
| 58 | - uni.$u.route({ | ||
| 59 | - url: '/pages/common/login/login', | ||
| 60 | - // type: 'navigateTo', | ||
| 61 | - }); | ||
| 62 | - break; | ||
| 63 | - | ||
| 64 | - case 'active': //已注册 | ||
| 65 | - const userInfo = await dispatch(`getUserInfo`); | ||
| 66 | - | ||
| 67 | - if (userInfo) { | ||
| 68 | - uni.navigateBack({ | ||
| 69 | - delta: 1 | ||
| 70 | - }); | ||
| 71 | - } | ||
| 72 | - | ||
| 73 | - break; | ||
| 74 | - } | ||
| 75 | - | ||
| 76 | - return login_result; | ||
| 77 | - } | ||
| 78 | - | ||
| 79 | - | ||
| 80 | - }, | ||
| 81 | - | ||
| 82 | - async loginOut({ | ||
| 83 | - commit, | ||
| 84 | - dispatch, | ||
| 85 | - state | ||
| 86 | - }, params) { | ||
| 87 | - console.log('loginOut') | ||
| 88 | - await uni.$u.vuex('vuex_user', ''); | ||
| 89 | - await uni.$u.vuex('vuex_token', ''); | ||
| 90 | - await uni.setStorageSync('lifeData', {}); | ||
| 91 | - | ||
| 92 | - uni.$u.route('/pages/common/login/login'); | ||
| 93 | - }, | ||
| 94 | - | ||
| 95 | - async getUserInfo({ | ||
| 96 | - commit, | ||
| 97 | - dispatch, | ||
| 98 | - state | ||
| 99 | - }, params) { | ||
| 100 | - | ||
| 101 | - const userInfo = await uni.$u.api.getUserApi(); | ||
| 102 | - await uni.$u.vuex('vuex_user', userInfo); | ||
| 103 | - | ||
| 104 | - return userInfo; | ||
| 105 | - }, | ||
| 106 | -} | ||
| 107 | - | ||
| 108 | -// mutations | ||
| 109 | -const mutations = { | ||
| 110 | - | ||
| 111 | - setUserInfo(state, userInfo) { | ||
| 112 | - state.id = userInfo.id; | ||
| 113 | - state.name = userInfo.name; | ||
| 114 | - state.phone = userInfo.phone; | ||
| 115 | - state.username = userInfo.username; | ||
| 116 | - state.userBasicInfo = userInfo.userBasicInfo; | ||
| 117 | - }, | ||
| 118 | -} | ||
| 119 | - | ||
| 120 | -export default { | ||
| 121 | - namespaced: true, | ||
| 122 | - state, | ||
| 123 | - getters, | ||
| 124 | - actions, | ||
| 125 | - mutations | ||
| 126 | -} | 43 | + console.log(login_result) |
| 44 | + | ||
| 45 | + if (login_result) { | ||
| 46 | + | ||
| 47 | + let vuex_token = `Bearer ${login_result.access_token}` | ||
| 48 | + await uni.$u.vuex('vuex_token', vuex_token); | ||
| 49 | + await uni.$u.vuex('vuex_phone', login_result.phone); | ||
| 50 | + | ||
| 51 | + switch (login_result.status) { | ||
| 52 | + | ||
| 53 | + case 'not_reg': //未注册 | ||
| 54 | + uni.$u.route({ | ||
| 55 | + url: '/pages/student/my/login/login', | ||
| 56 | + type: 'reLaunch', | ||
| 57 | + }); | ||
| 58 | + break; | ||
| 59 | + | ||
| 60 | + case 'annulled': //已注销 | ||
| 61 | + uni.$u.route({ | ||
| 62 | + url: '/pages/student/my/written-off/written-off', | ||
| 63 | + type: 'navigateTo', | ||
| 64 | + }); | ||
| 65 | + break; | ||
| 66 | + | ||
| 67 | + case 'annulling': //注销中 | ||
| 68 | + uni.$u.route({ | ||
| 69 | + url: '/pages/student/my/freezing/freezing', | ||
| 70 | + type: 'navigateTo', | ||
| 71 | + }); | ||
| 72 | + break; | ||
| 73 | + | ||
| 74 | + case 'active': //已注册 | ||
| 75 | + const userInfo = await dispatch(`getUserInfo`); | ||
| 76 | + | ||
| 77 | + // if (userInfo) { | ||
| 78 | + // const { | ||
| 79 | + // student = {} | ||
| 80 | + // } = userInfo; | ||
| 81 | + // if (student && JSON.stringify(student) != '{}' && student.status == 'verified') { | ||
| 82 | + // uni.$u.route({ | ||
| 83 | + // url: 'pages/student/tabBar/internship/internship', | ||
| 84 | + // type: 'switchTab', | ||
| 85 | + // params: { | ||
| 86 | + | ||
| 87 | + // } | ||
| 88 | + // }) | ||
| 89 | + | ||
| 90 | + // } else { | ||
| 91 | + // uni.$u.route({ | ||
| 92 | + // url: `/pages/student/my/student-status-certification/student-status-certification`, | ||
| 93 | + // type: 'reLaunch', | ||
| 94 | + // params: { | ||
| 95 | + | ||
| 96 | + // } | ||
| 97 | + // }) | ||
| 98 | + // } | ||
| 99 | + // } | ||
| 100 | + | ||
| 101 | + break; | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + return login_result; | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + | ||
| 108 | + }, | ||
| 109 | + | ||
| 110 | + async loginOut({ | ||
| 111 | + commit, | ||
| 112 | + dispatch, | ||
| 113 | + state | ||
| 114 | + }, params) { | ||
| 115 | + | ||
| 116 | + await uni.$u.vuex('vuex_user', {}); | ||
| 117 | + await uni.$u.vuex('vuex_token', {}); | ||
| 118 | + await uni.setStorageSync('lifeData', {}); | ||
| 119 | + | ||
| 120 | + uni.$u.route('/pages/student/my/login/login'); | ||
| 121 | + }, | ||
| 122 | + | ||
| 123 | + async getUserInfo({ | ||
| 124 | + commit, | ||
| 125 | + dispatch, | ||
| 126 | + state | ||
| 127 | + }, params) { | ||
| 128 | + | ||
| 129 | + const userInfo = await getUserInfoApi(); | ||
| 130 | + | ||
| 131 | + uni.$u.vuex('vuex_user', userInfo); | ||
| 132 | + | ||
| 133 | + return userInfo; | ||
| 134 | + }, | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + // mutations | ||
| 138 | + const mutations = { | ||
| 139 | + | ||
| 140 | + setUserInfo(state, userInfo) { | ||
| 141 | + state.id = userInfo.id; | ||
| 142 | + state.name = userInfo.name; | ||
| 143 | + state.phone = userInfo.phone; | ||
| 144 | + state.username = userInfo.username; | ||
| 145 | + state.userBasicInfo = userInfo.userBasicInfo; | ||
| 146 | + }, | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + export default { | ||
| 150 | + namespaced: true, | ||
| 151 | + state, | ||
| 152 | + getters, | ||
| 153 | + actions, | ||
| 154 | + mutations | ||
| 155 | + } |
请
注册
或
登录
后发表评论