Commit d5c91777 by wangjian

添加登录

parent 1ab9974d
......@@ -72,9 +72,7 @@ export function get (url, params) {
export function headerCom (params) {
let param = params || {}
let token = tokenGet(param.resetToken)
let location = store.state.location
let cityInfo = store.state.cityInfo
let headers = {'token': token, 'lat': location.lat, 'lng': location.lng, 'cityCode': cityInfo.cityCode}
let headers = {'token': token}
return headers
}
......
export default function toast(text, time) {
uni.showToast({
icon:'none',
title:text || '',
duration:time || 1500
})
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ import net from './common/net.js'
import store from './store/index.js'
import numUtils from './common/numUtil.js'
import router from './router/router.js'
import toast from './common/toast.js'
import loading from './common/loading.js'
// #ifndef VUE3
import Vue from 'vue'
......@@ -11,6 +13,8 @@ App.mpType = 'app'
Vue.prototype.$net = net
Vue.prototype.$router = router
Vue.prototype.$numUtils = numUtils
Vue.prototype.toast = toast
Vue.prototype.loading = loading
const app = new Vue({
...App
})
......
......@@ -46,6 +46,15 @@
}
}
,{
"path" : "selectAccount/selectAccount",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
]
}],
"preloadRule":{
......
<template>
<view>
<view class="" @click="goLogin()">
qqqqqq
<uni-datetime-picker
type="date"
:value="single"
start="2021-3"
@change="change"
/>
11111
</view>
</view>
</template>
......@@ -16,7 +10,6 @@
export default {
data() {
return {
};
},
methods: {
......@@ -27,6 +20,6 @@
}
</script>
<style lang="scss">
<style lang="scss" scoped>
</style>
<template>
<view>
<uni-load-more :status="loadingType" v-if="list.length>0"></uni-load-more>
<picker-view v-if="true" :value="single" @change="bindChange" class="picker-view">
<picker-view-column>
<view class="item" v-for="(item,index) in years" :key="index">{{item}}</view>
</picker-view-column>
<picker-view-column>
<view class="item" v-for="(item,index) in months" :key="index">{{item}}</view>
</picker-view-column>
</picker-view>
</view>
</template>
......@@ -13,7 +21,10 @@
pageSize: 10,
applyDate: '',
type: 0, //0 综合 100 收入 200 支出
loadingType: 'more'
loadingType: 'more',
single: '',
months: [1,2,3,4,5,6,7,8,9,10,11,12],
years: [2022, 2023, 2024]
};
},
methods: {
......@@ -44,6 +55,12 @@
}
</script>
<style lang="scss">
<style lang="scss" scoped>
.picker-view {
width: 100%;
height: 400rpx;
position: absolute;
bottom: 0;
left: 0;
}
</style>
<template>
<view class="container">
<image class="logo" src="../../static/logo.png" mode=""></image>
<view class="shop-name">
懒人企业福利社
</view>
<view>
<view class="input-code">
<input class="input" confirm-type="search" type="text" :value="phone" placeholder="请输入手机号"
@input="topInputChange" :placeholder-style="{'color':'#848689'}" :maxlength="11"/>
</view>
<button v-if="showGetPhoneBtn" class="login-title" open-type="getPhoneNumber" @getphonenumber="getphonenumber" />
<view class="input-code input">
<input class="left" confirm-type="search" type="text" :value="code" placeholder="请输入验证码"
@input="bottomInputChange" :placeholder-style="{'color':'#848689'}" :maxlength="4"/>
<text @click="sendCode()" class="right" :style="{'color':isSendCode?'#FF0520':''}">{{btnText}}</text>
</view>
</view>
<view class="login-btn" @click="login()">
登 录
</view>
</view>
</template>
......@@ -8,18 +26,45 @@
export default {
data() {
return {
phone: '15210786931',
code: '6931'
phone: '',
code: '',
time: 300,
isSendCode: false,
btnText: '发送验证码',
showSelectAccount: false,
showGetPhoneBtn: true
}
},
created() {
this.login()
},
onUnload() {
clearInterval()
},
methods: {
topInputChange (e) {
this.phone = e.detail.value
},
bottomInputChange (e) {
this.code = e.detail.value
},
getphonenumber (e) {
this.liteLogin(e.detail.code)
},
sendVerifyCode() {
let params = {'codeType': '10', 'codeType': this.phone}
if (this.phone.length != 11) {
this.toast('请输入正确的手机号')
return
}
if (this.time != 300) {
return
}
let params = {'codeType': '10', 'codeType': this.phone, 'resetToken':'not'}
this.$net.post('/meta/sms', params).then(res => {
if (res.code === 200) {
uni.showToast({
title: '验证码发送成功'
})
this.startTime()
} else {
uni.showToast({
title: res.message
......@@ -27,18 +72,61 @@
}
})
},
startTime () {
if (this.time != 300) {
return
}
this.isSendCode = true
this.btnText = this.time+'s'
var timer = setInterval(()=>{
this.time--
if (this.time>0) {
this.btnText = this.time+'s'
} else {
this.btnText = '重新发送'
this.time = 300
clearInterval(timer)
}
}, 1000)
},
login() {
let params = {'authType':'code','authAccount':this.phone,'authPasswd':this.code}
if (this.phone.length==0) {
this.toast('请输入手机号')
return
}
if (this.code.length==0) {
this.toast('请输入验证码')
return
}
this.loading.showLoading('登录中...')
let params = {'authType':'code','authAccount':this.phone,'authPasswd':this.code, 'resetToken':'not'}
this.$net.post('/auth/authorization', params).then(res => {
this.loading.hideLoading()
if (res.code === 200) {
this.$net.tokenSave(res.data.token || '')
if (res.date.list) {
if (res.date&&res.date.list) {
}
this.$router.push('SelectAccount')
} else {
uni.showToast({
title: res.message
this.toast(res.message)
}
})
},
liteLogin(liteCode) {
this.showGetPhoneBtn = false
this.loading.showLoading('登录中...')
let params = {'authType':'lite','authAccount':liteCode, 'resetToken':'not'}
this.$net.post('/auth/authorization', params).then(res => {
this.loading.hideLoading()
if (res.code === 200) {
this.$net.tokenSave(res.data.token || '')
if (res.date&&res.date.list) {
}
this.$router.push('SelectAccount')
} else {
this.toast(res.message)
}
})
}
......@@ -46,6 +134,115 @@
}
</script>
<style>
<style lang="scss" scoped>
.container {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: #FFFFFF;
.nav-bar {
background-color: #FFFFFF;
width: 100%;
display: flex;
align-items: center;
border-bottom: 1rpx solid #EFEFEF;
.back {
height: 34rpx;
width: 86rpx;
image{
height: 36rpx;
width: 18rpx;
margin-left: 34rpx;
}
}
.title {
font-size: 34rpx;
color: #333333;
text-align: center;
}
}
.logo {
display: block;
margin: 128rpx auto 0;
height: 128rpx;
width: 128rpx;
}
.shop-name {
margin-top: 32rpx;
text-align: center;
width: 100%;
font-size: 32rpx;
color: #333333;
}
.select-type {
margin-top: 120rpx;
width: 100%;
display: flex;
align-items: center;
height: 70rpx;
.item {
height: 70rpx;
font-size: 32rpx;
color: #252525;
text-align: center;
flex: 1;
}
.active {
font-weight: bolder;
color: #FF0520;
}
.active::after {
margin: 20rpx auto 16rpx;
width: 176rpx;
height: 6rpx;
border-radius: 20rpx;
content: ' ';
display: block;
background-color: #FF0520;
}
}
.input {
height: 92rpx;
width: 590rpx;
margin: 40rpx auto 0;
border-bottom: 2rpx solid #F0F0F0;
font-size: 28rpx;
color: #333333;
}
.login-title {
opacity: 0;
height: 92rpx;
width: 100%;
position: absolute;
top: 380rpx;
left: 0;
z-index: 99;
}
.input-code {
display: flex;
align-items: center;
justify-content: space-between;
.left {
width: 470rpx;
color: #333333;
}
.right {
color: #848689;
font-size: 24rpx;
}
}
.login-btn {
margin: 80rpx auto 0;
background-color: #ff0520;
height: 80rpx;
width: 590rpx;
line-height: 82rpx;
font-size: 32rpx;
color: #ffffff;
text-align: center;
border-radius: 40rpx;
}
}
</style>
<template>
<view class="container">
<view class="top">{{topTitle}}</view>
<view class="sub">{{subTitle}}</view>
<view>
<view class="item" v-for="(item, index) in accountList" :style="{'margin-top':index===0?'128rpx':'', 'opacity':item.staffState!==200?'0.6':''}" :key="index" @click="goAccount(item)">
<image class="left" :src="item.avatar" mode=""></image>
<view class="middle">
<view class="middle-item">{{item.staffName}}</view>
<view class="middle-next-item">{{item.accountName}}</view>
</view>
<image class="right" src="../../static/arrow-right.png" mode=""></image>
</view>
</view>
<view class="bottom">
<image v-if="!selectTips" class="select-img" src="../../static/select-n.png" mode="" @click="selectTips=true"></image>
<image v-else class="select-img" src="../../static/select-h.png" mode="" @click="selectTips=false"></image>
<view class="tips">
查看并同意<text>《隐私政策》</text><text>《服务协议》</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
topTitle: '选择账号',
subTitle: '系统检测到该手机号已在多家公司注册',
accountList: [
{
'avatar': '',
'staffName': 'xoakjsbfoq',
'accountName': '手机号的不干胶王本岗位能力跟你',
'staffState': 100
},
{
'avatar': '',
'staffName': 'xoakjsbfoq',
'accountName': '手机号的不干胶王本岗位能力跟你',
'staffState': 100
},
{
'avatar': '',
'staffName': 'xoakjsbfoq',
'accountName': '手机号的不干胶王本岗位能力跟你',
'staffState': 200
}
],
selectTips: false
};
},
created() {
this.getAllAccount()
},
methods: {
goAccount(item) {
this.$net.post('/account/change', {'accountCode': item.accountCode}).then(res => {
})
},
getAllAccount() {
this.$net.get('/staff/query').then(res => {
if (res.code === 200) {
this.accountList = this.accountList.concat(res.data)
} else {
this.toast(res.message)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.container {
height: 100%;
padding: 64rpx;
.top {
font-size: 40rpx;
color: #333333;
}
.sub {
font-size: 24rpx;
color: #666666;
margin-top: 16rpx;
}
.first-item{
margin-top: 128rpx;
}
.item {
margin-top: 40rpx;
border-radius: 16rpx;
border: 2rpx solid #F0F0F0;
display: flex;
padding: 24rpx;
align-items: center;
.left {
display: block;
height: 96rpx;
width: 96rpx;
background-color: #18BC37;
border-radius: 96rpx;
}
.middle {
height: 86rpx;
margin-left: 24rpx;
font-size: 26rpx;
color: #333333;
.middle-item {
height: 36rpx;
line-height: 38rpx;
width: 402rpx;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.middle-next-item {
margin-top: 14rpx;
}
}
.right {
display: block;
margin-left: 40rpx;
height: 20rpx;
width: 12rpx;
}
}
.bottom {
position: fixed;
bottom: 118rpx;
left: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
.select-img {
height: 28rpx;
width: 28rpx;
}
.tips {
margin-left: 16rpx;
font-size: 22rpx;
color: #999999;
text {
color: #338AFF;
}
}
}
}
</style>
......@@ -4,7 +4,8 @@ const routers = {
'Login': '/pagesA/login/login',
'Home': '/pages/home/home',
'Order': '/pages/order/order',
'Mine': '/pages/mine/mine'
'Mine': '/pages/mine/mine',
'SelectAccount': '/pagesA/selectAccount/selectAccount'
}
export function push(routerName, params, events) {
......
......@@ -10,101 +10,10 @@ import { createStore } from 'vuex'
const store = createStore({
// #endif
state: {
userName: '11',
allIncome: 0,
withdrawIncome: 0,
noun: 0, //积分
location: {'lat':0, 'lng':0}, //经纬度
searchHistoryList: [],
searchHotlist: [],
goodsData:{}, //提交订单的商品数据
goodsShopList: [], //当前商品适用店铺列表
userInfo:{}, // 用户信息
userSelectAddress: {}, //提单选择的地址
userDefaultAddress: {}, //进入商品详情的默认地址
cityInfo: {}, //首页选择地址信息
hasLogin: false,
wxCustomerIsOpening: false,
dotInfo: {requestNum:1} //打点需要的设备信息以及版本信息
},
mutations: {
refreshUserLogin(state, isLogin) {
state.hasLogin = isLogin
},
refreshUserInfo(state, userInfo) {
state.userInfo = userInfo
},
refreshGoodsData(state, goodsData) {
state.goodsData = goodsData
},
refreshAllIncome(state, allIncome) {
state.allIncome = allIncome
},
refreshNoun(state, noun) {
state.noun = noun
},
refreshLocation(state, newLocation) {
state.location = newLocation
},
initSearchHotList (state, datas) {
state.searchHotlist = datas
},
initSearchHistory (state, datas) {
state.searchHistoryList = datas
},
refreshSearchHistoryList(state, searchKeyWord) {
let currentHList = state.searchHistoryList
if (currentHList.indexOf(searchKeyWord) > -1) {
//搜索历史存在此搜索词,直接删掉
currentHList.splice(currentHList.indexOf(searchKeyWord), 1)
} else if (currentHList.length == 10 && currentHList.indexOf(searchKeyWord) <= -1) {
// 搜索历史没有这个搜索词并已经满了10个,删掉最后一个
currentHList.splice(9, 1)
}
currentHList.unshift(searchKeyWord);
uni.setStorage({
key: 'search_cache',
data: currentHList
});
state.searchHistoryList = currentHList
},
deleteHis (state) {
state.searchHistoryList = []
uni.setStorage({
key: 'search_cache',
data: []
});
},
initGoodsShopList (state, datas) {
state.goodsShopList = datas
},
initUserAddress (state, address) {
state.userSelectAddress = address
},
initUserDefaultAddress (state, address) {
state.userDefaultAddress = address
},
initUserCityInfo (state, cityInfo) {
state.cityInfo = cityInfo
},
initSystemInfo (state, systemInfo) {
state.dotInfo.systemInfo = systemInfo
},
initVersionInfo (state, versionInfo) {
state.dotInfo.versionInfo = versionInfo
},
initIP (state, ip) {
state.dotInfo.ip = ip
},
initOpenTime (state, time) {
state.dotInfo.openTime = time
},
addDotRequestNum (state) {
state.dotInfo.requestNum++
},
refreshWxCustomerOpeningStatus (state, status) {
state.wxCustomerIsOpening = status
}
},
getters: {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -9,7 +9,8 @@
"root": "pagesA",
"pages": [
"login/login",
"integral/integral"
"integral/integral",
"selectAccount/selectAccount"
]
}
],
......
......@@ -12,6 +12,8 @@ var _net = _interopRequireDefault(__webpack_require__(/*! ./common/net.js */ 12)
var _index = _interopRequireDefault(__webpack_require__(/*! ./store/index.js */ 13));
var _numUtil = _interopRequireDefault(__webpack_require__(/*! ./common/numUtil.js */ 15));
var _router = _interopRequireDefault(__webpack_require__(/*! ./router/router.js */ 16));
var _toast = _interopRequireDefault(__webpack_require__(/*! ./common/toast.js */ 66));
var _loading = _interopRequireDefault(__webpack_require__(/*! ./common/loading.js */ 76));
var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 3));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;
......@@ -20,6 +22,8 @@ _App.default.mpType = 'app';
_vue.default.prototype.$net = _net.default;
_vue.default.prototype.$router = _router.default;
_vue.default.prototype.$numUtils = _numUtil.default;
_vue.default.prototype.toast = _toast.default;
_vue.default.prototype.loading = _loading.default;
var app = new _vue.default(_objectSpread({},
_App.default));
......
......@@ -105,11 +105,11 @@
/******/
/******/
/******/ // mini-css-extract-plugin CSS loading
/******/ var cssChunks = {"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker":1,"uni_modules/uni-load-more/components/uni-load-more/uni-load-more":1,"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar":1,"uni_modules/uni-icons/components/uni-icons/uni-icons":1,"uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker":1,"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item":1};
/******/ var cssChunks = {"uni_modules/uni-load-more/components/uni-load-more/uni-load-more":1};
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
/******/ var href = "" + ({"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker":"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker","uni_modules/uni-load-more/components/uni-load-more/uni-load-more":"uni_modules/uni-load-more/components/uni-load-more/uni-load-more","uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar":"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar","uni_modules/uni-icons/components/uni-icons/uni-icons":"uni_modules/uni-icons/components/uni-icons/uni-icons","uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker":"uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker","uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item":"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item"}[chunkId]||chunkId) + ".wxss";
/******/ var href = "" + ({"uni_modules/uni-load-more/components/uni-load-more/uni-load-more":"uni_modules/uni-load-more/components/uni-load-more/uni-load-more"}[chunkId]||chunkId) + ".wxss";
/******/ var fullhref = __webpack_require__.p + href;
/******/ var existingLinkTags = document.getElementsByTagName("link");
/******/ for(var i = 0; i < existingLinkTags.length; i++) {
......
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"usingComponents": {
"uni-datetime-picker": "/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker"
}
"usingComponents": {}
}
\ No newline at end of file
<view><view data-event-opts="{{[['tap',[['goLogin']]]]}}" bindtap="__e">qqqqqq<uni-datetime-picker vue-id="1da55560-1" type="date" value="{{single}}" start="2021-3" data-event-opts="{{[['^change',[['change']]]]}}" bind:change="__e" bind:__l="__l"></uni-datetime-picker></view></view>
\ No newline at end of file
<view class="data-v-92bb8f34"><view data-event-opts="{{[['tap',[['goLogin']]]]}}" bindtap="__e" class="data-v-92bb8f34">11111</view></view>
\ No newline at end of file
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.picker-view.data-v-92bb8f34 {
width: 100%;
height: 400rpx;
}
<view><block wx:if="{{list.length>0}}"><uni-load-more vue-id="24b6013b-1" status="{{loadingType}}" bind:__l="__l"></uni-load-more></block></view>
\ No newline at end of file
<view class="data-v-012f252b"><block wx:if="{{list.length>0}}"><uni-load-more vue-id="24b6013b-1" status="{{loadingType}}" class="data-v-012f252b" bind:__l="__l"></uni-load-more></block><block wx:if="{{true}}"><picker-view class="picker-view data-v-012f252b" value="{{single}}" data-event-opts="{{[['change',[['bindChange',['$event']]]]]}}" bindchange="__e"><picker-view-column class="data-v-012f252b"><block wx:for="{{years}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-012f252b">{{item+"年"}}</view></block></picker-view-column><picker-view-column class="data-v-012f252b"><block wx:for="{{months}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-012f252b">{{item+"月"}}</view></block></picker-view-column></picker-view></block></view>
\ No newline at end of file
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.picker-view.data-v-012f252b {
width: 100%;
height: 400rpx;
position: absolute;
bottom: 0;
left: 0;
}
<view></view>
\ No newline at end of file
<view class="container data-v-bc6e7682"><image class="logo data-v-bc6e7682" src="../../static/logo.png" mode></image><view class="shop-name data-v-bc6e7682">懒人企业福利社</view><view class="data-v-bc6e7682"><view class="input-code data-v-bc6e7682"><input class="input data-v-bc6e7682" confirm-type="search" type="text" placeholder="请输入手机号" placeholder-style="{{$root.a0}}" maxlength="{{11}}" data-event-opts="{{[['input',[['topInputChange',['$event']]]]]}}" value="{{phone}}" bindinput="__e"/></view><block wx:if="{{showGetPhoneBtn}}"><button class="login-title data-v-bc6e7682" open-type="getPhoneNumber" data-event-opts="{{[['getphonenumber',[['getphonenumber',['$event']]]]]}}" bindgetphonenumber="__e"></button></block><view class="input-code input data-v-bc6e7682"><input class="left data-v-bc6e7682" confirm-type="search" type="text" placeholder="请输入验证码" placeholder-style="{{$root.a1}}" maxlength="{{4}}" data-event-opts="{{[['input',[['bottomInputChange',['$event']]]]]}}" value="{{code}}" bindinput="__e"/><text data-event-opts="{{[['tap',[['sendCode']]]]}}" class="right data-v-bc6e7682" style="{{'color:'+(isSendCode?'#FF0520':'')+';'}}" bindtap="__e">{{btnText}}</text></view></view><view data-event-opts="{{[['tap',[['login']]]]}}" class="login-btn data-v-bc6e7682" bindtap="__e">登 录</view></view>
\ No newline at end of file
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.container.data-v-bc6e7682 {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: #FFFFFF;
}
.container .nav-bar.data-v-bc6e7682 {
background-color: #FFFFFF;
width: 100%;
display: flex;
align-items: center;
border-bottom: 1rpx solid #EFEFEF;
}
.container .nav-bar .back.data-v-bc6e7682 {
height: 34rpx;
width: 86rpx;
}
.container .nav-bar .back image.data-v-bc6e7682 {
height: 36rpx;
width: 18rpx;
margin-left: 34rpx;
}
.container .nav-bar .title.data-v-bc6e7682 {
font-size: 34rpx;
color: #333333;
text-align: center;
}
.container .logo.data-v-bc6e7682 {
display: block;
margin: 128rpx auto 0;
height: 128rpx;
width: 128rpx;
}
.container .shop-name.data-v-bc6e7682 {
margin-top: 32rpx;
text-align: center;
width: 100%;
font-size: 32rpx;
color: #333333;
}
.container .select-type.data-v-bc6e7682 {
margin-top: 120rpx;
width: 100%;
display: flex;
align-items: center;
height: 70rpx;
}
.container .select-type .item.data-v-bc6e7682 {
height: 70rpx;
font-size: 32rpx;
color: #252525;
text-align: center;
flex: 1;
}
.container .select-type .active.data-v-bc6e7682 {
font-weight: bolder;
color: #FF0520;
}
.container .select-type .active.data-v-bc6e7682::after {
margin: 20rpx auto 16rpx;
width: 176rpx;
height: 6rpx;
border-radius: 20rpx;
content: ' ';
display: block;
background-color: #FF0520;
}
.container .input.data-v-bc6e7682 {
height: 92rpx;
width: 590rpx;
margin: 40rpx auto 0;
border-bottom: 2rpx solid #F0F0F0;
font-size: 28rpx;
color: #333333;
}
.container .login-title.data-v-bc6e7682 {
opacity: 0;
height: 92rpx;
width: 100%;
position: absolute;
top: 380rpx;
left: 0;
z-index: 99;
}
.container .input-code.data-v-bc6e7682 {
display: flex;
align-items: center;
justify-content: space-between;
}
.container .input-code .left.data-v-bc6e7682 {
width: 470rpx;
color: #333333;
}
.container .input-code .right.data-v-bc6e7682 {
color: #848689;
font-size: 24rpx;
}
.container .login-btn.data-v-bc6e7682 {
margin: 80rpx auto 0;
background-color: #ff0520;
height: 80rpx;
width: 590rpx;
line-height: 82rpx;
font-size: 32rpx;
color: #ffffff;
text-align: center;
border-radius: 40rpx;
}
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"usingComponents": {}
}
\ No newline at end of file
<view class="container data-v-e9ba6de2"><view class="top data-v-e9ba6de2">{{topTitle}}</view><view class="sub data-v-e9ba6de2">{{subTitle}}</view><view class="data-v-e9ba6de2"><block wx:for="{{accountList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view data-event-opts="{{[['tap',[['goAccount',['$0'],[[['accountList','',index]]]]]]]}}" class="item data-v-e9ba6de2" style="{{'margin-top:'+(index===0?'128rpx':'')+';'+('opacity:'+(item.staffState!==200?'0.6':'')+';')}}" bindtap="__e"><image class="left data-v-e9ba6de2" src="{{item.avatar}}" mode></image><view class="middle data-v-e9ba6de2"><view class="middle-item data-v-e9ba6de2">{{item.staffName}}</view><view class="middle-next-item data-v-e9ba6de2">{{item.accountName}}</view></view><image class="right data-v-e9ba6de2" src="../../static/arrow-right.png" mode></image></view></block></view><view class="bottom data-v-e9ba6de2"><block wx:if="{{!selectTips}}"><image class="select-img data-v-e9ba6de2" src="../../static/select-n.png" mode data-event-opts="{{[['tap',[['e0',['$event']]]]]}}" bindtap="__e"></image></block><block wx:else><image class="select-img data-v-e9ba6de2" src="../../static/select-h.png" mode data-event-opts="{{[['tap',[['e1',['$event']]]]]}}" bindtap="__e"></image></block><view class="tips data-v-e9ba6de2">查看并同意<text class="data-v-e9ba6de2">《隐私政策》</text>和<text class="data-v-e9ba6de2">《服务协议》</text></view></view></view>
\ No newline at end of file
@charset "UTF-8";
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.container.data-v-e9ba6de2 {
height: 100%;
padding: 64rpx;
}
.container .top.data-v-e9ba6de2 {
font-size: 40rpx;
color: #333333;
}
.container .sub.data-v-e9ba6de2 {
font-size: 24rpx;
color: #666666;
margin-top: 16rpx;
}
.container .first-item.data-v-e9ba6de2 {
margin-top: 128rpx;
}
.container .item.data-v-e9ba6de2 {
margin-top: 40rpx;
border-radius: 16rpx;
border: 2rpx solid #F0F0F0;
display: flex;
padding: 24rpx;
align-items: center;
}
.container .item .left.data-v-e9ba6de2 {
display: block;
height: 96rpx;
width: 96rpx;
background-color: #18BC37;
border-radius: 96rpx;
}
.container .item .middle.data-v-e9ba6de2 {
height: 86rpx;
margin-left: 24rpx;
font-size: 26rpx;
color: #333333;
}
.container .item .middle .middle-item.data-v-e9ba6de2 {
height: 36rpx;
line-height: 38rpx;
width: 402rpx;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.container .item .middle .middle-next-item.data-v-e9ba6de2 {
margin-top: 14rpx;
}
.container .item .right.data-v-e9ba6de2 {
display: block;
margin-left: 40rpx;
height: 20rpx;
width: 12rpx;
}
.container .bottom.data-v-e9ba6de2 {
position: fixed;
bottom: 118rpx;
left: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
}
.container .bottom .select-img.data-v-e9ba6de2 {
height: 28rpx;
width: 28rpx;
}
.container .bottom .tips.data-v-e9ba6de2 {
margin-left: 16rpx;
font-size: 22rpx;
color: #999999;
}
.container .bottom .tips text.data-v-e9ba6de2 {
color: #338AFF;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment