| | |
| | | # æ¥å£åç¼ _api |
| | | VUE_APP_API_PREFIX = '/doumeeplant_api' |
| | | VUE_APP_API_PREFIX = '/doumeeplant' |
| | | |
| | | # ä¸ä¸æè·¯å¾ --> é»è®¤./ï¼å¯ä»¥é¨ç½²å¨æå¡å¨ä»»æè·¯å¾ï¼ |
| | | VUE_APP_CONTEXT = './' |
| | |
| | | # VUE_APP_API = 'https://hsky.doumee.com/doumeeplant_api/' |
| | | |
| | | # æµè¯ |
| | | VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | # æ¼ç¤º |
| | | # VUE_APP_API = 'https://www.mes.red/doumeeplant/' |
| | | VUE_APP_API = 'https://www.mes.red/doumeeplant/' |
| | |
| | | if (url.indexOf('?code') === -1) { |
| | | let query = url.split('?')[1] |
| | | let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect` |
| | | // let tempUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://dmtest.ahapp.net/doumeeplant_h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect` |
| | | window.location.replace(tempUrl) |
| | | } else { |
| | | var code = url.substring(url.indexOf('?') + 6, url.indexOf('&')) |
| | | let href1 = `https://www.mes.red/h5/#/wxLogin?code=${code}` |
| | | // let href1 = `https://dmtest.ahapp.net/doumeeplant_h5/#/wxLogin?code=${code}` |
| | | window.location.replace(href1) |
| | | } |
| | | </script> |
| | |
| | | }) |
| | | } |
| | | |
| | | // 微信端ç»å½ |
| | | // 微信å°ç¨åºç»å½ |
| | | export function wxProgramLogin(params: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/system/wxProgramLogin', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | // 微信å
¬ä¼å·ç»å½ |
| | | export function wxAccountLogin(data: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/system/wxAccountLogin', |
| | |
| | | }) |
| | | } |
| | | |
| | | // 微信éåºç»å½ |
| | | export function wxLoginOut(data: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/system/wxLoginOut', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // è·åä¼ä¸id |
| | | export function getDingdingCorpId(companyId: any): Promise<any> { |
| | | return httpRequest({ |
| | |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/wxLogin.vue') |
| | | }, |
| | | { |
| | | path: '/appletLogin', |
| | | name: 'appletLogin', |
| | | meta: { |
| | | title: 'DMäºå·¥å', |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/appletLogin.vue') |
| | | } |
| | | ] |
| | | |
| | |
| | | |
| | | export default createStore({ |
| | | state: { |
| | | // 项ç®å
¥å£ç¯å¢ DD / H5 |
| | | // 项ç®å
¥å£ç¯å¢ DD / H5 / WX / XCX |
| | | env: env ? env : null, |
| | | |
| | | // æ¯å¦éè¦éé
è¹æåºé¨å®å
¨è·ç¦» |
| | |
| | | // æ·»å ååºæ¦æªå¨ |
| | | service.interceptors.response.use( |
| | | (response) => { |
| | | |
| | | if (response.config.url?.indexOf('/lingyang/login') == -1 && response.config.url?.indexOf('/edgp/loginDemo') == -1 && response.config.url?.indexOf('/lingyang/loginDemo') == -1 && response.config.url?.indexOf('/edgp/login') == -1) { |
| | | // if (response.config.url?.indexOf('/lingyang/login') == -1 && response.config.url?.indexOf('/edgp/loginDemo') == -1 && response.config.url?.indexOf('/lingyang/loginDemo') == -1 && response.config.url?.indexOf('/edgp/login') == -1) { |
| | | loading.clear(); |
| | | } |
| | | // } |
| | | if (response.data.code === 401) { // å¤çç»å½è¿æ |
| | | Toast.fail({ message: 'ç»å½è¿æï¼åå¤èªå¨éæ°ç»å½', duration: 2000, forbidClick: true }) |
| | | setTimeout(() => { |
| | |
| | | function judgmentPlatform (): boolean { |
| | | // alert(store.state.env) |
| | | // alert(store.state.env !== 'DD') |
| | | return store.state.env === 'DD' |
| | | return store.state.env === 'DD' || store.state.env === 'WX'; |
| | | // return dd.env.platform !== 'notInDingTalk'; |
| | | } |
| | | |
| | |
| | | let res = await testLogin({ // ææ¦ |
| | | username: '18656077929', |
| | | password: '123456', |
| | | companyId: '8', |
| | | companyId: '111', |
| | | uuid: '0000', |
| | | code: '0000' |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="wx"> |
| | | <img class="wx_bg" src="@/assets/background/login_bg@2x.png" alt="" /> |
| | | <div class="wx_login"> |
| | | <img class="wx_login_icon" src="@/assets/icon/logo@2x.png" alt="" /> |
| | | <span>DMäºå·¥å</span> |
| | | <div class="wx_login_list"> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_code@2x.png" alt="" /> |
| | | <input type="text" v-model="from.companyId" placeholder="ä¼ä¸ä»£ç " /> |
| | | </div> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_phone@2x.png" alt="" /> |
| | | <input type="text" maxlength="11" v-model="from.username" placeholder="ææºå·" /> |
| | | </div> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_password@2x.png" alt="" /> |
| | | <input type="password" v-model="from.password" placeholder="å¯ç " /> |
| | | </div> |
| | | </div> |
| | | <div class="wx_login_footer"> |
| | | <div class="wx_login_footer_btn" @click="login">ç«å³ç»å½</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { onMounted, reactive } from 'vue'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import { useStore } from 'vuex'; |
| | | import { wxAccountLogin, getUserInfo, wxProgramLogin } from '@/apis/index'; |
| | | import { Toast } from 'vant'; |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | const store = useStore() |
| | | |
| | | let from: any = reactive({ |
| | | openid: '', |
| | | unionid: '', |
| | | companyId: '', |
| | | username: '', |
| | | password: '' |
| | | }) |
| | | |
| | | const login = async () => { |
| | | // if (!from.openid) return Toast('openidä¸è½ä¸ºç©º') |
| | | // if (!from.unionid) return Toast('unionidä¸è½ä¸ºç©º') |
| | | if (!from.companyId) return Toast('ä¼ä¸ä»£ç ä¸è½ä¸ºç©º') |
| | | if (!from.username) return Toast('ææºå·ä¸è½ä¸ºç©º') |
| | | if (!from.password) return Toast('å¯ç ä¸è½ä¸ºç©º') |
| | | Toast.loading({ |
| | | message: 'ç»å½ä¸...', |
| | | forbidClick: true |
| | | }); |
| | | let res = await wxAccountLogin(from) |
| | | if (res.code === 200) { |
| | | let info = await getUserInfo() |
| | | if (info.code === 200) { |
| | | await store.commit('setEntrance', 'XCX') |
| | | await store.commit('setUserInfo', info.data) |
| | | await store.dispatch('getMenuList', 2) |
| | | await router.replace('/workbench') |
| | | } |
| | | } |
| | | Toast.clear(); |
| | | } |
| | | |
| | | onMounted(() => { |
| | | wxProgramLogin({ code: route.query.code }) |
| | | .then(async (res) => { |
| | | if (res.code === 200) { |
| | | // å
ç»å½ï¼ç´æ¥è·³é¦é¡µ |
| | | if (res.data.loginStatus == 0) { |
| | | let info = await getUserInfo() |
| | | if (info.code === 200) { |
| | | await store.commit('setEntrance', 'XCX') |
| | | await store.commit('setUserInfo', info.data) |
| | | await store.dispatch('getMenuList', 2) |
| | | await router.replace('/workbench') |
| | | } |
| | | } else { |
| | | from.openid = res.data.openid |
| | | from.unionid = res.data.unionid |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .wx { |
| | | width: 100vw; |
| | | height: 100vh; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background: #FFFFFF linear-gradient(180deg, rgba(66,117,252,0.2) 0%, rgba(66,117,252,0) 100%); |
| | | .wx_bg { |
| | | width: 100vw; |
| | | height: 812px; |
| | | position: fixed; |
| | | top: 0; |
| | | left: 0; |
| | | } |
| | | .wx_login { |
| | | width: 100vw; |
| | | height: auto; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | .wx_login_icon { |
| | | width: 180px; |
| | | height: 180px; |
| | | } |
| | | span { |
| | | font-size: 44px; |
| | | font-family: PingFangSC-Semibold, PingFang SC; |
| | | font-weight: 600; |
| | | color: #333333; |
| | | margin-top: 40px; |
| | | } |
| | | .wx_login_list { |
| | | width: 100vw; |
| | | padding: 0 60px; |
| | | box-sizing: border-box; |
| | | margin-top: 80px; |
| | | position: relative; |
| | | z-index: 9; |
| | | .wx_login_list_item { |
| | | width: 100%; |
| | | height: 98px; |
| | | background: #FFFFFF; |
| | | border-radius: 8px; |
| | | padding: 0 40px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 40px; |
| | | &:last-child { |
| | | margin-bottom: 0 !important; |
| | | } |
| | | img { |
| | | width: 40px; |
| | | height: 40px; |
| | | flex-shrink: 0; |
| | | margin-right: 24px; |
| | | } |
| | | input::-webkit-input-placeholder { |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #B7BBC5; |
| | | } |
| | | input { |
| | | flex: 1; |
| | | height: 100%; |
| | | padding: 0 !important; |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | border: none; |
| | | outline: none; |
| | | } |
| | | } |
| | | } |
| | | .wx_login_footer { |
| | | width: 100vw; |
| | | padding: 0 60px; |
| | | box-sizing: border-box; |
| | | margin-top: 80px; |
| | | .wx_login_footer_btn { |
| | | width: 100%; |
| | | height: 98px; |
| | | line-height: 98px; |
| | | text-align: center; |
| | | background: #4275FC; |
| | | box-shadow: 0px 12px 24px 0px rgba(66,117,252,0.2); |
| | | border-radius: 8px; |
| | | font-size: 32px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="box"> |
| | | <!-- 头é¨å¯¼èª --> |
| | | <template v-if="env == 'H5'"> |
| | | <template v-if="env == 'H5' || env == 'XCX'"> |
| | | <v-Header :pathList="pathLists"> |
| | | <template v-slot:title>{{title}}</template> |
| | | </v-Header> |
| | |
| | | <template> |
| | | <div class="index"> |
| | | <!-- 头é¨å¯¼èª --> |
| | | <template v-if="env == 'H5'"> |
| | | <template v-if="env == 'H5' || env == 'XCX'"> |
| | | <v-Header :pathList="pathLists"> |
| | | <template v-slot:title>{{ title }}</template> |
| | | </v-Header> |
| | |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">åé
æ°éï¼</div> |
| | | <div class="content_list_item_content_item_nr">{{info.createTime}}</div> |
| | | <div class="content_list_item_content_item_nr" v-if="info.umodel">{{info.distributNum}}{{info.umodel.name}}</div> |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">å®å·¥æ°éï¼</div> |
| | |
| | | </div> |
| | | <NotFound info="ææªåé
å·¥å" v-if="info.workorderList && info.workorderList.length === 0" /> |
| | | <template v-else> |
| | | <div class="details_list"> |
| | | <div class="details_list_item" v-for="(item, i) in info.workorderList" :key="i" @click="jump(item.id)"> |
| | | <!-- <div class="details_list"> |
| | | <div class="details_list_item" v-for="(item, i) in info.workorderList" :key="i" @click="jump(item)"> |
| | | <div class="details_list_item_top"> |
| | | <span>{{ item.createUserName }}</span><span>{{ item.code }}</span> |
| | | <span>{{ item.createUserName }}</span> |
| | | <span>{{ item.code }}</span> |
| | | </div> |
| | | <div class="details_list_item_center"> |
| | | <span>è¯åæ°ï¼{{ item.qualifiedNum }}</span><span>ä¸è¯æ°ï¼<span class="red">{{ item.unqualifiedNum }}</span></span> |
| | | <span>è¯åæ°ï¼{{ item.qualifiedNum }}</span> |
| | | <span>ä¸è¯æ°ï¼<span class="red">{{ item.unqualifiedNum }}</span></span> |
| | | </div> |
| | | <div class="details_list_item_bottom"> |
| | | <span>{{ item.createTime }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | </div> --> |
| | | <div class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | <div class="details_timeline_header"> |
| | | <div class="details_timeline_header_code"> |
| | | <span>å·¥åç¼å·ï¼{{item.code}}</span> |
| | |
| | | <span v-if="item.status === 3" class="purple">å·²æ£éª</span> |
| | | <span v-if="item.status === 4">å·²æ¥å·¥</span> |
| | | <span v-if="item.status === 5">å·²å
¥åº</span> |
| | | <span v-if="item.status === 6">已忶</span> --> |
| | | <span v-if="item.status === 6">已忶</span> |
| | | <!-- <span v-if="item.status === 7">已忶</span>--> |
| | | <!-- <span v-if="item.status === 8">å·²å
³é</span>--> |
| | | <!-- </div> |
| | | </div> |
| | | <div class="details_timeline_item" v-if="item.produceDate"> |
| | | <div class="activedian"></div> |
| | | <div class="dian active"></div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </template> |
| | | <!-- <div class="details_zw"></div> --> |
| | | <!-- <div class="details_btn" @click="toJump">廿¥å·¥</div> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }) |
| | | } |
| | | |
| | | const jump = (id: any) => { |
| | | router.push({ name: 'workOrderReporting', query: { id } }) |
| | | const toJump = () => { |
| | | router.push({ name: 'reportingForWork' }) |
| | | } |
| | | |
| | | const jump = (item: any) => { |
| | | if (item.status === 4 || item.status === 6 || item.paused === 1) { |
| | | router.push({ name: 'afterWorkReport', query: { id: item.id } }) |
| | | } else { |
| | | router.push({ name: 'workOrderReporting', query: { id: item.id } }) |
| | | } |
| | | // router.push({ name: 'workOrderReporting', query: { id } }) |
| | | } |
| | | |
| | | const proUserStr = (item: any) => { |
| | |
| | | height: 100%; |
| | | position: absolute; |
| | | background: #F7F7F7; |
| | | .details_zw { |
| | | width: 100%; |
| | | height: 148px; |
| | | } |
| | | .details_btn { |
| | | position: fixed; |
| | | bottom: 60px; |
| | | left: 30px; |
| | | width: calc(100% - 60px); |
| | | height: 88px; |
| | | line-height: 88px; |
| | | text-align: center; |
| | | background: #305ED5; |
| | | box-shadow: 0px 0px 12px 0px rgba(0,0,0,0.08); |
| | | border-radius: 8px; |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | .van-skeleton { |
| | | padding: 0 !important; |
| | | } |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="box_out"><span>éåºç»å½</span></div>--> |
| | | <div class="box_out" v-if="store.state.env && (store.state.env == 'WX' || store.state.env == 'XCX')" @click="loginOut"><span>éåºç»å½</span></div> |
| | | </div> |
| | | <van-popup v-model:show="show" position="bottom" round :style="{ height: '50%' }"> |
| | | <van-picker |
| | |
| | | import { Dialog, Toast } from 'vant' |
| | | const VanDialog = Dialog.Component; |
| | | import { changeCom, getDepartmentListByConditon } from '@/apis/PersonalAPI' |
| | | import { wxLoginOut } from '@/apis' |
| | | |
| | | const router = useRouter() |
| | | |
| | |
| | | }) |
| | | }; |
| | | |
| | | // éåºç»å½ |
| | | const loginOut = () => { |
| | | wxLoginOut({ |
| | | companyUserId: store.state.userInfo.companyUser.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | // window.parent.postMessage('é¿åº·', '*') |
| | | let href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6ea339a336f26380&redirect_url=https://www.mes.red/h5/redirect.html&response_type=code&scope=snsapi_base&state=#wechat_redirect' |
| | | window.open(href) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // å
³éç»ç»å¼¹æ¡ |
| | | const onCancel = (): void => { |
| | | show.value = false |
| | |
| | | if (!from.qualified && !from.undesirable) { |
| | | return Toast('è¯åæ°ä¸ä¸è¯æ°ä¸è½åæ¶ä¸ºç©º') |
| | | } |
| | | if (from.qualified && from.qualified <= 0) { |
| | | return Toast('è¯åæ°å¿
须大äº0') |
| | | } |
| | | if (from.undesirable && from.undesirable <= 0) { |
| | | return Toast('ä¸è¯åæ°å¿
须大äº0') |
| | | } |
| | | // if (!from.qualified) return Toast('è¯åæ°ä¸è½ä¸ºç©º') |
| | | // æä¸è¯æ° |
| | | if (from.undesirable > 0) { |
| | |
| | | if (info.value.bomType === 1) { // æå¼ |
| | | console.log('æå¼') |
| | | statisticsData.value = [] |
| | | if (produceFrom.qualified <= 0) { |
| | | if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) { |
| | | Toast.fail({ message: 'äº§åºæç»ä¸è½ä¸ºç©º' }) |
| | | return |
| | | } |
| | |
| | | Toast.fail({ message: 'æææç»ä¸è½ä¸ºç©º' }) |
| | | return |
| | | } |
| | | if (produceFrom.qualified <= 0) { |
| | | if (produceFrom.qualified <= 0 && produceFrom.undesirable <= 0) { |
| | | Toast.fail({ message: 'äº§åºæç»ä¸è½ä¸ºç©º' }) |
| | | return |
| | | } |
| | |
| | | <script> |
| | | console.log('app------'); |
| | | // import { pageCount } from '@/util/api/index.js'
|
| | | export default {
|
| | | onLaunch: function() { |
| | |
| | | store.dispatch('getHeight') |
| | | Vue.config.productionTip = false |
| | | App.mpType = 'app' |
| | | console.log(uni.$u); |
| | | // console.log(uni.$u); |
| | | // #ifdef MP
|
| | | // å¼å
¥uView对å°ç¨åºå享çmixinå°è£
|
| | | const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare.js') |
| | |
| | | })
|
| | | require('./util/request/index')(app)
|
| | | // è·åå¾
åæ°é |
| | | store.dispatch('getUpcomingNum')
|
| | | // store.dispatch('getUpcomingNum')
|
| | |
|
| | | app.$mount() |
| | |
| | | "quickapp" : {}, |
| | | /* å°ç¨åºç¹æç¸å
³ */ |
| | | "mp-weixin" : { |
| | | "appid" : "wxcd2b89fd2ff065f8", |
| | | "appid" : "wx1605a61f7a48cea6", |
| | | "setting" : { |
| | | "urlCheck" : false, |
| | | "es6" : true, |
| | |
| | | {
|
| | | "pages": [
|
| | | { |
| | | "path": "pages/workbench/workbench", |
| | | "style": { |
| | | "navigationBarTitleText": "å·¥ä½å°", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | // { |
| | | // "path": "pages/workbench/workbench", |
| | | // "style": { |
| | | // "navigationBarTitleText": "å·¥ä½å°", |
| | | // "enablePullDownRefresh": false |
| | | // } |
| | | // }, |
| | | {
|
| | | "path": "pages/index/index",
|
| | | "style": {
|
| | | "navigationBarTitleText": "å¾
å"
|
| | | }
|
| | | }, {
|
| | | "path": "pages/mine/mine",
|
| | | "style": {
|
| | | "navigationBarTitleText": "æç",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | | ,{
|
| | | "path" : "pages/login/login", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "ç»å½", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarTitleText": "",
|
| | | "navigationStyle": "custom" |
| | | }
|
| | | }
|
| | | // , {
|
| | | // "path": "pages/mine/mine",
|
| | | // "style": {
|
| | | // "navigationBarTitleText": "æç",
|
| | | // "enablePullDownRefresh": false
|
| | | // }
|
| | | // }
|
| | | // ,{
|
| | | // "path" : "pages/login/login", |
| | | // "style" : |
| | | // { |
| | | // "navigationBarTitleText": "ç»å½", |
| | | // "enablePullDownRefresh": false, |
| | | // "navigationStyle": "custom" |
| | | // }
|
| | | // }
|
| | | // ,{
|
| | | // "path" : "pages/personal/personal",
|
| | | // "style" : |
| | | // {
|
| | | // "navigationBarTitleText": "个人信æ¯",
|
| | | // "enablePullDownRefresh": false
|
| | | // }
|
| | | |
| | | // }
|
| | | // ,{
|
| | | // "path" : "pages/changePassword/changePassword",
|
| | | // "style" : |
| | | // {
|
| | | // "navigationBarTitleText": "ä¿®æ¹å¯ç ",
|
| | | // "enablePullDownRefresh": false
|
| | | // }
|
| | | |
| | | // }
|
| | | // ,{
|
| | | // "path" : "pages/updatePhone/updatePhone",
|
| | | // "style" : |
| | | // {
|
| | | // "navigationBarTitleText": "æ´æ°ææºå·",
|
| | | // "enablePullDownRefresh": false
|
| | | // }
|
| | | |
| | | // }
|
| | | // ,{
|
| | | // "path" : "pages/updateMailbox/updateMailbox",
|
| | | // "style" : |
| | | // {
|
| | | // "navigationBarTitleText": "æ´æ°é®ç®±å·",
|
| | | // "enablePullDownRefresh": false
|
| | | // }
|
| | | |
| | | // }
|
| | | ],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "uni-app", |
| | | "navigationBarBackgroundColor": "#ffffff",
|
| | | "backgroundColor": "#ffffff"
|
| | | "backgroundColor": "#ffffff",
|
| | | "navigationStyle": "custom"
|
| | | }, |
| | | "tabBar": { |
| | | "color": "#666666", |
| | | "selectedColor": "#222222", |
| | | "borderStyle": "black", |
| | | "backgroundColor": "#fff", |
| | | "list": [ |
| | | { |
| | | "pagePath": "pages/index/index", |
| | | "iconPath": "static/nav_daiban@2x.png", |
| | | "selectedIconPath": "static/nav_daiban_sel@2x.png", |
| | | "text": "å¾
å" |
| | | }, |
| | | { |
| | | "pagePath": "pages/workbench/workbench", |
| | | "iconPath": "static/nav_gongzuotai@2x.png", |
| | | "selectedIconPath": "static/nav_gongzuotai_sel@2x.png", |
| | | "text": "å·¥ä½å°" |
| | | }, |
| | | { |
| | | "pagePath": "pages/mine/mine", |
| | | "iconPath": "static/nav_wode@2x.png", |
| | | "selectedIconPath": "static/nav_wode_sel@2x.png", |
| | | "text": "æç" |
| | | } |
| | | ] |
| | | },
|
| | | // "tabBar": { |
| | | // "color": "#666666", |
| | | // "selectedColor": "#222222", |
| | | // "borderStyle": "black", |
| | | // "backgroundColor": "#fff", |
| | | // "list": [ |
| | | // { |
| | | // "pagePath": "pages/index/index", |
| | | // "iconPath": "static/nav_daiban@2x.png", |
| | | // "selectedIconPath": "static/nav_daiban_sel@2x.png", |
| | | // "text": "å¾
å" |
| | | // }, |
| | | // { |
| | | // "pagePath": "pages/workbench/workbench", |
| | | // "iconPath": "static/nav_gongzuotai@2x.png", |
| | | // "selectedIconPath": "static/nav_gongzuotai_sel@2x.png", |
| | | // "text": "å·¥ä½å°" |
| | | // }, |
| | | // { |
| | | // "pagePath": "pages/mine/mine", |
| | | // "iconPath": "static/nav_wode@2x.png", |
| | | // "selectedIconPath": "static/nav_wode_sel@2x.png", |
| | | // "text": "æç" |
| | | // } |
| | | // ] |
| | | // },
|
| | | "uniIdRouter": {}
|
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="password"> |
| | | <view class="password_tip"> |
| | | <image src="@/static/password_ic_tip@2x.png" alt="" /> |
| | | <text>å¯ç ç±6-20ä¸ªè±æåæ¯ãæ°åæç¬¦å·ç»æ</text> |
| | | </view> |
| | | <view class="password_list"> |
| | | <view class="password_list_item"> |
| | | <text>åå¯ç </text> |
| | | <view class="password_list_item_box"> |
| | | <input type="password" v-model="form.originalPassword" maxlength="20" placeholder="请è¾å
¥åå¯ç "> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>æ°å¯ç </text> |
| | | <view class="password_list_item_box"> |
| | | <input type="password" v-model="form.newPassword" maxlength="20" placeholder="请è¾å
¥æ°å¯ç "> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>确认å¯ç </text> |
| | | <view class="password_list_item_box"> |
| | | <input type="password" v-model="form.confirmPassword" maxlength="20" placeholder="忬¡è¾å
¥æ°å¯ç "> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="password_footer"> |
| | | <button v-preventReClick class="password_footer_submit"> |
| | | <text>宿</text> |
| | | </button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: { |
| | | originalPassword: '', |
| | | newPassword: '', |
| | | confirmPassword: '' |
| | | } |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .password { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: white; |
| | | .password_tip { |
| | | height: 72rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | background: #F7F7F7; |
| | | padding: 0 30rpx; |
| | | image { |
| | | width: 24rpx; |
| | | height: 24rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | text { |
| | | font-size: 24rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .password_list { |
| | | padding: 0 30rpx; |
| | | .password_list_item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 90rpx; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | text { |
| | | width: 150rpx; |
| | | flex-shrink: 0; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | .password_list_item_box { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | flex: 1; |
| | | input { |
| | | border: none; |
| | | font-size: 30rpx; |
| | | } |
| | | input::-webkit-input-placeholder { |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #B2B2B2; |
| | | } |
| | | p { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #4275FC; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .password_footer { |
| | | margin-top: 80rpx; |
| | | padding: 0 30rpx; |
| | | .password_footer_submit { |
| | | width: 100%; |
| | | height: 88rpx; |
| | | border: none; |
| | | background: #4275FC; |
| | | box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | text { |
| | | font-size: 30rpx; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template>
|
| | | <view>
|
| | | <myTabbar :index="0" />
|
| | | <view class="index">
|
| | | <web-view v-if="show" @onPostMessage="onMessage" :src="'https://dmtest.ahapp.net/doumeeplant_h5/#/appletLogin?code=' + code"></web-view>
|
| | | <!-- <myTabbar :index="0" /> -->
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import myTabbar from "@/components/myTabber.vue"
|
| | | // import myTabbar from "@/components/myTabber.vue" |
| | | export default {
|
| | | components: {
|
| | | myTabbar
|
| | | },
|
| | | // components: {
|
| | | // myTabbar
|
| | | // },
|
| | | data() {
|
| | | return {
|
| | | form: {
|
| | | account: '',
|
| | | password: '',
|
| | | },
|
| | | logining: false,
|
| | | openId: ''
|
| | | code: '',
|
| | | show: false
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | // uni.login({
|
| | | // success: data => {
|
| | | // this.wxLogin(data.code)
|
| | | // },
|
| | | // fail: err => {
|
| | | // uni.$u.toast(err)
|
| | | // }
|
| | | // })
|
| | | var that = this
|
| | | uni.login({
|
| | | provider: 'weixin',
|
| | | success: function (loginRes) {
|
| | | // console.log(loginRes);
|
| | | that.code = loginRes.code
|
| | | that.show = true
|
| | | }
|
| | | });
|
| | | },
|
| | | methods: {
|
| | | // loginAction() {
|
| | | // if (!this.form.account || !this.form.password) {
|
| | | // uni.$u.toast('è´¦å·æè
å¯ç ä¸è½ä¸ºç©º')
|
| | | // }
|
| | | // this.logining = true
|
| | | // coustomLogin({...this.form, openid: this.openId})
|
| | | // .then(res => {
|
| | | // this.$store.commit('SETTOKEN', res.token)
|
| | | // this.$store.commit('SETUSERINFO', res)
|
| | | // uni.navigateTo({
|
| | | // url:'/pages/projectList/projectList'
|
| | | // })
|
| | | // })
|
| | | // .finally(() => {
|
| | | // this.logining = false
|
| | | // })
|
| | | // },
|
| | | // wxLogin(code) {
|
| | | // wxEmpower({code})
|
| | | // .then(res => {
|
| | | // this.openId = res.openid
|
| | | // if (res.userInfo) {
|
| | | // this.$store.commit('SETTOKEN', res.userInfo.token)
|
| | | // this.$store.commit('SETUSERINFO', res.userInfo)
|
| | | // uni.navigateTo({
|
| | | // url:'/pages/projectList/projectList'
|
| | | // })
|
| | | // } |
| | | // })
|
| | | // .catch(err => {
|
| | | // uni.$u.toast(err)
|
| | | // })
|
| | | // }
|
| | | onMessage(e) {
|
| | | console.log('12345654321')
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | |
| | | .index {
|
| | | width: 100vw;
|
| | | height: 100vh;
|
| | | }
|
| | | </style> |
| | |
| | | <image src="@/static/2@2x.png" mode="widthFix" />
|
| | | <div class="box_info_box">
|
| | | <text>å¼ ä¸</text>
|
| | | <div class="box_info_box_x">
|
| | | <div class="box_info_box_x" @click="show = true">
|
| | | <text>è±ç±³ç§æ</text>
|
| | | <image src="@/static/mine_ic_change@2x.png" alt="" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="box_function">
|
| | | <div class="box_function_item" v-for="(item, index) in MENU" :key="index">
|
| | | <div class="box_function_item" v-for="(item, index) in MENU" :key="index" @click="jump(item.url)">
|
| | | <div class="box_function_item_left">
|
| | | <image :src="item.icon" alt="" />
|
| | | <text>{{item.name}}</text>
|
| | |
| | | </div>
|
| | | <div class="box_out"><text>éåºç»å½</text></div>
|
| | | </div>
|
| | | <!-- é¨é¨éæ©å¨ -->
|
| | | <u-picker :show="show" :columns="columns" @confirm="confirm"></u-picker>
|
| | | <myTabbar :index="2" />
|
| | | </view>
|
| | | </template>
|
| | |
| | | data() {
|
| | | return {
|
| | | MENU: [ |
| | | { name: '个人信æ¯', url: '/personal/personalInformation', icon: require('@/static/mine_ic_gerenxinxi@2x.png') }, |
| | | { name: '个人信æ¯', url: '/pages/personal/personal', icon: require('@/static/mine_ic_gerenxinxi@2x.png') }, |
| | | // { name: 'ç³»ç»éç¥', url: '', icon: require('@/assets/icon/mine_ic_xitonggonggao@2x.png') }, |
| | | { name: 'æ´æ°ææºå·', url: '/personal/updatePhone', icon: require('@/static/mine_ic_shoujihao@2x.png') }, |
| | | { name: 'æ´æ°é®ç®±å·', url: '/personal/updateMailbox', icon: require('@/static/mine_ic_youxianghao@2x.png') }, |
| | | { name: 'æ´æ°ææºå·', url: '/pages/updatePhone/updatePhone', icon: require('@/static/mine_ic_shoujihao@2x.png') }, |
| | | { name: 'æ´æ°é®ç®±å·', url: '/pages/updateMailbox/updateMailbox', icon: require('@/static/mine_ic_youxianghao@2x.png') }, |
| | | { name: 'æ«ç ç»å®è´¦å·', url: '', icon: require('@/static/mine_ic_bangding@2x.png') }, |
| | | { name: 'ä¿®æ¹å¯ç ', url: '/personal/changePassword', icon: require('@/static/mine_ic_xiugaimima@2x.png') }, |
| | | { name: 'ä¿®æ¹å¯ç ', url: '/pages/changePassword/changePassword', icon: require('@/static/mine_ic_xiugaimima@2x.png') }, |
| | | ],
|
| | | img: require('@/static/mine_bg@2x.png')
|
| | | img: require('@/static/mine_bg@2x.png'),
|
| | | show: false,
|
| | | columns: [
|
| | | ['ä¸å½', 'ç¾å½', 'æ¥æ¬']
|
| | | ]
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | uni.hideTabBar()
|
| | | // uni.login({
|
| | | // success: data => {
|
| | | // this.wxLogin(data.code)
|
| | | // },
|
| | | // fail: err => {
|
| | | // uni.$u.toast(err)
|
| | | // }
|
| | | // })
|
| | | },
|
| | | methods: {
|
| | | jump(url) {
|
| | | uni.navigateTo({ url })
|
| | | },
|
| | | confirm(val) {
|
| | | console.log(val)
|
| | | this.show = false
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="info"> |
| | | <view class="info_portrait"> |
| | | <image src="@/static/2@2x.png" mode="widthFix" /> |
| | | <text>ç¨æ·å</text> |
| | | </view> |
| | | <view class="info_list"> |
| | | <view class="info_list_item"> |
| | | <text>æµç§°</text> |
| | | <text>ææ æµç§°</text> |
| | | </view> |
| | | <view class="info_list_item"> |
| | | <text>ææºå·</text> |
| | | <text>ææ ææºå·</text> |
| | | </view> |
| | | <view class="info_list_item"> |
| | | <text>æå±é¨é¨</text> |
| | | <text>ææ æå±é¨é¨</text> |
| | | </view> |
| | | <view class="info_list_item"> |
| | | <text>å²ä½</text> |
| | | <text>ææ å²ä½</text> |
| | | </view> |
| | | <view class="info_list_item"> |
| | | <text>å½åç»ç»</text> |
| | | <text>ææ ç»ç»</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .info { |
| | | padding: 30rpx; |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | background: white; |
| | | .info_portrait { |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | margin-top: 60rpx; |
| | | image { |
| | | width: 140rpx; |
| | | height: 140rpx; |
| | | margin-bottom: 30rpx; |
| | | } |
| | | text { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | .info_list { |
| | | margin-top: 30rpx; |
| | | .info_list_item { |
| | | height: 98rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | text { |
| | | &:first-child { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #777777; |
| | | } |
| | | &:last-child { |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="password"> |
| | | <view class="password_tip"> |
| | | <image src="@/static/password_ic_tip@2x.png" mode="widthFix" /> |
| | | <text>ç»å®é®ç®±å·å¯ä»¥æ´å¥½å°ä¿æ¤æ¨çè´¦æ·å®å
¨ï¼ä¿æ¤ä¸ªäººä¿¡æ¯ä¸è¢«ä¾µå®³ã</text> |
| | | </view> |
| | | <view class="password_list"> |
| | | <view class="password_list_item"> |
| | | <text>å½åç»å®</text> |
| | | <view class="password_list_item_box"> |
| | | <input type="text" disabled v-model="form.currentMailbox" /> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>æ°é®ç®±å·</text> |
| | | <view class="password_list_item_box"> |
| | | <input type="text" v-model="form.newMailbox" placeholder="请è¾å
¥æ°çé®ç®±" /> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>éªè¯ç </text> |
| | | <view class="password_list_item_box"> |
| | | <input type="text" v-model="form.verificationCode" maxlength="4" placeholder="请è¾å
¥éªè¯ç "> |
| | | <p @click="getVerificationCode" v-if="!code.isOpen">è·åéªè¯ç </p> |
| | | <p @click="getVerificationCode" v-else>{{code.num}}</p> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="password_footer"> |
| | | <button v-preventReClick class="password_footer_submit"> |
| | | <text>宿</text> |
| | | </button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: { |
| | | currentMailbox: '', |
| | | newMailbox: '', |
| | | verificationCode: '' |
| | | } |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .password { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: white; |
| | | .password_tip { |
| | | padding: 20rpx 30rpx; |
| | | display: flex; |
| | | background: #F7F7F7; |
| | | box-sizing: border-box; |
| | | image { |
| | | width: 24rpx; |
| | | height: 24rpx; |
| | | margin-right: 10rpx; |
| | | margin-top: 8rpx; |
| | | } |
| | | text { |
| | | font-size: 24rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .password_list { |
| | | padding: 0 30rpx; |
| | | .password_list_item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 90rpx; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | text { |
| | | width: 150rpx; |
| | | flex-shrink: 0; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | .password_list_item_box { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | flex: 1; |
| | | input { |
| | | border: none; |
| | | font-size: 30rpx; |
| | | } |
| | | input::-webkit-input-placeholder { |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #B2B2B2; |
| | | } |
| | | p { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #4275FC; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .password_footer { |
| | | margin-top: 80rpx; |
| | | padding: 0 30rpx; |
| | | .password_footer_submit { |
| | | width: 100%; |
| | | height: 88rpx; |
| | | border: none; |
| | | background: #4275FC; |
| | | box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | text { |
| | | font-size: 30rpx; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="password"> |
| | | <view class="password_tip"> |
| | | <image src="@/static/password_ic_tip@2x.png" alt="" /> |
| | | <text>ç»å®ææºå·å¯ä»¥æ´å¥½å°ä¿æ¤æ¨çè´¦æ·å®å
¨ï¼ä¿æ¤ä¸ªäººä¿¡æ¯ä¸è¢«ä¾µå®³ã</text> |
| | | </view> |
| | | <view class="password_list"> |
| | | <view class="password_list_item"> |
| | | <text>å½åç»å®</text> |
| | | <view class="password_list_item_box"> |
| | | <input type="number" disabled v-model="form.currentPhone" maxlength="11"> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>æ°ææºå·</text> |
| | | <view class="password_list_item_box"> |
| | | <input type="text" v-model="form.newPhone" maxlength="11" placeholder="请è¾å
¥æ°ææºå·"> |
| | | </view> |
| | | </view> |
| | | <view class="password_list_item"> |
| | | <text>éªè¯ç </text> |
| | | <view class="password_list_item_box"> |
| | | <input type="text" v-model="form.verificationCode" maxlength="4" placeholder="请è¾å
¥ææºéªè¯ç "> |
| | | <p @click="getVerificationCode" v-if="!code.isOpen">è·åéªè¯ç </p> |
| | | <p @click="getVerificationCode" v-else>{{code.num}}</p> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="password_footer"> |
| | | <button v-preventReClick class="password_footer_submit" @click="submit"> |
| | | <text>宿</text> |
| | | </button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | form: { |
| | | currentPhone: '', |
| | | newPhone: '', |
| | | verificationCode: '' |
| | | } |
| | | }; |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .password { |
| | | width: 100%; |
| | | .password_tip { |
| | | padding: 20rpx 30rpx; |
| | | display: flex; |
| | | background: #F7F7F7; |
| | | box-sizing: border-box; |
| | | image { |
| | | width: 24rpx; |
| | | height: 24rpx; |
| | | margin-right: 10rpx; |
| | | margin-top: 8rpx; |
| | | } |
| | | text { |
| | | font-size: 24rpx; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .password_list { |
| | | padding: 0 30rpx; |
| | | .password_list_item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 90rpx; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | text { |
| | | width: 150rpx; |
| | | flex-shrink: 0; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | .password_list_item_box { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | flex: 1; |
| | | input { |
| | | border: none; |
| | | font-size: 30rpx; |
| | | } |
| | | input::-webkit-input-placeholder { |
| | | font-size: 28rpx; |
| | | font-weight: 400; |
| | | color: #B2B2B2; |
| | | } |
| | | p { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: #4275FC; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .password_footer { |
| | | margin-top: 80rpx; |
| | | padding: 0 30rpx; |
| | | .password_footer_submit { |
| | | width: 100%; |
| | | height: 88rpx; |
| | | border: none; |
| | | background: #4275FC; |
| | | box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | text { |
| | | font-size: 30rpx; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |