提交 ebc9064a 编写于 作者: DCloud_JSON's avatar DCloud_JSON

Merge branch 'master' of https://gitee.com/dcloud/base-app

...@@ -14,9 +14,8 @@ module.exports = { ...@@ -14,9 +14,8 @@ module.exports = {
}, },
"router":{ "router":{
"needLogin":[ //配置需要路由拦截的页面地址,在打开这些页面之前会自动检查(不联网)uni_id_token的值是否存在/过期等 "needLogin":[ //配置需要路由拦截的页面地址,在打开这些页面之前会自动检查(不联网)uni_id_token的值是否存在/过期等
"/pages/ucenter/edit/edit",
"/uni_modules/uni-login-page/pages/index/pwd-retrieve",
"/uni_modules/uni-id-users/pages/uni-id-users/edit" "/uni_modules/uni-id-users/pages/uni-id-users/edit"
"/uni_modules/uni-news-favorite/pages/uni-news-favorite/list"
], ],
"login":["univerify","smsCode","username","weixin","apple"] //默认就是短信验证码登陆 "login":["univerify","smsCode","username","weixin","apple"] //默认就是短信验证码登陆
}, },
......
...@@ -7,24 +7,26 @@ ...@@ -7,24 +7,26 @@
DB Schema 规范:https://uniapp.dcloud.net.cn/uniCloud/schema DB Schema 规范:https://uniapp.dcloud.net.cn/uniCloud/schema
--> -->
<view class="article"> <view class="article">
<!-- #ifdef APP-PLUS -->
<uni-nav-bar :statusBar="true" :border="false"></uni-nav-bar> <uni-nav-bar :statusBar="true" :border="false"></uni-nav-bar>
<!-- #endif -->
<view class="article-title">{{ title }}</view>
<unicloud-db v-slot:default="{data, loading, error, options}" :options="formData" :collection="collection" <unicloud-db v-slot:default="{data, loading, error, options}" :options="formData" :collection="collection"
:field="field" :getone="true" :where="where" :manual="true" ref="detail" :field="field" :getone="true" :where="where" :manual="true" ref="detail"
foreignKey="opendb-news-articles.author" @load="loadData"> foreignKey="opendb-news-articles.author" @load="loadData">
<template v-if="!loading && data"> <template v-if="!loading && data">
<view class="article-title">{{title}}</view>
<uni-list :border="false"> <uni-list :border="false">
<uni-list-item thumbSize="lg" :thumb="data.image"> <uni-list-item thumbSize="lg" :thumb="data.image">
<!-- 通过body插槽定义作者信息内容 --> <!-- 通过body插槽定义作者信息内容 -->
<view slot="body" class="header-content"> <view slot="body" class="header-content">
<view class="uni-title">{{data.author && data.author[0].username}}</view> <view class="uni-title">{{data.author && data.author[0].username}}</view>
</view>
<view slot="footer" class="footer">
<view class="uni-note">更新于 <view class="uni-note">更新于
<uni-dateformat :date="data.last_modify_date" format="yyyy-MM-dd" <uni-dateformat :date="data.last_modify_date" format="yyyy-MM-dd hh:mm"
:threshold="[60000, 2592000000]" /> :threshold="[60000, 2592000000]" />
</view> </view>
</view> <!-- <button @click="followClick" class="footer-button">关注</button> -->
<view slot="footer" class="footer">
<button @click="followClick" class="footer-button">关注</button>
</view> </view>
</uni-list-item> </uni-list-item>
</uni-list> </uni-list>
...@@ -61,7 +63,7 @@ ...@@ -61,7 +63,7 @@
return { return {
// 当前显示 _id // 当前显示 _id
id: "", id: "",
title: '', title: 'title',
// 数据表名 // 数据表名
collection: 'opendb-news-articles,uni-id-users', collection: 'opendb-news-articles,uni-id-users',
// 查询字段,多个字段用 , 分割 // 查询字段,多个字段用 , 分割
...@@ -136,7 +138,7 @@ ...@@ -136,7 +138,7 @@
} }
}) })
.then(res=>{ .then(res=>{
console.log(res); // console.log(res);
}) })
.catch(err=>{ .catch(err=>{
console.log(err); console.log(err);
......
...@@ -206,8 +206,10 @@ ...@@ -206,8 +206,10 @@
}); });
} }
}, },
/**
* 每一项的点击事件
*/
itemClick(item) { itemClick(item) {
console.log(item);
if (item.event) { if (item.event) {
this[item.event](item); this[item.event](item);
} }
......
...@@ -112,9 +112,6 @@ ...@@ -112,9 +112,6 @@
// #endif // #endif
}, },
methods: { methods: {
...mapMutations({
logout: 'user/logout'
}),
toSettings() { toSettings() {
uni.navigateTo({ uni.navigateTo({
url: "/pages/ucenter/settings/settings" url: "/pages/ucenter/settings/settings"
...@@ -175,10 +172,12 @@ ...@@ -175,10 +172,12 @@
uni.showLoading({ uni.showLoading({
mask: true mask: true
}) })
db.collection(dbCollectionName).field('score,balance').get().then((res) => { db.collection(dbCollectionName).where('user_id == $env.uid').field('score,balance').get().then((res) => {
const data = res.result.data[0]; const data = res.result.data[0];
let msg = '';
msg = data ? ('当前积分为' + data.balance) : '当前无积分';
uni.showToast({ uni.showToast({
title: '当前积分为' + data.balance, title: msg,
icon: 'none' icon: 'none'
}); });
}).catch((err) => { }).catch((err) => {
......
...@@ -354,6 +354,7 @@ ...@@ -354,6 +354,7 @@
} }
} }
} }
console.log(this.formData, this.formRules);
return this.validateAll(this.formData, 'submit', callback) return this.validateAll(this.formData, 'submit', callback)
}, },
......
<template> <template>
<view class="uni-container"> <view class="uni-container">
<uni-forms ref="form" :value="formData" :rules="rules" validate-trigger="submit" err-show-type="toast"> <uni-forms ref="form" :value="formData" :rules="rules" validate-trigger="submit" err-show-type="toast">
<uni-list-item> <uni-forms-item name="avatar">
<template v-slot:body> <template>
<view class="avatar-box"> <view class="avatar-box">
<image class="avatar-img" :src="formData.avatar || '/static/uni-center/logo.png'" @click="chooseImg" mode="aspectFill"></image> <image class="avatar-img" :src="formData.avatar || '/static/uni-center/logo.png'" @click="chooseImg" mode="aspectFill"></image>
</view> </view>
</template> </template>
</uni-list-item> </uni-forms-item>
<uni-forms-item name="gender" label="性别" required> <uni-forms-item name="gender" label="性别" required>
<uni-data-checkbox v-model="formData.gender" :localdata="formOptions.gender_localdata" /> <uni-data-checkbox v-model="formData.gender" :localdata="formOptions.gender_localdata" />
</uni-forms-item> </uni-forms-item>
...@@ -29,7 +29,8 @@ ...@@ -29,7 +29,8 @@
validator validator
} from '../../js_sdk/validator/uni-id-users.js'; } from '../../js_sdk/validator/uni-id-users.js';
import { import {
mapMutations mapMutations,
mapGetters
} from 'vuex'; } from 'vuex';
const db = uniCloud.database(); const db = uniCloud.database();
const dbCollectionName = 'uni-id-users'; const dbCollectionName = 'uni-id-users';
...@@ -72,9 +73,13 @@ ...@@ -72,9 +73,13 @@
} }
} }
}, },
computed:{
...mapGetters({
userInfo:'user/info'
})
},
onLoad(e) { onLoad(e) {
let id = "60795c140983f8000192f235"; let id = uni.getStorageSync('uni_id_uid') || this.userInfo._id;
id = uni.getStorageSync('uni_id_uid');
this.formDataId = id this.formDataId = id
this.getDetail(id) this.getDetail(id)
}, },
...@@ -138,7 +143,6 @@ ...@@ -138,7 +143,6 @@
title: '修改成功' title: '修改成功'
}) })
this.setUserInfo(value); this.setUserInfo(value);
// this.getOpenerEventChannel().emit('refreshData')
setTimeout(() => uni.navigateBack(), 500) setTimeout(() => uni.navigateBack(), 500)
}).catch((err) => { }).catch((err) => {
uni.showModal({ uni.showModal({
......
...@@ -21,7 +21,8 @@ let mixin = { ...@@ -21,7 +21,8 @@ let mixin = {
formData:{ formData:{
phone:'', phone:'',
code:'', code:'',
pwd:'' pwd:'',
pwd2:''
}, },
rules: { rules: {
phone:{ phone:{
...@@ -56,6 +57,26 @@ let mixin = { ...@@ -56,6 +57,26 @@ let mixin = {
errorMessage: '密码应为6到20位', errorMessage: '密码应为6到20位',
} }
] ]
},
pwd2:{
rules:[{
required: true,
errorMessage: '请确认密码',
},
{
pattern: /^.{6,20}$/,
errorMessage: '密码应为6到20位',
},
{
validateFunction:function(rule,value,data,callback){
console.log(value);
if(value!=data.pwd){
callback('两次输入密码不一致')
};
return true
}
}
]
} }
} }
} }
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
<!-- </picker> --> <!-- </picker> -->
</template> </template>
</uni-easyinput> </uni-easyinput>
</uni-forms-item>
<uni-forms-item name="pwd">
<uni-easyinput type="password" class="phone-input-box" :inputBorder="false" <uni-easyinput type="password" class="phone-input-box" :inputBorder="false"
v-model="formData.pwd" placeholder="请输入密码"></uni-easyinput> v-model="formData.pwd" placeholder="请输入密码"></uni-easyinput>
</uni-forms-item> </uni-forms-item>
......
...@@ -4,21 +4,29 @@ ...@@ -4,21 +4,29 @@
<view class="content"> <view class="content">
<!-- 顶部文字 --> <!-- 顶部文字 -->
<text class="content-top-title">重置密码</text> <text class="content-top-title">重置密码</text>
<login-ikonw v-show="formData.phone" class="login-iknow" :text="tipText"></login-ikonw> <login-ikonw v-show="isPhone" class="login-iknow" :text="tipText"></login-ikonw>
<!-- 登录框 (选择手机号所属国家和地区需要另行实现) --> <!-- 登录框 (选择手机号所属国家和地区需要另行实现) -->
<uni-forms ref="form" :value="formData" :rules="rules"> <uni-forms ref="form" :value="formData" :rules="rules">
<uni-forms-item name="phone"> <uni-forms-item name="phone">
<uni-easyinput type="number" class="phone-input-box" :inputBorder="false" <uni-easyinput type="number" class="phone-input-box" :inputBorder="false"
v-model="formData.phone" maxlength="11" placeholder="请输入手机号"></uni-easyinput> v-model="formData.phone" maxlength="11" placeholder="请输入手机号"></uni-easyinput>
</uni-forms-item>
<uni-forms-item name="code">
<uni-easyinput type="number" class="phone-input-box" :inputBorder="false" <uni-easyinput type="number" class="phone-input-box" :inputBorder="false"
v-model="formData.code" maxlength="6" placeholder="请输入验证码"> v-model="formData.code" maxlength="6" placeholder="请输入验证码">
<template slot="right"> <template slot="right">
<login-short-code ref="shortCode" :phone="formData.phone"></login-short-code> <login-short-code ref="shortCode" :phone="formData.phone"></login-short-code>
</template> </template>
</uni-easyinput> </uni-easyinput>
</uni-forms-item>
<uni-forms-item name="pwd">
<uni-easyinput type="password" class="phone-input-box" :inputBorder="false" <uni-easyinput type="password" class="phone-input-box" :inputBorder="false"
v-model="formData.pwd" placeholder="请输入新密码"></uni-easyinput> v-model="formData.pwd" placeholder="请输入新密码"></uni-easyinput>
</uni-forms-item> </uni-forms-item>
<uni-forms-item name="pwd2">
<uni-easyinput type="password" class="phone-input-box" :inputBorder="false"
v-model="formData.pwd2" placeholder="请确认新密码"></uni-easyinput>
</uni-forms-item>
<button class="send-btn-box" :disabled="!canSubmit" :type="canSubmit?'primary':'default'" <button class="send-btn-box" :disabled="!canSubmit" :type="canSubmit?'primary':'default'"
@click="submit">完成</button> @click="submit">完成</button>
</uni-forms> </uni-forms>
...@@ -52,7 +60,7 @@ import mixin from '../../common/loginPage.mixin.js'; ...@@ -52,7 +60,7 @@ import mixin from '../../common/loginPage.mixin.js';
}, },
onReady() { onReady() {
if(this.formData.phone){ if(this.formData.phone){
this.$refs.shortCode.start(); // this.$refs.shortCode.start();
} }
}, },
methods: { methods: {
...@@ -60,6 +68,8 @@ import mixin from '../../common/loginPage.mixin.js'; ...@@ -60,6 +68,8 @@ import mixin from '../../common/loginPage.mixin.js';
* 完成并提交 * 完成并提交
*/ */
submit(){ submit(){
this.$refs.form.submit()
.then(res=>{
this.request('user-center/resetPwdBySmsCode',{ this.request('user-center/resetPwdBySmsCode',{
"mobile":this.formData.phone, "mobile":this.formData.phone,
"code":this.formData.code, "code":this.formData.code,
...@@ -74,6 +84,7 @@ import mixin from '../../common/loginPage.mixin.js'; ...@@ -74,6 +84,7 @@ import mixin from '../../common/loginPage.mixin.js';
uni.navigateBack() uni.navigateBack()
} }
}) })
})
} }
} }
} }
......
<template> <template>
<view class="container"> <view class="container">
<unicloud-db ref="udb" v-slot:default="{data, pagination, loading, hasMore, error}" collection="opendb-news-favorite"> <unicloud-db ref="udb" v-slot:default="{data, pagination, loading, hasMore, error}" where="user_id == $env.uid"
<view v-if="error">{{error.message}}</view> orderby="update_date desc" collection="opendb-news-favorite" @load="isLoading == false" @error="isLoading == false">
<view v-else-if="data"> <view v-if="data && data.length">
<uni-list> <uni-list>
<uni-list-item v-for="(item, index) in data" :key="index" :clickable="true" @click="handleItemClick(item)"> <uni-list-item v-for="(item, index) in data" :key="index" :clickable="true"
@click="handleItemClick(item)">
<view slot="body"> <view slot="body">
<text>{{item.article_title || item.article_id}}</text> <text>{{item.article_title || item.article_id}}</text>
<uni-dateformat class="article-date" :date="item.update_date" format="yyyy-MM-dd hh:mm" <uni-dateformat class="article-date" :date="item.update_date" format="yyyy-MM-dd hh:mm"
...@@ -13,6 +14,7 @@ ...@@ -13,6 +14,7 @@
</uni-list-item> </uni-list-item>
</uni-list> </uni-list>
</view> </view>
<uni-nodata v-else :isLoading="isLoading" @retry="refreshData"></uni-nodata>
<uni-load-more :status="loading?'loading':(hasMore ? 'more' : 'noMore')"></uni-load-more> <uni-load-more :status="loading?'loading':(hasMore ? 'more' : 'noMore')"></uni-load-more>
</unicloud-db> </unicloud-db>
</view> </view>
...@@ -22,42 +24,32 @@ ...@@ -22,42 +24,32 @@
export default { export default {
data() { data() {
return { return {
isLoading: true,
loadMore: { loadMore: {
contentdown: '', contentdown: '',
contentrefresh: '', contentrefresh: '',
contentnomore: '' contentnomore: '',
} }
} }
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.$refs.udb.loadData({ this.refreshData();
clear: true
}, () => {
uni.stopPullDownRefresh()
})
}, },
onReachBottom() { onReachBottom() {
this.$refs.udb.loadMore() this.$refs.udb.loadMore()
}, },
methods: { methods: {
handleItemClick(item) { refreshData() {
console.log(item);
uni.navigateTo({
url: '/pages/list/detail?id='+item.article_id+'&title='+(item.article_title || '')
})
},
fabClick() {
// 打开新增页面
uni.navigateTo({
url: './add',
events: {
// 监听新增数据成功后, 刷新当前页面数据
refreshData: () => {
this.$refs.udb.loadData({ this.$refs.udb.loadData({
clear: true clear: true
}, (res) => {
console.log(res);
uni.stopPullDownRefresh()
}) })
} },
} handleItemClick(item) {
uni.navigateTo({
url: '/pages/list/detail?id=' + item.article_id + '&title=' + (item.article_title || '')
}) })
} }
} }
...@@ -65,7 +57,7 @@ ...@@ -65,7 +57,7 @@
</script> </script>
<style> <style>
.article-date{ .article-date {
color: #C8C7CC; color: #C8C7CC;
} }
</style> </style>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册