12 changed files with 571 additions and 605 deletions
@ -0,0 +1,140 @@ |
|||
<template> |
|||
<view> |
|||
<uni-forms validate-trigger='blur' :modelValue="formData" ref="form"> |
|||
<uni-forms-item label="手机号" required name="phone"> |
|||
<uni-easyinput v-model="formData.phone" placeholder="请输入手机号" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="密码" required name="password"> |
|||
<uni-easyinput type="password" v-model="formData.password" placeholder="请输入密码" /> |
|||
</uni-forms-item> |
|||
</uni-forms> |
|||
<button type="primary" @click="login(formData)">登录</button> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
login |
|||
} from '@/api/index.js' |
|||
import md5 from "js-md5" |
|||
export default { |
|||
data() { |
|||
return { |
|||
phoneFlag: false, |
|||
passwordFlag: false, |
|||
formData: { |
|||
phone: '', |
|||
password: '' |
|||
}, |
|||
|
|||
rules: { |
|||
password: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入密码' |
|||
}, { |
|||
minLength: 8, |
|||
errorMessage: '密码长度最短 {minLength} 个字符' |
|||
}, { |
|||
validateFunction: (value, data) => { |
|||
if (value.length < 6) { |
|||
this.passwordFlag = false |
|||
callback('密码长度最短8个字符') |
|||
}else{ |
|||
this.passwordFlag = true |
|||
return true |
|||
} |
|||
} |
|||
}] |
|||
}, |
|||
phone: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入手机号' |
|||
}, |
|||
{ |
|||
pattern: '^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$', |
|||
errorMessage: '请输入正确的手机号' |
|||
}, |
|||
{ |
|||
validateFunction: (data) => { |
|||
// 异步需要返回 Promise 对象 |
|||
return new Promise((resolve, reject) => { |
|||
if (data.length = 11) { |
|||
this.phoneFlag = true |
|||
resolve() |
|||
} else { |
|||
this.phoneFlag = false |
|||
reject(new Error('手机号长度应为11个字符')) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
//设置校验规则 |
|||
this.$refs.form.setRules(this.rules); |
|||
}, |
|||
methods: { |
|||
login(e) { |
|||
console.log(e) |
|||
let that = this |
|||
console.log('that.phoneFlag', that.phoneFlag) |
|||
console.log('that.passwordFlag', that.passwordFlag) |
|||
if (that.phoneFlag === true && that.passwordFlag === true) { |
|||
console.log('全部达成') |
|||
uni.showLoading({ |
|||
title: '艺术家登录中!', |
|||
duration: 3000, |
|||
success() { |
|||
let pwd = md5(that.formData.password) |
|||
const param = { |
|||
phone: that.formData.phone, |
|||
password: pwd |
|||
} |
|||
console.log('form', param) |
|||
login(param).then(response => { |
|||
if (response.data.code === 200) { |
|||
//登录成功,页面跳转到主页 |
|||
uni.redirectTo({ |
|||
url: '../index/index', |
|||
success() { |
|||
uni.showToast({ |
|||
title: '艺术家登录成功!', |
|||
icon: 'success', |
|||
duration: 1500 |
|||
}) |
|||
} |
|||
}); |
|||
} else { |
|||
uni.showToast({ |
|||
title: response.data.msg, |
|||
icon: 'none' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
fail: () => { |
|||
uni.hideLoading(); |
|||
uni.showToast("登录失败") |
|||
}, |
|||
complete: function() { |
|||
uni.hideLoading(); |
|||
} |
|||
}) |
|||
} else { |
|||
console.log('尚未全部达成') |
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
|
|||
</style> |
|||
@ -0,0 +1,328 @@ |
|||
<template> |
|||
<view> |
|||
<uni-forms :modelValue="formData" validate-trigger='blur' ref="form"> |
|||
<uni-forms-item label="昵称" required name="name"> |
|||
<uni-easyinput v-model="formData.name" placeholder="请输入昵称" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="手机号" required name="phone"> |
|||
<uni-easyinput v-model="formData.phone" placeholder="请输入手机号" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="密码" required name="password"> |
|||
<uni-easyinput type="password" v-model="formData.password" placeholder="请输入密码" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="搜索码" required name="scanCode"> |
|||
<uni-easyinput v-model="formData.scanCode" placeholder="请输入搜索码" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="邀请码" required name="inviteCode"> |
|||
<uni-easyinput v-model="formData.inviteCode" placeholder="请输入邀请码" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="简介" name="intro"> |
|||
<uni-easyinput v-model="formData.intro" placeholder="请输入简介" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="第三方平台账号详情地址" required name="url"> |
|||
<uni-easyinput v-model="formData.url" placeholder="请输入第三方平台账号详情地址" /> |
|||
</uni-forms-item> |
|||
<uni-forms-item label="头像" required name="img"> |
|||
<uni-file-picker limit="1" file-mediatype="image" title="选择一张头像图片上传吧!" file-extname="png,jpg,jpeg" |
|||
@success="imgUploadSuccess" @fail="imgUploadFail" @select="uploadImg" @delete="deleteImg"> |
|||
</uni-file-picker> |
|||
</uni-forms-item> |
|||
</uni-forms> |
|||
<button type="primary" @click="register(formData)">注册</button> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
insertCreator, |
|||
checkPhone, |
|||
checkScanCode, |
|||
checkInviteCode |
|||
} from '@/api/userInfo.js' |
|||
import { |
|||
uploadBatch, |
|||
uploadBanner |
|||
} from '@/api/common.js' |
|||
import md5 from "js-md5" |
|||
export default { |
|||
data() { |
|||
return { |
|||
phoneFlag: false, |
|||
scanCodeFlag: false, |
|||
inviteCodeFlag: false, |
|||
formData: { |
|||
name: '', |
|||
phone: '', |
|||
password: '', |
|||
scanCode: '', |
|||
inviteCode: '', |
|||
intro: '', |
|||
url: '', |
|||
img: '' |
|||
}, |
|||
|
|||
rules: { |
|||
name: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入昵称' |
|||
}, |
|||
{ |
|||
minLength: 1, |
|||
maxLength: 8, |
|||
errorMessage: '昵称长度应在 {minLength} 到 {maxLength} 个字符' |
|||
} |
|||
], |
|||
}, |
|||
password: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入密码' |
|||
}, { |
|||
minLength: 8, |
|||
errorMessage: '密码长度最短 {minLength} 个字符' |
|||
}] |
|||
}, |
|||
phone: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入手机号' |
|||
}, |
|||
{ |
|||
pattern: '^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$', |
|||
errorMessage: '请输入正确的手机号' |
|||
}, |
|||
{ |
|||
validateFunction: () => { |
|||
return new Promise((resolve, reject) => { |
|||
const params = { |
|||
phone: this.formData.phone |
|||
} |
|||
checkPhone(params).then(res => { |
|||
if (res.data.code === 105001) { |
|||
// 如果验证不通过,需要在callback()抛出new Error('错误提示信息') |
|||
this.phoneFlag = false; |
|||
reject(new Error(res.data.msg)) |
|||
} else { |
|||
// 如果校验通过,也要执行callback()回调 |
|||
this.phoneFlag = true; |
|||
resolve() |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
} |
|||
], |
|||
}, |
|||
scanCode: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入搜索码' |
|||
}, |
|||
{ |
|||
minLength: 1, |
|||
maxLength: 6, |
|||
errorMessage: '搜索码长度应在 {minLength} 到 {maxLength} 个字符' |
|||
}, |
|||
{ |
|||
validateFunction: () => { |
|||
return new Promise((resolve, reject) => { |
|||
const params = { |
|||
scanCode: this.formData.scanCode |
|||
} |
|||
checkScanCode(params).then(res => { |
|||
console.log('请求scanCode') |
|||
if (res.data.code === 105003) { |
|||
// 如果验证不通过,需要在callback()抛出new Error('错误提示信息') |
|||
this.scanCodeFlag = false; |
|||
reject(new Error(res.data.msg)) |
|||
} else { |
|||
// 如果校验通过,也要执行callback()回调 |
|||
this.scanCodeFlag = true; |
|||
resolve() |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
} |
|||
], |
|||
}, |
|||
inviteCode: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入邀请码' |
|||
}, { |
|||
minLength: 6, |
|||
errorMessage: '邀请码长度最短 {minLength} 个字符' |
|||
}, { |
|||
validateFunction: () => { |
|||
return new Promise((resolve, reject) => { |
|||
const params = { |
|||
inviteCode: this.formData.inviteCode |
|||
} |
|||
checkInviteCode(params).then(res => { |
|||
console.log('请求inviteCode') |
|||
if (res.data.code === 105002) { |
|||
// 如果验证不通过,需要在callback()抛出new Error('错误提示信息') |
|||
this.inviteCodeFlag = false; |
|||
reject(new Error(res.data.msg)) |
|||
} else { |
|||
// 如果校验通过,也要执行callback()回调 |
|||
this.inviteCodeFlag = true; |
|||
resolve() |
|||
} |
|||
}) |
|||
}) |
|||
}, |
|||
}] |
|||
}, |
|||
url: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入第三方平台账号详情地址' |
|||
}, { |
|||
format: 'url', |
|||
errorMessage: '请输入以"https://"格式开头格式第三方平台账号详情地址' |
|||
}] |
|||
}, |
|||
img: { |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请选择一张头像图片上传' |
|||
}] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
mounted(){ |
|||
//设置校验规则 |
|||
this.$refs.form.setRules(this.rules); |
|||
}, |
|||
methods: { |
|||
//图片上传 |
|||
uploadImg(e) { |
|||
console.log('选择了文件', e) |
|||
let that = this |
|||
uni.showLoading({ |
|||
title: "上传中", |
|||
success() { |
|||
const tempFilePaths = e.tempFilePaths; |
|||
for (var i = 0; i < tempFilePaths.length; i++) { |
|||
const tempFile = e.tempFiles[i]; |
|||
uni.uploadFile({ |
|||
url: 'http://bnyer.vaiwan.com/file/uploadBatch', |
|||
filePath: tempFilePaths[i], |
|||
name: 'files', |
|||
success: (uploadFileRes) => { |
|||
uni.hideLoading(); |
|||
const result = JSON.parse(uploadFileRes.data); |
|||
console.log('result', result) |
|||
if (result.code === 200) { |
|||
that.$set(result.data, "url", tempFile.url) |
|||
that.formData.img = result.data[0] |
|||
console.log('that.formDataInner',that.formData) |
|||
uni.showToast({ |
|||
title: '上传成功', |
|||
icon: 'success', |
|||
duration: 1500 |
|||
}) |
|||
} |
|||
}, |
|||
fail: () => { |
|||
uni.hideLoading(); |
|||
uni.showToast("上传失败") |
|||
}, |
|||
complete: function() { |
|||
uni.hideLoading(); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
//删除图片 |
|||
deleteImg(e) { |
|||
console.log('图片删除成功') |
|||
}, |
|||
// 上传成功 |
|||
imgUploadSuccess(e) { |
|||
console.log('上传成功') |
|||
}, |
|||
|
|||
// 上传失败 |
|||
imgUploadFail(e) { |
|||
console.log('上传失败:', e) |
|||
}, |
|||
|
|||
//注册 |
|||
register(e) { |
|||
console.log(e) |
|||
let that = this |
|||
console.log('that.phoneFlag',that.phoneFlag) |
|||
console.log('that.scanCodeFlag',that.scanCodeFlag) |
|||
console.log('that.inviteCodeFlag',that.inviteCodeFlag) |
|||
if(that.phoneFlag === true && that.scanCodeFlag === true && that.inviteCodeFlag === true){ |
|||
console.log('全部达成') |
|||
uni.showLoading({ |
|||
title: '艺术家注册中!', |
|||
duration: 3000, |
|||
success() { |
|||
let pwd = md5(that.formData.password) |
|||
const param = { |
|||
name: that.formData.name, |
|||
scanCode: that.formData.scanCode, |
|||
phone: that.formData.phone, |
|||
password: pwd, |
|||
img: that.formData.img, |
|||
intro: that.formData.intro, |
|||
inviteCode: that.formData.inviteCode, |
|||
url: that.formData.url |
|||
} |
|||
console.log('form', param) |
|||
insertCreator(param).then(response => { |
|||
if (response.data.code === 200) { |
|||
//注册成功,页面跳转到登录页 |
|||
uni.redirectTo({ |
|||
url: '../login/login', |
|||
success() { |
|||
uni.showToast({ |
|||
title: '艺术家注册成功!请耐心等待审核或联系客服', |
|||
icon: 'none', |
|||
duration: 4000 |
|||
}) |
|||
} |
|||
}); |
|||
} else { |
|||
uni.showToast({ |
|||
title: response.data.msg, |
|||
icon: 'none' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
fail: () => { |
|||
uni.hideLoading(); |
|||
uni.showToast("注册失败") |
|||
}, |
|||
complete: function() { |
|||
uni.hideLoading(); |
|||
} |
|||
}) |
|||
}else{ |
|||
console.log('尚未全部达成') |
|||
uni.showToast({ |
|||
title: '注册验证尚未全部通过,请更正后提交!', |
|||
icon: 'none', |
|||
duration: 3000 |
|||
}) |
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
|
|||
</style> |
|||
Loading…
Reference in new issue